Триггер GAS «На редактировании» не запускается при редактировании из API - PullRequest
0 голосов
/ 30 марта 2020

Мне было интересно, если кто-то сталкивался с этой проблемой и подумал об обходном пути, который не является ужасным.

У меня есть триггер в таблицах Google, который настроен "на редактирование", и он отлично работает, если редактирование происходит вручную (или по формуле) из самой таблицы . Однако, если я изменю ячейку извне из Sheets API v4 , ячейка изменится, но функция не сработает. Я что-то упустил, или Google просто не поддерживает запуск, когда изменения происходят "извне"?

РЕДАКТИРОВАТЬ: Согласно предложению @ TheMaster, я написал:

function test_on_change(e){
  console.log("Changed");
  console.log(SpreadsheetApp.getActiveRange().getA1Notation());
}

Объект e является json из enum, который описан здесь .

Ответы [ 2 ]

1 голос
/ 30 марта 2020

onChange Устанавливаемый триггер работает с правками, сделанными из листов API. Можно получить отредактированный диапазон, используя .getActiveRange() вызовы.

1 голос
/ 30 марта 2020

Как вы можете прочитать в Ограничения триггеров :

Выполнения сценариев и запросы API не вызывают запуск триггеров. Например, вызов Range.setValue () для редактирования ячейки не приводит к запуску триггера onEdit электронной таблицы.

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

...