replaceText 在一个实例中工作但在另一个实例中不工作

replaceText working in one instance but not in another

提交 Google 表单并自动填写 Google 文档时会触发脚本。

在我添加 var servicesPTY = e.values[117]; 并完美替换所有占位符之前,它工作得很好。但是一旦我添加它,执行指示器就会显示 completed 但不再生成任何文件。该文档的占位符如下所示:{{servicesPTY}} {{regNumberPTY}} {{tradingNamePTY}}

代码如下所示:

function myFormSubmitPTY(e) {

  var regNumberPTY = e.values[112];
  var taxNumberPTY = e.values[111];
  var tradingNamePTY = e.values[113];
  var servicesPTY = e.values[117];

var file = DriveApp.getFileById("16OwyBIZAD2pwkuUXZnYSj-9WB6ObGGRXiEjDLa1tcjw");

  var folder = DriveApp.getFolderById("1kogpJdxHLwuEhbVyh2oiIgTPH0SNac2m");

  var copy = file.makeCopy(tradingNamePTY, folder);

  var doc = DocumentApp.openById(copy.getId());

  var body = doc.getBody();

  if (type == "PTY (LTD)") {

  body.replaceText("{{servicesPTY}}",servicesPTY);
  body.replaceText("{{regNumberPTY}}", regNumberPTY);
  body.replaceText("{{tradingNamePTY}}", tradingNamePTY);


  doc.saveAndClose();
  }
}

这对我有用:

function testmyFormSubmit() {
  var e={values:["one","two","three","four"]};
  myFormSubmitPTY(e);
}

var type="PTY (LTD)";//global

function myFormSubmitPTY(e) {
  var regNumberPTY = e.values[0];
  var taxNumberPTY = e.values[1];
  var tradingNamePTY = e.values[2];
  var servicesPTY = e.values[3];
  var file = DriveApp.getFileById("fileid");
  var folder = DriveApp.getFolderById("folderid");
  var copy = file.makeCopy(tradingNamePTY, folder);
  var doc = DocumentApp.openById(copy.getId());
  var body = doc.getBody();
  if (type=="PTY (LTD)") {
    body.replaceText("{{servicesPTY}}",servicesPTY);
    body.replaceText("{{regNumberPTY}}", regNumberPTY);
    body.replaceText("{{tradingNamePTY}}", tradingNamePTY);
    doc.saveAndClose();
  }
}

文件名:三个

图案顺序:

{{servicesPTY}}

{{regNumberPTY}}

{{tradingNamePTY}}

输出顺序:

四个

一个

三个

我一定是取消了 PTY 的触发器。当我查看 stackdriver 日志时,我注意到 PTY 有 none。一定是凌晨发生的。不过谢谢。你们让我走上正轨