2016-07-22 16 views
0

私はパラメータ付きの関数を持っていて、無人関数の実行のためにスクリプトを作成したいと思います。スクリプトにパラメータを渡します。

function getLastNdays(nDaysAgo) { 
 
    var today = new Date(); 
 
    var before = new Date(); 
 
    before.setDate(today.getDate() - nDaysAgo); 
 
    return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd'); 
 
} 
 

 
function runNextTrigger() { 
 
    
 
    var GUID = "[email protected]#E$RI" 
 
    var userProperties = PropertiesService.getUserProperties(); 
 
    var nextTrigger = ScriptApp.newTrigger("getLastNdays").timeBased().after(1 * 60 * 1000).create(); 
 
    
 
    var triggerId = nextTrigger.getUniqueId(); 
 
    userProperties.setProperty("LastNdays_" + GUID, triggerId);  
 
}

トリガーは何もパラメータの値が渡さされていないとして、それは何もしません作成されていても、トリガーを作成するスクリプトにパラメータを渡す方法があります。

+0

のようなものを提案することができますが、(日付の比較のために)前に 'nDays'を追跡するために、スプレッドシートを使用して/追加してみてください可能性があります。スプレッドシートのデータを使用して値を取得し、[インストールされたトリガ](https://developers.google.com/apps-script/guides/triggers/installable#time-driven_triggers)を使用して無人機能を実行します。 –

答えて

0

私はあなたに私はこれを試していないこと

function getLastNdays(before) { 
if(!(before instanceof Date)){ 
    var timestamp = PropertiesService.getUserProperties().getProperty("LastNdays_" +before.triggerUid); 
    before = new Date(); 
    before.setTime(timestamp); 
} 

    //var today = new Date(); 
    //var before = new Date(); 
    //before.setDate(today.getDate() - nDaysAgo); 
return Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd'); // notice return wont return anywhere as it's the function called 
SpreadsheetApp.openById("SSID") 
.getSheetByName("Sheet2").appendRow([new Date(), Utilities.formatDate(before, 'GMT', 'yyyy-MM-dd')]); // used a spreadsheet to log the action 
} 

function runNextTrigger() { 

    var GUID = "[email protected]#E$RI" 
    var userProperties = PropertiesService.getUserProperties(); 
    var nextTrigger = ScriptApp.newTrigger("getLastNdays").timeBased().after(10).create(); 

    var triggerId = nextTrigger.getUniqueId(); 
    //userProperties.setProperty("LastNdays_" + GUID, triggerId); 
    var now = new Date(); 
    userProperties.setProperty("LastNdays_" + triggerId,now.getTime()); 
} 
関連する問題