2016-07-22 9 views
0

Ich habe eine Funktion mit Parameter und möchte Skript erstellen Trigger für die unbeaufsichtigte Ausführung der Funktion.übergeben Parameter an Skript erstellen Trigger

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);  
 
}

Auch wenn der Auslöser es nichts, da kein Parameterwert tut erstellt wird übergeben wird, ist es eine Möglichkeit, Parameter an das Skript übergeben erstellen Trigger.

+0

schlage ich nicht versucht haben, aber Sie könnten versuchen, das Hinzufügen/Tabelle mit den Funktionen vor dem 'nDays' verfolgen (zum Zeitpunkt Vergleich). Verwenden Sie die Daten aus der Tabelle, um den Wert zu erhalten, und verwenden Sie dann [installierte Auslöser] (https://developers.google.com/apps-script/guides/triggers/installable#time-driven_triggers), um Ihre unbeaufsichtigte Funktion auszuführen. –

Antwort

0

Ich kann Ihnen etwas wie die

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()); 
}