2017-01-12 2 views
0

Ich habe ein Google Apps Script (GAS) erstellt, um einen E-Mail-Entwurf zu erstellen, wenn ein Datensatz zu meiner Tabelle hinzugefügt wird.GAS wird GmailApp.getUserLabelByName onEdit nicht ausführen

Ich benutze onEdit meine Methode aufrufen (stark vereinfacht) wie folgt aus:

function onEdit(e){ 
    populateCache("test"); 
} 
function populateCache(label){ 
    Logger.log("before"); 
    var thisLabel = GmailApp.getUserLabelByName(label); 
    Logger.log("after"); 
} 

Diese Protokolle „vor“, aber nie erreicht „nach“, und ich erhalte keine Fehler. Wenn ich die Methode manuell über Debug aufruft, funktioniert es wie erwartet.

Warum sollte diese Leitung über onEdit ausfallen?

var thisLabel = GmailApp.getUserLabelByName(label); 

Wie bekomme ich es zur Arbeit?

+1

Haben Sie einen Trigger von "onEdit()" gesetzt? Wenn kein Trigger vorliegt, tritt ein Berechtigungsfehler auf. – Tanaike

+0

Das hat funktioniert! Wenn Sie es als Antwort markieren, werde ich es akzeptieren. Ich frage mich, warum der Code bis zu diesem Teil ohne ein Problem ausgeführt wurde. – davids

+0

Vielen Dank für Ihre Kommentare. Ich habe es als Antwort zusammengefasst. Bitte bestätige es. – Tanaike

Antwort

1

Ich überprüfte die Situation, indem ich Skript folge. Wenn "onEdit()" nicht als Trigger registriert ist, wird ein Berechtigungsfehler in "Logger.log (e)" angezeigt. Der Fehler verschwindet durch Registrierung des Triggers. Und Logger.log ("nachher") wurde ausgeführt.

function onEdit(e){ 
    populateCache("test"); 
} 
function populateCache(label){ 
    Logger.log("before"); 
    try{ 
    var thisLabel = GmailApp.getUserLabelByName(label); 
    } 
    catch(e){ 
    Logger.log(e) 
    } 
    Logger.log("after") 
} 
Verwandte Themen