【发布时间】:2020-10-22 18:39:26
【问题描述】:
我正在为库存跟踪电子表格开发一个简单的脚本,该电子表格会发送电子邮件警报,列出当前数量的低库存商品。一切似乎都运行良好...除了,它运行良好。
我依靠 Google 的原生“编辑时”触发器来启动脚本。不幸的是,这意味着当我更新 10 件商品的库存时(我经常这样做),脚本会运行 10 次并发送 10 封电子邮件通知。
为了将 10 封电子邮件合并为一封,我使用 Utilities.sleep(300000) 在脚本运行之前插入延迟,希望它只运行一次并生成一封电子邮件,其中包含在此期间所做的所有编辑五分钟。
我相信任何专家都已经知道,我最终收到了相同的 10 封电子邮件,只是延迟了 5 分钟。 Google 似乎根据触发器的数量并行运行脚本。
如何将我的垃圾邮件脚本转换为仅在所有编辑完成后发送一次的合并电子邮件通知?
这是我的第一个编码项目。我是编码新手,只知道通过 StackOverflow 和 Google 学到的知识。这个问题可能已经在某个地方得到了回答,我只是不知道要搜索什么才能找到它。提前感谢您的任何帮助/指导!
【问题讨论】:
-
嗨,我要做的是转换 onEdit 触发器以在行尾的新列中将该行标记为已修改。然后添加一个基于时间的触发器来查找所有修改的行,将它们汇总到电子邮件中并将状态更新为未修改。跳这个有帮助。
-
或者根本不使用触发器来发送电子邮件。只需从菜单中运行该功能。
-
过度使用 onedits 的问题之一是它们都必须在 30 秒内完成。
-
我选择了 onEdit 触发器,因为电子表格不会定期更新,但我想立即知道它何时更新。 onEdit 触发器似乎是唯一适合该案卷的触发器。菜单功能可能有效,但我依靠员工记住实际单击该按钮(很难让他们记住填写电子表格)...
标签: javascript google-apps-script google-sheets triggers