Триггер проекта не работает

Я использую формы Cognito для сбора информации, а затем использую Zapier для передачи этой информации в мою базу данных электронных таблиц Google. Я обнаружил, что мои сценарии в электронных таблицах Google не запускают так, как я ожидал.

Вот этот:

function onEdit(event){
  var ColCR = 96;  // Column Number of "CR"
  var changedRange = event.source.getActiveRange();
  if (changedRange.getColumn() == ColCR) {
    var state = changedRange.getValue();
    var adjacent = event.source.getActiveSheet().getRange(changedRange.getRow(),ColCR+1);
    var adjacentv = adjacent.getValue();
    var timestamp = Utilities.formatDate(new Date(), "GMT-7", "M/dd/yy', 'h:mm a"); 
     switch (adjacentv) {
      case "":
     adjacent.setValue("("+timestamp+")"+" "+state);
     changedRange.clearContent();
        break;
      default:
     adjacent.setValue(adjacentv+"\n"+"("+timestamp+")"+" "+state);
     changedRange.clearContent();
        break;
      }
  } 
}

Работает нормально, когда пользователь редактирует ячейку электронной таблицы напрямую, но не когда Zapier обновляет ячейку. Он также работает с несколькими различными типами триггеров, когда электронная таблица изменяется пользователем. В чем разница между редактированием электронной таблицы напрямую и использованием приложения, такого как Zapier, для редактирования формы? Могу ли я написать скрипт, который будет видеть редактирование приложения, такого как Zapier?

Вот этот:

function Timestamp() {
 var sheet = SpreadsheetApp.getActiveSpreadsheet();
 var cell = sheet.getActiveCell();
  var comments = cell.getComment();
  var formattedDate = Utilities.formatDate(new Date(), "GMT-7", "M/dd/yy', 'h:mm a    ");
   Newline works in msgBox, but not in Note.
  comments = comments + "Mod: " + formattedDate; 
 Browser.msgBox(comments);
 cell.setComment(comments);
}

Работает нормально, когда пользователь редактирует ячейку и запускается триггером On Change, а также работает, когда Zapier обновляет ячейку, но когда Zapier обновляет более одной ячейки в строке, он помещает комментарий только в первую ячейку диапазона. Как мне изменить скрипт так, чтобы он срабатывал при каждом изменении каждой ячейки, а не только диапазона?

Я уверен, что это как-то связано с тем, как Zapier взаимодействует с моей электронной таблицей, но я не понимаю, чем правки Zapier отличаются от правок пользователя?

Спасибо за любые предложения или рекомендации.

1 ответ

Я тоже столкнулся с этой проблемой и в итоге пришел к выводу, что действие Zapier использует API для обновления Google Sheet, таким образом, не вызывая триггер. Подробности доступны здесь в документации Google о простых триггерах:

https://developers.google.com/apps-script/guides/triggers/

Другие вопросы по тегам