google scripts onedit -> 范围的电子邮件触发器为每次编辑生成一封电子邮件
google scripts onedit -> email trigger for range produces an email for each edit
我知道发生的事情是设计使然的,但我试图弄清楚人们是如何处理这个问题的——尝试了几种不同的方法,但我认为我没有以正确的方式思考它(我'我更像是一个 bash 脚本编写者 :)).
我有一个 Google Sheet,其中包含一个对单元格范围执行 onEdit 的脚本:如果该范围内的任何单元格被编辑,则会发送一封电子邮件。好!
现在,如果有人编辑,比如该范围内的 5 个单元格,则会发送 5 封电子邮件。不好!
所以 似乎 我需要一种方法让每个脚本 运行 "know" 相互了解并且只在一段时间后发送电子邮件在编辑第一个单元格之后?
我查看了这个以寻找线索,但设置标志会阻止其他编辑...
https://developers.google.com/apps-script/articles/sending_emails#section2
我不得不想象这是一件很常见的事情,但我没有想到。
感谢大家的任何想法,非常感谢
JL
使用脚本 PropertiesService 保存时间戳。例如下面的脚本每天只会发送一封电子邮件。
https://developers.google.com/apps-script/reference/properties/
var settings = PropertiesService.getScriptProperties();
var lastEditEmailDate = settings.getProperty('lastEditEmailDate');
var today = new Date().toDateString();
if (lastEditEmailDate != today) {
/*send the email*/
settings.setProperty('lastEditEmailDate', today);
}
我知道发生的事情是设计使然的,但我试图弄清楚人们是如何处理这个问题的——尝试了几种不同的方法,但我认为我没有以正确的方式思考它(我'我更像是一个 bash 脚本编写者 :)).
我有一个 Google Sheet,其中包含一个对单元格范围执行 onEdit 的脚本:如果该范围内的任何单元格被编辑,则会发送一封电子邮件。好!
现在,如果有人编辑,比如该范围内的 5 个单元格,则会发送 5 封电子邮件。不好!
所以 似乎 我需要一种方法让每个脚本 运行 "know" 相互了解并且只在一段时间后发送电子邮件在编辑第一个单元格之后?
我查看了这个以寻找线索,但设置标志会阻止其他编辑... https://developers.google.com/apps-script/articles/sending_emails#section2
我不得不想象这是一件很常见的事情,但我没有想到。
感谢大家的任何想法,非常感谢 JL
使用脚本 PropertiesService 保存时间戳。例如下面的脚本每天只会发送一封电子邮件。
https://developers.google.com/apps-script/reference/properties/
var settings = PropertiesService.getScriptProperties();
var lastEditEmailDate = settings.getProperty('lastEditEmailDate');
var today = new Date().toDateString();
if (lastEditEmailDate != today) {
/*send the email*/
settings.setProperty('lastEditEmailDate', today);
}