首页 > 解决方案 > 我试图一次运行 2 个函数,但似乎有问题

问题描述

我有 2 个我想一次性运行的主要功能,test_FolderMaker();copyfile();问题是错误显示“无文件夹”并且test_FolderMaker();在第一次运行时不创建文件夹,并且copyfile();如果没有第一个主要创建的文件夹就不会运行功能,但在第二次运行时它确实运行并且该功能有效。这就是我目前所拥有的:

function new_Patient_Record(){
    var folder_Maker = test_FolderMaker();
  if (folder_Maker = true){
    (copyfile()
    );}
}

function test_FolderMaker()
{
  var t = new Date();
  var ids = false;
  var res = createFoldersTasks_(ids);
  Logger.log(res);
  Logger.log('Time to run the script = ' + (new Date() -t) + ' ms.');
}

function copyfile() {
var ss = SpreadsheetApp.getActive();
var activeSheet = ss.getSheetByName("sheet_Patients");
var activeSheetFM = ss.getSheetByName("_FolderMaker_");
var lastRow = activeSheet.getLastRow();
var data = activeSheet.getRange(lastRow,2,1,1).getValue();
var secondData = activeSheet.getRange(lastRow,3,1,1).getValue();
var folder_Name = [data+ ", " +secondData];

var folders = DriveApp.getFoldersByName(folder_Name);
var dest_folder;
if (folders.hasNext()) {
  dest_folder = folders.next();
} else {
  throw new Error("No folder.")
}
  
activeSheetFM.getRange(2,4,1,1).setValue(dest_folder.getId());
var Checkup_Form = DriveApp.getFileById("106-03HR1uYZPIYX-9bOFxpcpLjo-qolnus13Dqtyr2k");
var VDH_Form = DriveApp.getFileById("1ZwSvFIzIppGVw29XPAs5o7cgnrbvS3uE8e-nz2fFrDk");
var excel_File = DriveApp.getFileById("1Xidcg8jPA9fFJeH02NlXvMhBmkIQi-9-");
  
var final_Excel_File = excel_File.makeCopy(data+ ', '+ secondData + ' ' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd') + ' ' + excel_File.getName());
final_Excel_File.moveTo(dest_folder);
var final_VDH_Form = VDH_Form.makeCopy(data+ ', '+ secondData + ' ' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd') + ' ' + VDH_Form.getName());
final_VDH_Form.moveTo(dest_folder);
var final_Checkup_Form = Checkup_Form.makeCopy(data+ ', '+ secondData + ' ' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), 'yyyy-MM-dd') + ' ' + Checkup_Form.getName());
final_Checkup_Form.moveTo(dest_folder);
}

当我将它们分开运行时,它实际上可以工作,所以我认为该new_Patient_Record()功能有问题。谢谢

function createFoldersTasks_(ids)
{
  var t = new Date();
  getSettings_();
  var d1 = CCC_.STR_DELIMEER1;
  var d2 = CCC_.STR_DELIMEER2;
  var allids = CCC_.STR_IDS_FOLDERMAKER.split(d2);
  var allFolderIds = CCC_.STR_FOLDERIDS_FOLDERMAKER.split(d2);
  var allFolderPaths = CCC_.STR_PATHS_FOLDERMAKER.split(d2);
  
  if (ids) { var taskIds = ids.split(d1); }
  else { var taskIds = allids; } 
 
  // loop tasks
  var folderMaker = {}, index;
  var delim = CCC_.STR_PATHDELIM_FOLDERMAKER;
  for (var i = 0; i < taskIds.length; i++)
  {
    index = allids.indexOf(taskIds[i]);
    folderMaker.names = allFolderPaths[index].split(delim);
    folderMaker.folderId = allFolderIds[index];
    createFolderByTask_(folderMaker);    
  }
  return 0;  
}

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读