2016-08-23 1 views
0

Ich weiß, dass installierbare Trigger als Autor des Skripts ausgeführt werden. Aber einige Dienste, wie email service funktionieren nur vom installierbaren Auslöser.Variable vom einfachen Trigger in den installierbaren Trigger übergeben

Ich brauche einen einfachen Trigger, um zu überprüfen, ob der aktuelle Benutzer Zugriff hat, um den spezifischen Bereich und den installierbaren Auslöser zum Senden von E-Mails zu bearbeiten.

Ich habe Code wie folgt aus:

var MY_VARIABLE; 

function onEdit() {  
    MY_VARIABLE = 'onEdit was here!'  
} 

function myOnEdit() { 
// installable trigger 
    Browser.msgBox(MY_VARIABLE); 

    // send email, use email service 
} 

Das Ergebnis undefined ist.

Und ich bin bereit, 'onEdit was here!'

+4

Sie können onEdit die Skripteigenschaften aktualisieren lassen und jede Minute einen weiteren Trigger prüfen lassen, wenn es ein Update gab, und dann eine E-Mail senden. (Skripteigenschaften: https://developers.google.com/apps-script/reference/properties/properties-service) –

Antwort

2

haben, wenn Sie so etwas wie schreiben:

function onEdit() {  
    MY_VARIABLE = 'onEdit was here!'; 
    myOnEdit(); 
} 

function myOnEdit() { 
    Browser.msgBox(MY_VARIABLE); 
} 

es wird funktionieren. Aber wenn "myOnEdit" nicht gleichzeitig mit "onEdit" aufgerufen wird, wird das Skript alles vergessen. Jedes Mal, wenn der Strict ausgelöst wird (onEdit oder wenn Sie eine Funktion manuell starten), wird die Umgebung zurückgesetzt und der Inhalt von "MY_VARIABLE" wird vergessen.
Was Wim den Herder proposed auf seinen Kommentar ist die gute Lösung, müssen Sie "MY_VARIABLE" Wert irgendwo Google Apps Script speichern können sich durch die Unterschiede Instanzen des Skripts erinnern. Das ermöglicht der propertyService. Eine letzte Sache, propertyService benötigt die Berechtigung, um ausgeführt zu werden. Sie können also nicht wirklich eine Funktion verwenden, die "onEdit" heißt, damit sie bei jeder Zellmodifikation ausgeführt wird. Sie müssen diese Funktion umbenennen (für was auch immer Sie wollen) und einen onEdit-Trigger darauf setzen.

+0

Vielen Dank für Ihre Schätzung. Ich werde es testen, aber nicht sicher, es funktioniert. Ich brauche einen einfachen Trigger + einen installierbaren Trigger und führe beide aus. –