2017-07-24 4 views
0

Gibt es eine Möglichkeit, alle Trigger aus allen Dokumenten in Google Script zu erhalten (und zu ändern/zu entfernen), als ob ich Script Editor -> Edit -> All your triggers geöffnet habe?Erhalten Sie alle Google Script Trigger und entfernen Sie sie

Update:

habe ich ein paar Test Trigger und versucht, alle Tabellenkalkulationsdateien in einer Schleife, wie sie von Pierre-Marie Richard gesagt:

function getAllSpreadsheetTriggers() 
{ 
    var files = DriveApp.getFilesByType('application/vnd.google-apps.spreadsheet'), 
     spreadsheets = [], 
     triggers  = []; 

    while(files.hasNext()) 
     spreadsheets.push(SpreadsheetApp.openById(files.next().getId())); 

    for (var i = 0; i < spreadsheets.length; i++) 
    { 
     triggers = ScriptApp.getUserTriggers(spreadsheets[i]); 
     Logger.log(triggers); 
    } 
} 

Aber .getUserTriggers() immer wieder zurückkehren ein leeres Array. Ich lese this issue, die letzte Antwort ist "Wir beschlossen, keine Maßnahmen zu diesem Thema zu ergreifen. Trigger gehören immer zu einem bestimmten Skript und sind nicht zugänglich für andere Skripte. Die Dokumentation wurde geklärt, um dies zu verdeutlichen."

Es stellt sich heraus, dass es nicht getan werden kann?

Antwort

2

Sie können den Trigger aus Ihren Dokumenten/Formularen/Tabellen mit den Methoden getUserTriggers(document), getUserTriggers(forms) und getUserTriggers(spreadsheet) abrufen, aber es gibt nur den Trigger für die angegebene Datei zurück. Sie müssen also alle Dateien in einer Schleife durchlaufen lassen, wenn Sie die Auslöser von allen Dateien Ihres Laufwerks ändern möchten.

Sie können Trigger auch nicht nach Code ändern, aber Sie können einen Trigger (deleteTrigger(Trigger) method) löschen und einen neuen erstellen (siehe TriggerBuilder class).

Edit: Als FLighter Punkt ist es, können Sie nicht die Auslöser von einem anderen Skript erhalten, die diejenige, die Sie ausführen. Ich sollte in der Dokumentation mit mehr Aufmerksamkeit gelesen haben:

Ruft alle installierbaren dieses Benutzers in der gegebenen Dokument im Besitz Trigger für dieses Skript oder Add-on nur. Diese Methode kann nicht verwendet werden, um die an andere Skripts angehängten Trigger zu sehen.

Also, anwser die ursprüngliche Frage, nein, können Sie nicht. Sie können für jedes Skript einen Code erstellen, der jedoch manuell ausgelöst werden muss.

+0

Bitte, können Sie meine aktualisierte Frage kommentieren? Vielen Dank – FLighter

0

Nur damit Sie wissen, dass Sie zusätzlich zu Pierre-Marie Richards Antwort nur die Auslöser löschen können, die Sie in einem Dokument erstellt haben. Sie können die von anderen Benutzern erstellten Auslöser nicht löschen. Jeder Benutzer mit Bearbeitungszugriff kann einen Auslöser für ein Dokument erstellen, dieser Auslöser kann jedoch nur von diesem Benutzer manipuliert werden.

Verwandte Themen