Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 由表单提交触发的Google脚本有时不会';行不通_Javascript_Google Apps Script_Google Sheets_Google Forms_Eventtrigger - Fatal编程技术网

Javascript 由表单提交触发的Google脚本有时不会';行不通

Javascript 由表单提交触发的Google脚本有时不会';行不通,javascript,google-apps-script,google-sheets,google-forms,eventtrigger,Javascript,Google Apps Script,Google Sheets,Google Forms,Eventtrigger,我有一个脚本,当它被发送时,从谷歌表单中读取答案。脚本绑定到一个电子表格,该表格捕获所有答案。该脚本生成包含一些信息的PDF,并通过GmailApp将其发送给用户,然后将PDF存储在驱动器文件夹中。但有时脚本不起作用。答案始终存储在电子表格中,但尽管如此,脚本不会运行。我已经检查了“执行记录”,但它包含关于上次成功执行的信息 如何保证脚本始终运行 有人能解释为什么会这样吗 密码 //ID del模板 var docTemplate=“此处的模板ID”; //科皮亚的名字 var docName=

我有一个脚本,当它被发送时,从谷歌表单中读取答案。脚本绑定到一个电子表格,该表格捕获所有答案。该脚本生成包含一些信息的PDF,并通过GmailApp将其发送给用户,然后将PDF存储在驱动器文件夹中。但有时脚本不起作用。答案始终存储在电子表格中,但尽管如此,脚本不会运行。我已经检查了“执行记录”,但它包含关于上次成功执行的信息

如何保证脚本始终运行

有人能解释为什么会这样吗

密码
//ID del模板
var docTemplate=“此处的模板ID”;
//科皮亚的名字
var docName=“biovenCIP”;
//康斯坦西亚将军和环境保护委员会主要负责人
函数onFormSubmit(e){
//莱茵多达托斯德尔公式
var d=新日期();
var注册日期=e.values[0];
var first_name=e.values[1];
var second_name=e.values[2];
var first_lastname=e.values[3];
var second_lastname=e.values[4];
var文件类型=e.values[5];
var文件编号=e.值[6];
var email_address=e.values[7];
var占用=e.值[8];
var类别=e.价值[9];
var付款数量=e.值[10];
var付款日期=e.价值[11];
//Inicializando mensaje opcional
var occupation_message=“”;
//诺姆布雷将军
if(第二个名称.localeCompare(“”)=0){
第二个名称=“第二个名称”;
}
if(second_lastname.localeCompare(“”)=0){
second_lastname=“”+second_lastname;
}
var full\u name=第一名+第二名+“”+第一名+第二名;
全名=全名。替换(/\s+/g,“”);
//通用公司模板
var copyID=DocsList.getFileById(docTemplate).makeCopy(docName+'''.'+文档号).getId();
var copyDoc=DocumentApp.openById(copyID);
var copyBody=copyDoc.getActiveSection();
//重新采样文本模板
copyBody.replaceText('keyDate',注册日期);
copyBody.replaceText('keyFullName',全名);
copyBody.replaceText('keyIDType',文档类型);
copyBody.replaceText('keyIDNumber',文档编号);
copyBody.replaceText('keyEmail',电子邮件地址);
copyBody.replaceText('keycocculation',occulation);
转辙机(占用){
案例“Estudiante de pregrado”:
职业信息=“(呈现carnet el primer día del evento)”;
var付款价值=100.00;
打破
案例“研究生院”:
职业信息=“(呈现carnet el primer día del evento)”;
var付款价值=150.00;
打破
“专业”案例:
var付款价值=200.00;
打破
}
copyBody.replaceText('keyOMessage',occupation_message);
copyBody.replaceText('keyCategory',category);
copyBody.replaceText('keyPaymentNum',付款编号);
copyBody.replaceText('keyPaymentDate',payment_date');
copyBody.replaceText('keyPayment',payment\u-worth)
copyDoc.saveAndClose();
//Convertir temporalmente a PDF
var pdf=DocsList.getFileById(copyID.getAs(“application/pdf”);
//附件PDF y enviado correo ELECTROónico
var reply_email=”info@bioven.org.ve";
var bcc_电子邮件=”congresobioven@gmail.com";
var subject=“Constancia de inscripción-BIOVEN 2015”;
var body=“Estimado”+全名+“,

在2015年,一场由康斯坦西亚德·康斯坦西亚德·康斯坦西亚德·康斯坦西亚德·维尼佐拉诺·比奥芬(Venezolano de BioingenieríA)-比奥芬(BIOVEN)议会发起的电力改革,在2015年,比奥芬市政府组织委员会(Commitéde deberápresentar el primer díA del Congresso durante la verificación de registro)召开的会议上,


; GmailApp.sendmail(电子邮件地址、主题、正文,{姓名:'Congreso BIOVEN 2015',密件抄送:密件抄送:电子邮件,htmlBody:body,回复:回复电子邮件,附件:pdf}); //Guardando PDF en Drive var folder_id=“此处的文件夹id”; DriveApp.getFolderById(文件夹id).createFile(pdf); //博兰多·阿奇沃医生 DocsList.getFileById(copyID).setTrashed(true); }
尝试在代码中更高的位置定义变量
支付值

function onFormSubmit(e){
  //Leyendo datos del formulario
  var d = new Date();
  //Other var definitions
  var payment_worth = 0;
初始值为零。目前,如果您的案例/选择失败,变量
payment\u-worth
将未定义

只是个主意,不知道是不是个好主意

案例选择如下所示:

switch(occupation){
  case "Estudiante de pregrado":
  occupation_message = "(presente carnet el primer día del evento)";
  payment_worth = 100.00;
  break
  case "Estudiante de postgrado":
  occupation_message = "(presente carnet el primer día del evento)";
  payment_worth = 150.00;
  break
  case "Profesional":
  payment_worth = 200.00;
  break
}

我的解决方案是制作一个Webapp并发布它,保证100%的发送都能正常工作。@Kriggs那么,这是一个正常的问题吗?@Kriggs我该怎么做?在脚本编辑器>资源>触发器中,您可以将通知设置为“立即发送”(或类似的;-),这将向您发送一个错误通知以及有关所发生情况的一些信息。或者,您可以将代码包装在一个try/catch中,当“try”失败时,它将向您发送消息。脚本可能会运行,但只是失败。作为Web应用发布不会更改任何内容。也许您可以添加一个无条件邮件发送,以检查它是否运行
switch(occupation){
  case "Estudiante de pregrado":
  occupation_message = "(presente carnet el primer día del evento)";
  payment_worth = 100.00;
  break
  case "Estudiante de postgrado":
  occupation_message = "(presente carnet el primer día del evento)";
  payment_worth = 150.00;
  break
  case "Profesional":
  payment_worth = 200.00;
  break
}