2021-06-15 11:12:16
ЗАПУСКАТОР – реагируем на изменения формул / Таблицы и запускаем скриптыДрузья, в этом посте мы разберём как запустить скрипт после того, как Glide добавил в Таблицу строку. Скрипт будет отправлять письмо нашим менеджерам.
Как вы догадываетесь – стандартные триггеры на изменение / редактирование тут не помогут, они реагируют только если изменение сделал человек.
Поэтому мы развернем веб-приложение со скриптом отправки письма и напишем пользовательскую функцию, которая будет в него стучаться (да, ведь функция может в fetch)
Поехали делать
1. Пишем в редакторе скриптов целевой Таблицы функцию doGet(), она будет отправлять письмо;
function doGet(e) {
MailApp.sendEmail('mail.com', 'тема: привет!', e.parameter.row)
}
Разворачиваем скрипт как веб-приложение
(запуск от имени – от моего имени;
доступно – всем)
2. Пишем пользовательскую функцию, она будет
– считать количество строк на листе заказы;
– сверять с количеством, которое сохранено в скрипт проперти;
– если в проперти цифра меньше – функция перезапишет проперти и отправит на адрес развернутого приложения строку с данными (в параметре row);
– в функцию вставьте ссылку на ваше развернутое приложение;
function zapuskator(array) {
array = array.filter(t => t.some(g => g));
const length = array.map(t => t[0]).length;
const property = PropertiesService.getScriptProperties();
const rows_property = property.getProperty('rows');
if (rows_property < length) {
property.setProperty('rows', length);
const url = 'https://script.google' + '?row=' + array[length - 1].join();
return [
[new Date(), url, UrlFetchApp.fetch(url).getResponseCode()]
]
}
return length
}
3. вставляйте пользовательскую функцию в Таблицу, её аргумент – диапазон из листа заказы;
4. данные меняются - функция пересчывается;
5. !!!!!!!!
С помощью этого способа вы можете разобраться не только с Glide, а еще и в принципе следить за формулами / данными, запуская скрипты из веб-приложения тогда, когда это вам будет нужно.
За идею сегодняшнего пост спасибо Волонду и Tanaike https://tanaikech.github.io/
Код в пастебин
2.6K views08:12