自动化脚本不再起作用,与电子表格本身隔离

时间:2015-08-13 09:51:17

标签: google-apps-script google-sheets

我已经使用Google Apps脚本大约2个月了,可以使用数据库中的信息自动更新电子表格。这个脚本一直运行这段时间没有任何问题,直到本周。无处不在的三个脚本开始失败。在深入研究之后,我设法修复了三个电子表格中的两个,但其中一个尚未解决。我通过手动清除工作表修复了其中一个电子表格,尽管脚本本身已经这样做了。另一个我必须为。创建一个新表。

运行脚本时,日志指定它按原样插入数据,但显然不是。它还显示不正确的运行时间(在15-20秒之间,但现实是2-3分钟)。确切的错误是

  

执行失败:我们很抱歉,发生了服务器错误。请稍等一下再试一次。

脚本本身每周触发一次。它复制前几周的工作表以维护某些格式并重命名,运行查询并将结果集插入电子表格。然后它插入一个公式和它。该脚本仍然有效。在新电子表格上使用脚本时,它运行没有问题。它只是拒绝在现有的电子表格上运行,因此我认为这就是问题所在。

我尝试过手动清除旧纸张(因此在复制之前),创建一个新纸张,删除旧纸张,但一切都无济于事。到目前为止,我遇到的唯一解决方案似乎是创建一个新的电子表格,但这不是一个真正的选择。其中一些床单每天由40多人使用。在发生这种情况时必须更换和转发电子表格,这使得它成为一种不太可靠的解决方案。

所以我的问题是为什么会发生这种情况,是否有任何解决方案可以使用现有的电子表格?即使有某处背景数据导致错误也不应该在清除工作表时删除。

以防万一我发布写入电子表格的代码snippit,但我确信这不是原因,因为它在新的电子表格上正常运行并且没有运行问题近2个月:

  function buildWeek() {
      var doc = SpreadsheetApp.getActiveSpreadsheet();

      latestWeek();

      var sheets = doc.getSheets();
      var latestSheet = sheets[0];
      Logger.log(latestSheet.getName());
      var conn = Jdbc.getConnection("connection details");
      var stmt = conn.createStatement(); 
      var rs = stmt.executeQuery("query");

      //Writing range start
      var cell = latestSheet.getRange('A2');
      var row = 0;
      while (rs.next()) { // Inserts data from rows
        var colcount = rs.getMetaData().getColumnCount();
        for (var col = 0; col < colcount; col++) {
          Logger.log(rs.getString(col + 1));
          cell.offset(row, col).setValue(rs.getString(col + 1));
        }
        row++;
  }

0 个答案:

没有答案