[英]Google Apps Script - createEvent function not creating calendar event
我們正在嘗試使用Google表單創建一個在線表單來接受約會請求。 該過程應如下所示:
奇怪的是,如果我們手動運行該函數,它將起作用。 它接受最后一行並創建一個事件。 如果我們嘗試通過直接調用函數直接通過代碼運行函數,則該函數不會創建事件。 這是我們的moverow.gs代碼
(請注意,所有機密的識別信息已被刪除,例如日歷ID):
function onEdit(e) {
try { moveRow(e) } catch (error) { Browser.msgBox(error) }
}
function moveRow(e) {
var rowStart = e.range.rowStart;
var colStart = e.range.columnStart;
var calendarStaff1Id = "<link to calendar>";
var calendarStaff2Id = "<link to calendar>"
var calendarStaff3Id = "<link to calendar>"
var calendarStaff4Id = "<link to calendar>"
if ( rowStart == e.range.rowEnd && colStart == e.range.columnEnd ) {
var active = e.source.getActiveSheet();
var name = active.getName();
if ( name == "Requests" && colStart == 10 ) {
var value = e.value;
if ( value == "ACCEPTED (S1)" ) {
var rowValues = active.getRange( rowStart + ':' + rowStart ).getValues();
e.source.getSheetByName("Accepted").appendRow(rowValues[0])
active.deleteRow(rowStart);
var calendarId = calendarStaff1Id;
addEvent();
}
if ( value == "ACCEPTED (S2)" ) {
var rowValues = active.getRange( rowStart + ':' + rowStart ).getValues();
e.source.getSheetByName("Accepted").appendRow(rowValues[0])
active.deleteRow(rowStart);
var id = calendarStaff2Id;
addEvent();
}
if ( value == "ACCEPTED (S3)" ) {
var rowValues = active.getRange( rowStart + ':' + rowStart ).getValues();
e.source.getSheetByName("Accepted").appendRow(rowValues[0])
active.deleteRow(rowStart);
var calendarId = calendarStaff3Id;
addEvent();
}
if ( value == "ACCEPTED (S4)" ) {
var rowValues = active.getRange( rowStart + ':' + rowStart ).getValues();
e.source.getSheetByName("Accepted").appendRow(rowValues[0])
active.deleteRow(rowStart);
var calendarId = calendarStaff4Id;
addEvent(calendarId);
}
if ( value == "REJECTED" ) { // Change to the value that will trigger the move
var rowValues = active.getRange( rowStart + ':' + rowStart ).getValues(); // Entire row
e.source.getSheetByName("Rejected").appendRow(rowValues[0]) // Change to your "move to" sheet name
active.deleteRow(rowStart);
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Rejected").activate();
Browser.msgBox("Please contact client to let them know that their request cannot be fulfilled");
}
}
}
}
function addEvent(calendarId) {
var startDtId = 7;
var titleId = 2;
var titleId2 = 6;
var descId = 8;
var formTimeStampId = 1;
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Accepted").activate();
// Switch to sheet Accepted and start the calendar event creation
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Accepted");
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var values = rows.getValues();
var lr = rows.getLastRow();
var startDt = sheet.getRange(lr,startDtId,1,1).getValue();
var subOn = "Added :"+sheet.getRange(lr,formTimeStampId,1,1).getValue()+" by: "+sheet.getRange(lr,titleId,1,1).getValue();
var desc = "Comments :"+sheet.getRange(lr,8,1,1);
var title = sheet.getRange(lr,titleId,1,1).getValue()+" - "+sheet.getRange(lr,titleId2,1,1).getValue();
var start = new Date(startDt);
var end = new Date(startDt.valueOf()+60*60*1000);
var loc = 'Central Library';
var cal = CalendarApp.getCalendarById(calendarId);
//Browser.msgBox("Please add the following event into your calendar: " + title + " Start Time: " + start + " End Time: " + end);
var event = cal.createEvent(title, start, end);
};
請幫忙!! 我們處於機智。 提前致謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.