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

Я использую формы 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);
}

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

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

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


person user2748807    schedule 28.09.2016    source источник


Ответы (1)


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

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

person Rafi    schedule 11.05.2018