简体   繁体   English

为什么我的脚本的 makeCopy 部分不能在 Google Apps 脚本中正确执行?

[英]Why won't the makeCopy portion of my script execute properly in Google Apps Script?

I am a very novice coder and am trying to accomplish the following using a Google Form:我是一个非常新手的编码员,正在尝试使用 Google 表单完成以下任务:

  1. Rename file uploaded by user based on name defined by combination of form fields根据表单字段组合定义的名称重命名用户上传的文件
  2. Create a copy of the uploaded file to a specific folder in GDrive, based on answer to particular form question根据对特定表单问题的回答,将上传文件的副本创建到 GDrive 中的特定文件夹

So far, I have managed to get Part 1 working, but Part 2 doesn't seem to function properly (no error message, just no action).到目前为止,我已经设法让第 1 部分正常工作,但第 2 部分似乎没有正确 function (没有错误消息,只是没有操作)。 Anyone able to guide me where I'm going wrong?任何人都可以指导我哪里出错了?

function fileRename() {
  var form = FormApp.getActiveForm()
// returns the total number of form submissions
  var length=form.getResponses().length;
//retrieve fileID of document uploaded by user in Question 6 of the form (i.e. Index 5)
  var id=form.getResponses()[length-1].getItemResponses()[5].getResponse();
//getResponses()[length-1] retrieves the last form response, accounting for the fact that the first index is zero and hte last length-1
//gets the form answers used to concatenate the file name
  var fileUploadEntity=form.getResponses()[length-1].getItemResponses()[0].getResponse();
  var fileUploadDate=form.getResponses()[length-1].getItemResponses()[3].getResponse();
  var fileUploadType=form.getResponses()[length-1].getItemResponses()[1].getResponse();
//accesses the uploaded file
  var file=DriveApp.getFileById(id);
  var name = file.getName();
//changes the file name
  var name = fileUploadEntity+'_'+fileUploadDate+'_'+fileUploadType
  file.setName(name);
  
//creates a copy and saves it to the relevant regional shared drive depending on which array the entity belongs to, using its four-letter identifier 
  
  var APAC = ["WRAU", "WRNZ", "WRSG", "WRMY", "WRHK"];
  var NORAM = ["WRCA", "WRCC", "WRCW", "WRUS"];
  var MEA = ["WRKE", "WRUG", "WRSO", "WRSA", "WRRW", "WRTZ", "WRZW"];
  var LATAM = ["WRMX"];
  var EEA = ["WRBE", "WRUK"];
  
  var folderAPAC = DriveApp.getFolderById('1IKIDSEEGHf802WaF4l4ntN9uiUO5jJpa');
  var folderNORAM = DriveApp.getFolderById('1BitldN3Uw7453wxnnI1X5PUmbmTiQn5O'); 
  var folderMEA = DriveApp.getFolderById('18tWR1C-mdO7moAtktOHJsvXjx_V0kdg0');
  var folderLATAM = DriveApp.getFolderById('1cG0iPocn3KyXK8XgaxnZNWVU-HKJ97dX');
  var folderEEA = DriveApp.getFolderById('1N8tB8AjMkR7gRarcwd4NYmry_wh0WVkY');

  if (fileUploadEntity.indexOf(APAC)>-1) { 
 file.makeCopy(name, folderAPAC);
  }
  
  else if (fileUploadEntity.indexOf(NORAM)>-1) {
 file.makeCopy(name, folderNORAM);
  }
  
  else if (fileUploadEntity.indexOf(LATAM)>-1) { 
 file.makeCopy(name, folderLATAM);
  }
  
  else if (fileUploadEntity.indexOf(MEA)>-1) { 
 file.makeCopy(name, folderMEA);
  }
  
  else if (fileUploadEntity.indexOf(EEA)>-1) { 
 file.makeCopy(name, folderEEA);
  }
}

You code is using indexOf the wrong way.您的代码以错误的方式使用indexOf

Instead of代替

fileUploadEntity.indexOf(APAC)

try尝试

APAC.indexOf(fileUploadEntity)

Do the same or the other places where indexOf is used执行相同或其他使用indexOf的地方

Reference参考

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM