Триггер на несколько Форм

и промежуток времени между отправкой Формы и срабатыванием триггера

Триггер на несколько Форм

и промежуток времени между отправкой Формы и срабатыванием триггера

Напоминание о том, что триггеры GS - так себе штука.

Форма требует для себя отдельного Листа. Если прослушивать событие onFormSubmit, то можно получить ссылку на текущий Лист e.range.getSheet().

function handler(e) {
  try {
    e.source.getSheetByName('Лог').appendRow(moldDataRow_(e));
  } catch(err) {
    e.source.getSheetByName('Лог').appendRow([new Date(), err.message, err.stack]);
  }
}

function moldDataRow_(e){
  var row = [];
  row.push(new Date());
  row.push(e.range.getSheet().getName());
  row.push('=INDIRECT(ADDRESS(ROW(), COLUMN() - 2)) - INDIRECT(ADDRESS(ROW(), COLUMN() + 1))');
  row = row.concat(e.values);
  return row;
}

Формула =INDIRECT(ADDRESS(ROW(), COLUMN() - 2)) - INDIRECT(ADDRESS(ROW(), COLUMN() + 1)) вычисляет разницу между отметкой времени триггера и той, которая указана в ответе Формы.

Замеры, те которые удалось получить, показывают, что триггер может сработать с опозданием на 11 минут.

Ссылки и примеры кода:

comments powered by Disqus