【问题标题】:replaceText working in one instance but not in anotherreplaceText 在一个实例中工作,但在另一个实例中不工作
【发布时间】:2020-06-04 17:17:03
【问题描述】:

当提交 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();
  }
}

【问题讨论】:

  • var 类型被识别,我只是为了节省空间而忽略了它
  • 你说的似乎不太合理。提供minimal reproducible example
  • 请检查servicesPTY 值并更新您的答案。虽然,如果我的想法是正确的,那么你应该收到一个失败的执行。如果您只是超出配额,情况也是如此。鉴于 Cooper 在下面的回答似乎也表明该问题不可重现,请给我们更多信息
  • servicesPTY 值如下所示纳税申报表、支持文件、异议、工资单、EMP501、咨询服务、上诉、商业纳税申报表、临时纳税申报表、IT14SD、专业税、财务报表、公司注册、CIPC 年度申报表 - PTY (LTD)、CIPC Ammedments、CIPC PTY (LTD) / CC 注册
  • 我仍然需要用新行替换逗号,一旦我开始工作......

标签: google-apps-script google-drive-api google-docs google-forms


【解决方案1】:

这对我有用:

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}}

输出顺序:

四个

一个

三个

【讨论】:

  • 我无法让这个工作,但我不确定如何处理模式顺序和输出顺序。我需要定义 ["one","two","three","four"] 吗?
【解决方案2】:

我必须取消选择 PTY 的触发器。当我查看堆栈驱动程序日志时,我注意到 PTY 没有。一定是在凌晨发生的。不过谢谢。你们让我走上了正轨

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2011-05-31
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2014-09-20
    相关资源
    最近更新 更多