2017-03-11 6 views

答えて

2

Installable Triggerに基づいて、営業時間の朝の朝に1回実行されるクロックを作成することができます。

コードのこの作品は、サーバー側のスクリプトになり、次のようになります。

function createInstallableTrigger() { 
 
    // Runs at 5am in the timezone of the script 
 
    ScriptApp.newTrigger("backUp") 
 
    .timeBased() 
 
    .atHour(5) 
 
    .everyDays(1) // Frequency is required if you are using atHour() or nearMinute() 
 
    .create(); 
 
} 
 

 
function backUp() { 
 
    try { 
 
    var spreadSheet = SpreadsheetApp.openById("").getActiveSheet(), 
 
     dataToBackUp = [], 
 
     globalKeys = { 
 
      model: ["first_name", "last_name", "email"], 
 
      label: ["First Name", "Last Name", "Email"] 
 
     }, 
 
    var records = app.models.requests.newQuery().run(); 
 
    if(records.length >= 1) { 
 
     for (var i = 0; i < records.length; i++) { 
 
     var newLine = []; 
 
     for (var x = 0; x < globalKeys.model.length; x++) { 
 
      newLine.push(records[i][globalKeys.model[x]]); 
 
     } 
 
     dataToBackUp.push(newLine); 
 
     // at the end, push it all on the spreadsheet 
 
     if(i === records.length - 1) { 
 
      // check if there is any entry at all 
 
      if(dataToBackUp.length >= 1) { 
 
      // append column titles first 
 
      spreadSheet.appendRow(globalKeys.label); 
 
      // 
 
      spreadSheet.getRange(2, 1, dataToBackUp.length, globalKeys.model.length).setValues(dataToBackUp); 
 
      } 
 
     } 
 
     } 
 
    } 
 
    } catch(e) { 
 
    console.log(e); 
 
    } 
 
}

+0

は助けてくれてありがとう! –

+0

もしうまくいけば私たちに知らせてください。答えがあればそれを選択してください:) –

+0

このコードがたくさんあるので、お詫び申し上げます。だから私はサーバーサイドスクリプトを作成し、そこにそのコードをコピーするでしょうか?スプレッドシートを作成/保存する場所はどこですか?また、モデル/ラベルセクションでは、すべてのモデルの各ラベルをアプリ全体に入力する必要がありますか?そうであれば、それはラベルの数とそれらが依然として変化しているという事実のために価値があるよりももっと難しいかもしれません。私はDeploymentsセクションからマニュアルExport Dataを行うことができます。私の希望は、それを手作業で行う必要がなくても、それを開始する方法があるかもしれないということでした。しかし、私はそれがより簡単な選択肢かもしれないと思います。 –