脚本正在创建重复项:在表单提交上创建Google日历事件

时间:2015-02-12 02:23:51

标签: google-apps-script

这个剧本工作了将近一年。两个触发器都是“On Form Submit”。 大约一周前,这两个功能开始重复:两个相同的电子邮件,两个相同的日历事件。我在这里经历了很多帖子。我无法弄清楚如何摆脱这个问题。我不是程序员,下面的代码来自不同的来源。最近添加了LockService但没有成功。 任何人都可以解释代码有什么问题吗? 谢谢。

function BOOKemail(email, subject, message, options) 
{ 
var lock = LockService.getPublicLock();
var success = lock.tryLock(5000);
if (!success) {
Logger.log('tryLock failed to get the lock');
return
}
var email = "abc@abc.org"
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var lr = rows.getLastRow();
var subject = "Request: "+sheet.getRange(lr,2).getValue()+"     "+sheet.getRange(lr,1).getValue(); 
var message = "Issue: "+sheet.getRange(lr,3).getValue()+"     "+"Employee name:     "+sheet.getRange(lr,4).getValue();
var options = {name:"ABC"};

MailApp.sendEmail(email, subject, message);
lock.releaseLock();

}


function createEvent(title, date, desc)
{
var lock = LockService.getPublicLock();
var success = lock.tryLock(5000);
if (!success) {
Logger.log('tryLock failed to get the lock');
return
}
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var lr = rows.getLastRow();
var title = sheet.getRange(lr,1).getValue()+"       "+"Request: "+sheet.getRange(lr,2).getValue()+"   "+"Issue: "+sheet.getRange(lr,3).getValue()+"   [F]";
var desc = "Issue: "+sheet.getRange(lr,3).getValue()+"     "+"Employee name:    "+sheet.getRange(lr,4).getValue();
var cal = CalendarApp.getCalendarsByName('ABC') [0];
var date = new Date();
var event = cal.createAllDayEvent(title, date, {description : desc});
lock.releaseLock();
};

1 个答案:

答案 0 :(得分:1)

这实际上是Google底层问题,您的代码很好。

请在此处查看问题:http://code.google.com/p/google-apps-script-issues/issues/detail?id=4752

我遇到了与我为客户开发的脚本相同的问题,但在最近30分钟内,重复的问题似乎已经停止发生。所以我希望谷歌现在已经解决了潜在的问题。