【发布时间】:2020-10-15 23:19:16
【问题描述】:
我的日历中经常出现重复条目的问题。
根据我目前的情况:
-
数据被输入到网络表单中。
-
然后将这些输入到我的 SQL 数据库中。
-
然后通过脚本发送到 Google 电子表格。到目前为止一切正常。
-
新文件夹中的另一个 Google 表格接收收到的数据。
-
使用更改触发器,现在通过脚本将数据发送到日历。 然而,问题是这种情况经常会无缘无故地发生两次。
在我选择带有更多表格的解决方案之前,如第 4 点所述,甚至有几个条目。
Google 表格中表单条目的代码来自 jamiewilson-form-to-Google-Sheets,而日历中条目的代码来自页面顶部。
function Kalendereintrag_func() {
var kalenderID = 'xxxxxxxx@group.calendar.google.com';
var meinKalender = CalendarApp.getCalendarById(kalenderID);
var ss = SpreadsheetApp.openById('xxxxxxxxxxxxxxxxxxx').getSheetByName(
'Datenimport'
);
var TabelleVonTag = ss.getRange('A2').getValue();
var TabelleVonZeit = ss.getRange('B2').getValue();
var TabelleBisTag = ss.getRange('C2').getValue();
var TabelleBisZeit = ss.getRange('D2').getValue();
var KalenderVon = new Date(TabelleVonTag);
KalenderVon.setHours(TabelleVonZeit.getHours());
KalenderVon.setMinutes(TabelleVonZeit.getMinutes());
var KalenderBis = new Date(TabelleBisTag);
KalenderBis.setHours(TabelleBisZeit.getHours());
KalenderBis.setMinutes(TabelleBisZeit.getMinutes());
var Titel = ss.getRange('E2').getValue();
var Beschreibung = ss.getRange('F2').getValue();
var Ort = ss.getRange('G2').getValue();
var termin = meinKalender.createEvent(Titel, KalenderVon, KalenderBis, {
description: Beschreibung,
location: Ort,
});
}
function onFormSubmit(e) {
var targetCell = e.range.offset(0, e.range.getNumColumns(), 1, 1);
var lock = LockService.getScriptLock();
lock.waitLock(30000);
var ticketNumber =
Number(ScriptProperties.getProperty('lastTicketNumber')) + 1;
ScriptProperties.setProperty('lastTicketNumber', ticketNumber);
lock.releaseLock();
targetCell.setValue(ticketNumber);
}
我有一个 Web 表单。我将此表单中的用户输入与脚本一起提供给名为“Dateneingang”的 Google 表格。运行良好。在这张名为“Auswertung”的 Google 表格的新表格中,我得到了这张表格的最后一个条目。它运行良好,我没有重复条目。但是在过去,当我尝试从这里发送数据到我的 Google 日历时,我无法触发它。因此,我采用我的解决方案方法将这些数据放在每个“Importrange”的新表中。
在那里我通过改变来触发。这是我的问题。它发送数据2次。但不是每次,而是经常。
我想好的,几秒钟后我删除了条目,但是有一个新的更改激活了触发器。然后我有一个关于解决方案的工作。
但是为什么有时运行正确而有时却没有。
【问题讨论】:
-
谢谢,也许我找到了解决办法:我更改了 lockservice 代码。
-
Alex,顺便说一句,如果您找到了解决方案,您可以发布作为自我回答
标签: google-apps-script google-sheets google-calendar-api