OnChange сработает без изменения таблицы - PullRequest
0 голосов
/ 11 июня 2019

Это вопрос поведения триггера Google. (Я думаю). Хотите знать, если это нормально.

У меня есть (несколько) листов с триггером «при изменении» для скрипта. Я заметил, что они как-то запускаются без изменений на листе и при закрытии листа. С помощью всего лишь триггера onChange, который увеличивает значение в ячейке при его срабатывании, значение ячейки увеличивается в течение дня, вызывая, по крайней мере, каждые 15 минут, иногда каждую минуту.

Я попытался разобрать листы, избавиться от всех IMPORTDATA и других ссылок на внешние данные, поэтому в листе ничего нет. Очень простой.

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

Как я уже сказал, на листе ничего особенного нет, только несколько формул, которые ссылаются на ячейки на одном листе, но это все.

1 Ответ

0 голосов
/ 12 июня 2019

Я настроил тест на одной из моих электронных таблиц, чтобы посмотреть, смогу ли я получить тот же результат:

function catchChanges(e) {
  var ts=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "E MMM dd, yyyy hh:mm:ss");
  var ss=SpreadsheetApp.openById('ssid');
  var sh=ss.getSheetByName('Change Log');
  sh.appendRow([ts,e.changeType,e.triggerUid,e.user,e.authMode]);
}
...