2014-12-15 3 views
0

Мы используем этот код для установки notify() как функция таблицы триггера onEdit:Как активировать триггер в GAS?

var ss = SpreadsheetApp.getActive(); 
ScriptApp.newTrigger("notify").forSpreadsheet(ss).onEdit().create(); 

выше триггер notify() уведомляет пользователя по почте, когда таблица обновляется, но проблема заключается в том, что он посылает по электронной почте пользователь для каждого редактирования. Как я могу это преодолеть, отправить одно уведомление, даже если есть несколько изменений?

ответ

1

Вы можете выполнить свою задачу, помня, что вы уведомили пользователя и подавили дальнейшие уведомления (на определенный период времени). Например, эта функция использует Properties Service для отслеживания уведомлений, и отправить только один раз в день:

function notify(e) { 
    // Get the date we last notified user 
    var properties = PropertiesService.getUserProperties(); 
    var lastNotifyDate = properties.getProperty("lastNotified"); 

    // Get today's date 
    var today = new Date().toDateString(); 

    // Should we send a notification to user? 
    if (!lastNotifyDate || lastNotifyDate !== today) { 

    // --- Place notification code here --- // 

    // Notify user just once per day; remember we've sent a notification already 
    properties.setProperty("lastNotified",today); 
    } 
} 
+0

спасибо за ответ Mongasdad.I Виль попробовать его. – DinEsh

Смежные вопросы