2016-12-12 38 views
0

我在表单和电子表格上具有相同的脚本。当我从表单执行脚本时,它可以100%工作,但我可以获得基于时间的安装触发器,我需要在早上8:29切换表单,并在上午8:59停止接受回复。基于应用程序脚本的基于时间的触发器

当我从电子表格执行“On Form Submit”时,我在Form Form上使用的提交功能不再有效。

我需要帮助获取FORM脚本中的时间触发器......或者帮助理解我需要在Sheet侧执行以获得该功能的工作。

这是在表单上工作的代码,但不是在电子表格中......我得到“表单提交”,就是这样,当表单触发表单提交触发器时,不再有Logger.Log条目。数据将在同一电子表格中发送“Form Responses 1”表单。

function onFormSubmit(e) { 
     Logger = BetterLog.useSpreadsheet('XXXXXXXXXX'); 
     Logger.log('Form Submitted'); 
     var formResponse = e.response; 
     var itemResponses = formResponse.getItemResponses(); 
     var student=[]; 
     var studentchoice = []; 
     for (var i=0; i<itemResponses.length; i++) { 
     if(itemResponses[i].getItem().getTitle()=="Pick your class"){ 
      //We will have the teachers name...open the right sheet 
      var teacher = itemResponses[i].getResponse(); 
      Logger.log(teacher); 
      classroom(teacher); //stores teacher in cache to use in another function 
     }else{ 
      student.push(itemResponses[i].getItem().getTitle()); 
      studentchoice.push(itemResponses[i].getResponse()); 
      Logger.log(itemResponses[i].getItem().getTitle()); 
     } 
     } 
     if(student.length >= 1 && studentchoice.length >= 1){ 
      enterOrders(classroom(),student,studentchoice); 
     } 

     var formattedDate = Utilities.formatDate(new Date(), "EST", "h:mm a"); 
      Logger.log(formattedDate); 

} 

回答

0

部分答案

请注意,时间驱动的脚本可以“稍微随机”。从官方文档

时间可能会稍微随机化 - 例如,如果您创建一个经常性的早上9点触发器,Apps脚本会选择9点到10点之间的时间,然后每天保持该时间一致以便在触发器再次触发前24小时过去。

据我了解,你的脚本可以在结束时间之后开始

参考

https://developers.google.com/apps-script/guides/triggers/installable

+0

我会尝试以编程方式从早上7点到上午8点做成每分钟触发触发......或者让它运行24/5(星期六/星期日不需要..除非我不能省略它们)。 然后使用https://productforums.google.com/forum/#!topic/docs/h5TC5uwsPLE中的代码 –