Google脚本:触发器不起作用或脚本仅运行一次

我是Google脚本的新手,所以几天来一直在努力解决这个问题。多个来源都消失了,没有一个跟我有同样的问题。

我为脚本设置了基于时间的触发器,以将Gmail中的CSV导入到工作表中。发送的电子邮件是每天从DV360中提取的报告,然后用于填充Data Studio仪表板。

我的第一个问题是触发器不能正常工作(这不太可能发生),或者我的代码有问题。我注意到的一件奇怪的事情是,该触发器适用于其中一份报告,但不适用于其余6份报告。

我在这个项目中有多个脚本,它们都从不同的电子邮件中导入不同的CSV附件,并且每个脚本都会在Google表格文件中填充自己的标签。

一旦我运行了脚本一次,并且填充了各自的工作表,即使收件箱中有一封带有最新附件的电子邮件,它也不会再次运行(例如,如果我第二天运行了该脚本,它不会使用该特定日期的报告填充工作表)。

下面是我使用的代码。

function importCSVFromGmail() {
  var threads = GmailApp.search("Label:Audience_List");
  var message = threads[0].getMessages().pop();

  var attachment = message.getattachments()[0];

  if (attachment != null) {
    var attachName = attachment.getName();

    // Is the attachment a CSV file
    if (attachName.substring(attachName.length-4) === ".csv") {
      var id = "1cl5nZiJ2Jh__pMig-BoGTKpE9kM8-5nYe178WdI6ChI";
      var name = "Audience_List_Backend";
      var sheet = Spreadsheetapp.openById(id);
      var tab = sheet.getSheetByName(name);
      var tabInfo = sheet.getSheetByName("Audience_List_Backend");
      tabInfo.getRange("A1").setvalue(new Date());

      // Clear the content of the sheet
      tab.clearContents().clearFormats();
      var csvData = Utilities.parseCsv(attachment.getDataAsString(),",");
      tab.getRange(1,1,csvData.length,csvData[0].length).setvalues(csvData);
    }
  } 
}

在此先感谢您的帮助!

katrina414 回答:Google脚本:触发器不起作用或脚本仅运行一次

解决方案很简单。

将每个脚本文件拆分到自己的项目中,并使用基于时间的触发器分别触发它们。

因此,我需要执行的7个操作都有一个基于时间的触发器的自己的项目。

本文链接:https://www.f2er.com/2553391.html

大家都在问