我最近修改了一小段脚本,在“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