【问题标题】:Unexpected exception upon serialization continuation序列化继续时出现意外异常
【发布时间】:2014-02-07 06:07:06
【问题描述】:

我编写了一个 Google 应用程序电子表格脚本,该脚本应该从我的驱动器中提取一个 pdf,并将其作为附件通过电子邮件发送给许多人,每个人都将通过电子邮件发送一个独特的文件。数据在电子表格中。第一列是收件人的电子邮件地址,第二列是必须附加的 pdf 文件名,第三列是人名。

function sendPDFs() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;  // First row of data to process
var numRows = sheet.getDataRange().getLastRow() -1;   // Number of rows to process

// Fetch the range of cells A2:C3
var nummails = 0
var numdrive = 0
var checkCol = 4
var dataRange = sheet.getRange(startRow, 1, numRows, 3)

// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (i in data) {
var row = data[i];
var emailAddress = row[0];  // First column

var subject = "Some subject";

var body = 'Dear ' + row[2] + '\n\nPlease find your ' + subject + ' \n\nThank you \n\n XYZ'

var attachment = row[1];    // Second column.

var files = DriveApp.getFilesByName(attachment); // Get all files with name.
var blobs = []; // Array for attachment.

// Move files into blobs
while (files.hasNext()) {
 var file = files.next();
  blobs.push(file.getAs("application/PDF"));
}

// dont sent to invalid email ids or those without email ids
 if (emailAddress == "" || emailAddress.indexOf("@") <= -1){
   sheet.getRange(i+2, checkCol+1).setValue('Not Emailed')
    numdrive = numdrive+1
    }
  else{
    Utilities.sleep(1000)
    MailApp.sendEmail(emailAddress, subject, body, {attachments: blobs, name: "XYZ" })
    sheet.getRange(i+2, checkCol+1).setValue('Emailed')
    nummails = nummails +1
  }

   }
 Browser.msgBox( nummails+ " Mails sent successfully.")
}

我在序列化继续时收到错误意外异常。但是,电子邮件已发送。看起来代码有效,但我不知道为什么会出错。我已经看到存在相同错误的现有线程,但它们没有帮助。

感谢有关如何解决此问题的任何帮助。

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    您的主循环似乎没有按照您的预期执行:循环中 i 的值是错误的。我将循环定义更改如下

      for (var i=0 ; i<data.length ; ++i) {
    

    请试一试,告诉我们会发生什么。

    【讨论】:

    • 我用上面的替换了 for 循环。仍然出现同样的错误。
    • hmmm...我收到另一个错误:“我们很抱歉,目前没有可用的服务器。请稍候,然后重试”尝试从 pdf 中获取某些内容时...跨度>
    • 嘿,您使用的是新的电子表格格式吗? :如果是,请参阅code.google.com/p/google-apps-script-issues/issues/… 它至少可以解释我的问题。
    【解决方案2】:

    首先,查看脚本编辑器菜单中的“执行脚本”。你可以在那里找到错误的原因。

    每次运行脚本时,Google Apps 脚本都会记录一次执行 成绩单,它是对 Google Apps 脚本的每次调用的记录 脚本运行时创建的服务。这些成绩单可以帮助 您可以了解您的脚本执行了哪些操作。要查看 执行记录点击查看>执行记录在 脚本运行完成后的菜单栏。

    当我达到某些 Google Apps 脚本限制(配额)时,我通常会收到这些错误(异常)。在此处查看配额:https://docs.google.com/macros/dashboard(切换到选项卡配额)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-17
      • 2017-09-27
      • 2011-09-03
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多