我最近修改了一小段腳本,在「Google文檔」電子表格中出現特定響應(單詞FAIL)時自動發送電子郵件給我,該電子表格收集志願者使用'Google Form'記錄每週對救生設備的檢查。Google腳本未能成功完成
FAIL上的電子郵件運行良好,已通過一些FAIL響應進行測試。但是,作爲'所有者'表單,我收到來自Google的通知,對於每個正常提交的PASS響應,告訴我腳本未能成功完成。
15年8月4日上午10時57分 SendGoogleForm 的ReferenceError: 「發現」 沒有被定義。 (第35行,文件「守則」) formSubmit
它完成成功,如果失敗響應被提交,所以我懷疑的是,由於我沒有經驗的腳本,我還沒有定義的時候發現應該發生什麼「不真正'。
對於一個更有經驗的腳本編寫者來說,這可能顯而易見地顯而易見,但是我用'Else'嘗試過的東西似乎都不起作用。
任何建議將不勝感激。
函數初始化(){
var triggers = ScriptApp.getProjectTriggers();
for (var i in triggers)
ScriptApp.deleteTrigger(triggers[i]);
ScriptApp.newTrigger("SendGoogleForm")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit().create();
}
功能SendGoogleForm(E){
if (MailApp.getRemainingDailyQuota() < 1) return;
// Recipients email address
var email = "[email protected]";
// Subject for Google Form email notification
var subject = "Weekly Checks - FAIL Submitted";
var s = SpreadsheetApp.getActiveSheet();
var columns = s.getRange(1, 1, 1, s.getLastColumn()).getValues()[0];
var message = "A check form has been submitted containing a ** FAIL ** response: ";
// Look for a 'FAIL' response
var key = columns[keys];
for (var keys in columns) {
if (e.namedValues[columns[keys]] == 'FAIL') {
found = true;
}
}
// Only include form fields that are not blank
if (found)
for (var keys in columns) {
var key = columns[keys];
if (e.namedValues[key] && (e.namedValues[key] !== "")) {
message += key + ' : ' + e.namedValues[key] + "\n\n";
}
}
MailApp.sendEmail(email, subject, message);
}
這確實會停止錯誤通知,但會導致爲每個響應發送電子郵件。該腳本的想法是僅在發現失敗時才發送電子郵件。感謝您的回覆。 – MRROVIS
那麼不應該在你的電子郵件代碼裏面(找到)? – allanquartz
發送部分代碼的電子郵件正在執行「每個」運行,但您只希望它在執行時發現== true。它看起來像失敗的原因是因爲錯誤代碼阻止了電子郵件被髮送,而不是因爲發現==真。 – allanquartz