google-apps-script - 我试图一次运行 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;
}
解决方案
推荐阅读
- java - 数据库链接错误到应用程序
- r - 如何通过 R 中的 dplyr/tidyverse 将分组的行复制到列中?
- python - 在 Python 中创建一个计算字典中字母数量的函数
- php - 如何在 php if 语句中嵌入 .wav 文件?
- python-3.x - caffe2 上的 LMBD 错误
- java - Firebase 查询方法不起作用
- compilation - 使用模块 Llvm_analysis 编译 ocaml
- geometry - 包围给定点集的边界
- firebase - 如何将照片保存到 Firebase 存储并将 URL 链接发送到云 Firestore?
- java - java - 迭代列表的最快方法