Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 执行失败:TypeError:-在用DriveApp替换DocsList之后_Javascript_Google Apps Script_Google Apps_Google Docs Api - Fatal编程技术网

Javascript 执行失败:TypeError:-在用DriveApp替换DocsList之后

Javascript 执行失败:TypeError:-在用DriveApp替换DocsList之后,javascript,google-apps-script,google-apps,google-docs-api,Javascript,Google Apps Script,Google Apps,Google Docs Api,我现在明白了,我的断章取义是由于最近DocsList的贬值而开始的。按照说明,我现在已将此应用程序的所有实例替换为DriveApp。但是执行仍然失败,在不同的文件夹中创建了多个文件副本,并且没有发送电子邮件。我真的很感激有人能帮我解决这个问题,因为这会扼杀我的新手大脑 这是处决记录 [15-04-23 12:57:06:192 BST] FormApp.getActiveForm() [0.234 seconds] [15-04-23 12:57:06:491 BST] FormApp.getA

我现在明白了,我的断章取义是由于最近DocsList的贬值而开始的。按照说明,我现在已将此应用程序的所有实例替换为DriveApp。但是执行仍然失败,在不同的文件夹中创建了多个文件副本,并且没有发送电子邮件。我真的很感激有人能帮我解决这个问题,因为这会扼杀我的新手大脑

这是处决记录

[15-04-23 12:57:06:192 BST] FormApp.getActiveForm() [0.234 seconds]
[15-04-23 12:57:06:491 BST] FormApp.getActiveForm() [0.23 seconds]
[15-04-23 12:57:06:524 BST] Starting execution
[15-04-23 12:57:06:558 BST] FormResponse.getItemResponses() [0.012 seconds]
[15-04-23 12:57:06:559 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:06:559 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:06:559 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:06:890 BST] SpreadsheetApp.openById([1pxcz1Xt9_29n2L5kDgJlacHCZ8APlIXiTsPXL5M1zuM]) [0.33 seconds]
[15-04-23 12:57:07:178 BST] Spreadsheet.getDataRange() [0.286 seconds]
[15-04-23 12:57:07:269 BST] Range.getValues() [0.09 seconds]
[15-04-23 12:57:07:270 BST] Range.getLastRow() [0 seconds]
[15-04-23 12:57:07:270 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:271 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:271 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:271 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:271 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:271 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:272 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:272 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:272 BST] (class).getResponse() [0 seconds]
[15-04-23 12:57:07:513 BST] SpreadsheetApp.openById([1fdOI61__16jFCEDJCvWHtVMu6BhkxS88x5408-JB8oA]) [0.239 seconds]
[15-04-23 12:57:07:513 BST] Spreadsheet.getSheetByName([main]) [0 seconds]
[15-04-23 12:57:07:690 BST] Sheet.getLastRow() [0.176 seconds]
[15-04-23 12:57:07:691 BST] Sheet.getRange([475, 1, 1, 7]) [0 seconds]
[15-04-23 12:57:07:693 BST] Range.setValues([[[23.04.2015 12:57:07, Andrew Davies, Lisa Smith, AWOL, 2015-04-23, 11:30, 20:00]]]) [0.001 seconds]
[15-04-23 12:57:07:859 BST] CalendarApp.getDefaultCalendar() [0.165 seconds]
[15-04-23 12:57:08:275 BST] Calendar.createEvent([Lisa Smith  AWOL deadline., Thu Apr 23 07:00:00 PDT 2015, Thu Apr 23 07:15:00 PDT 2015, {guests=andrew.davies@uk.webhelp.com,adam.taylor@uk.webhelp.com, sendInvites=true}]) [0.414 seconds]
[15-04-23 12:57:08:485 BST] DriveApp.getFileById([17i-HIzzNTMeVs8u7gIs_NHDoCDlFWX2y7D6LjnYEjUI]) [0.208 seconds]
[15-04-23 12:57:11:188 BST] File.makeCopy([AWOL_copy]) [2.702 seconds]
[15-04-23 12:57:11:280 BST] Execution failed: TypeError: Cannot find function removeFromFolder in object AWOL_copy. (line 164, file "utils") [4.646 seconds total runtime]
这是引用的错误代码

function copy_file(path, file,new_name) {
  var file_copy = file.makeCopy(new_name);
      file_copy.removeFromFolder(DriveApp.getRootFolder());
      file_copy.addToFolder(DriveApp.getFolder(path));
  return file_copy;
}


function create_doc_in_path(path, filename) {
  var doc = DocumentApp.create(filename);
  var file = DriveApp.getFileById(doc.getId());
  file.removeFromFolder(DriveApp.getRootFolder());
  file.addToFolder(DriveApp.getFolder(path));
  return doc;
}

Zig Mandel是正确的,您需要将旧api的每个功能映射到新api

这里是代码可能工作

function copy_file(path,file,new_name) 
{
  var folder = DriveApp.getFolderById(path);
  var file_copy = file.makeCopy(new_name);
  var document = DriveApp.getFileById(file_copy.getId());
  folder.addFile(document);
  return file_copy;
}

function create_doc_in_path(path,filename) 
{
  var folder = DriveApp.getFolderById(path);
  var doc = DocumentApp.create(filename);
  var file = DriveApp.getFileById(doc.getId());
  folder.addFile(file);
  return doc;
}

API不一样。不要只是替换名称,还要看看新api在每种情况下都做了什么[15-04-23 15:18:17:300 BST]DriveApp.getFileById([1zsles2lfermnoylhb4dvapjstj_zoslTQfgp-BM4Ng])[0.118秒][15-04-23 15:18:17:403 BST]DriveApp.getFolderById([Project/Central缺勤表格目录][0.102秒][15-04-23 15:18:481 BST]执行失败:找不到具有给定ID的项目,或者您没有访问该项目的权限。(第164行,文件“utils”)[1.542秒总运行时间]感谢Sachin K,但现在我收到了上述错误。你知道吗?当你调用函数copy_file(path,file,new_name)时,你发送的参数是什么,即path的值是多少,它是文件夹id(key)还是文件夹名(string)var working_directory='Project/Central disease Form directory';但是正在使用的文档缺席、迟到、擅离职守、最终文件id由其文档密钥标识。在上述解决方案中,更改DriveApp.getFolderById(路径);到DriveApp.getFoldersByName(路径);