2016-12-12 20 views
0

フォームとスプレッドシートに同じスクリプトがあります。フォームからスクリプトを実行すると、100%で動作しますが、時間ベースのトリガーをインストールすることができます。これは、午前8時29分にフォームを切り替える必要があり、午前8時59分に応答を受け付けなくなります。フォームのApps-Script時間ベースのトリガー

スプレッドシートから「フォーム提出中」を実行すると、フォームスクリプトで使用した提出機能が機能しなくなりました。

FORMスクリプトでタイムトリガーを取得するのに役立つか、機能を動作させるためにシート側で何をする必要があるかを理解するのに役立つかどうか

ここではフォーム上で動作するコードですが、スプレッドシートでは動作しません。フォームが送信されたときにLogger.Logエントリがなくなると "Form Submitted"と表示されます。データは、同じスプレッドシート上の「フォーム応答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時間が経過する。私はそれを理解したよう

、あなたのスクリプトは、私は、プログラム午前8時まで午前7時から毎分トリガーを作成しようとするつもりだった

参照

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

+0

終了時間後に開始することができますトリガーするか、24/5(土/日は必要ありませんが、私はそれらを除外することはできません)。 その後、https://productforums.google.com/forum/#!topic/docs/h5TC5uwsPLEのコードを使用してください –

関連する問題