Wie einfache Trigger ermöglichen installierbare Trigger, dass Google Apps Script eine Funktion automatisch ausführt, wenn ein bestimmtes Ereignis eintritt, z. B. wenn ein Dokument geöffnet wird. Installierbare Trigger bieten jedoch mehr Flexibilität als einfache Trigger: Sie können Dienste aufrufen, für die eine Autorisierung erforderlich ist, sie bieten mehrere zusätzliche Ereignistypen, einschließlich zeitgesteuerter (Uhr-)Trigger, und sie können programmatisch gesteuert werden. Sowohl für einfache als auch für installierbare Trigger übergibt Apps Script der ausgelösten Funktion ein Ereignisobjekt, das Informationen zum Kontext enthält, in dem das Ereignis aufgetreten ist.
Weitere Informationen zur Verwendung von Triggern in Add-ons finden Sie unter Trigger für Google Workspace-Add-ons.
Einschränkungen
Installierbare Trigger bieten zwar mehr Flexibilität als einfache Trigger, unterliegen aber dennoch einigen Einschränkungen:
- Sie werden nicht ausgeführt, wenn eine Datei im Lesemodus (Ansehen oder Kommentieren) geöffnet wird. Bei eigenständigen Skripts benötigen Nutzer mindestens Lesezugriff auf die Skriptdatei, damit Trigger richtig ausgeführt werden.
Scriptausführungen und API-Anfragen führen nicht dazu, dass Trigger ausgeführt werden. Wenn Sie beispielsweise
FormResponse.submit()aufrufen, um eine neue Formularantwort zu senden, wird der Submit-Trigger des Formulars nicht ausgeführt.Eine Ausnahme von dieser Einschränkung ist
Form.submitGrades(). Wenn in Ihrem Code einonFormSubmit-Trigger verwendet wird, löst der Aufruf vonForm.submitGrades()dieonFormSubmit-Bedingung aus und führt zu einer Endlosschleife. Um die Endlosschleife zu verhindern, fügen Sie Code hinzu, der prüft, ob bereits Noten vorhanden sind, bevorsubmitGrades()aufgerufen wird.Installierbare Trigger werden immer unter dem Konto der Person ausgeführt, die sie erstellt hat. Wenn Sie beispielsweise einen installierbaren offenen Trigger erstellen, wird er ausgeführt, wenn Ihr Kollege das Dokument öffnet (sofern er Bearbeitungszugriff hat). Die Ausführung erfolgt jedoch über Ihr Konto. Wenn Sie also einen Trigger erstellen, um eine E‑Mail zu senden, wenn ein Dokument geöffnet wird, wird die E‑Mail immer von Ihrem Konto gesendet, nicht unbedingt von dem Konto, mit dem das Dokument geöffnet wurde. Sie können jedoch für jedes Konto einen installierbaren Trigger erstellen. In diesem Fall wird aus jedem Konto eine E‑Mail gesendet.
In einem bestimmten Konto sind keine Trigger zu sehen, die über ein zweites Konto installiert wurden. Das erste Konto kann diese Trigger jedoch weiterhin aktivieren.
Installierbare Trigger unterliegen den Kontingentlimits für Apps Script-Trigger.
Zeitgesteuerte Trigger
Ein zeitgesteuerter Trigger (auch als Takt-Trigger bezeichnet) ähnelt einem Cronjob in Unix. Mit zeitgesteuerten Triggern können Skripts zu einem bestimmten Zeitpunkt oder in einem wiederkehrenden Intervall ausgeführt werden, so häufig wie jede Minute oder so selten wie einmal pro Monat. (Ein Add-on kann höchstens einmal pro Stunde einen zeitgesteuerten Trigger verwenden.) Die Uhrzeit kann leicht zufällig sein. Wenn Sie beispielsweise einen wiederkehrenden Trigger für 9:00 Uhr erstellen, wählt Apps Script eine Uhrzeit zwischen 9:00 und 10:00 Uhr aus und behält diese Uhrzeit von Tag zu Tag bei, sodass 24 Stunden vergehen, bevor der Trigger wieder ausgelöst wird.
Ereignisgesteuerte Trigger
Installierbare ereignisgesteuerte Trigger ähneln konzeptionell einfachen Triggern wie onOpen(), können aber auf zusätzliche Ereignisse reagieren und verhalten sich anders.
Der installierbare Open-Trigger für Google Tabellen wird beispielsweise immer dann aktiviert, wenn die Tabelle von einem Nutzer mit Bearbeitungszugriff geöffnet wird, genau wie der einfache onOpen()-Trigger. Die installierbare Version kann jedoch Dienste aufrufen, für die eine Autorisierung erforderlich ist. Die installierbare Version wird mit der Autorisierung des Nutzers ausgeführt, der den Trigger erstellt hat, auch wenn ein anderer Nutzer mit Bearbeitungszugriff die Tabelle öffnet.
Für Google Workspace-Anwendungen gibt es mehrere installierbare Trigger:
- Ein installierbarer open-Trigger wird ausgeführt, wenn ein Nutzer eine Tabelle, ein Dokument oder ein Formular öffnet, das er bearbeiten darf.
- Ein installierbarer edit-Trigger wird ausgelöst, wenn ein Nutzer einen Wert in einer Tabelle ändert.
- Ein installierbarer Änderungs-Trigger wird ausgelöst, wenn ein Nutzer die Struktur einer Tabelle ändert, z. B. indem er ein neues Tabellenblatt hinzufügt oder eine Spalte entfernt.
- Ein installierbarer Formular senden-Trigger wird ausgeführt, wenn ein Nutzer auf ein Formular antwortet. Es gibt zwei Versionen des Triggers „Formular senden“: eine für Google Formulare selbst und eine für Google Tabellen, wenn das Formular an eine Tabelle gesendet wird.
- Ein installierbarer Kalendertermin-Trigger wird ausgeführt, wenn die Kalendertermine eines Nutzers aktualisiert werden – also erstellt, bearbeitet oder gelöscht werden.
Installierbare Trigger sind in eigenständigen und gebundenen Skripts verfügbar. Ein eigenständiges Skript kann beispielsweise programmatisch einen installierbaren Trigger für eine beliebige Google-Tabellen-Datei erstellen, indem TriggerBuilder.forSpreadsheet(key) aufgerufen und die ID der Tabelle übergeben wird.
Trigger manuell verwalten
So erstellen Sie manuell einen installierbaren Trigger im Script Editor:
- Öffnen Sie Ihr Apps Script-Projekt.
- Klicken Sie links auf Trigger .
- Klicken Sie rechts unten auf Trigger hinzufügen.
- Wählen Sie den gewünschten Triggertyp aus und konfigurieren Sie ihn.
- Klicken Sie auf Speichern.
Trigger programmatisch verwalten
Sie können Trigger mit dem Script-Dienst programmgesteuert erstellen und löschen. Rufen Sie zuerst ScriptApp.newTrigger(functionName) auf. Dadurch wird ein TriggerBuilder zurückgegeben.
Im folgenden Beispiel wird gezeigt, wie Sie zwei zeitgesteuerte Trigger erstellen – einen, der alle 6 Stunden ausgelöst wird, und einen, der jeden Montag um 9:00 Uhr (in der Zeitzone, die für Ihr Skript festgelegt ist) ausgelöst wird.
Im nächsten Beispiel wird gezeigt, wie ein installierbarer Open-Trigger für eine Tabelle erstellt wird. Anders als bei einem einfachen onOpen()-Trigger muss das Skript für den installierbaren Trigger nicht an die Tabelle gebunden sein. Wenn Sie diesen Trigger über ein eigenständiges Skript erstellen möchten, ersetzen Sie SpreadsheetApp.getActive() durch einen Aufruf von SpreadsheetApp.openById(id).
Wenn Sie einen vorhandenen installierbaren Trigger programmatisch ändern möchten, müssen Sie ihn löschen und einen neuen erstellen. Wenn Sie die ID eines Triggers zuvor gespeichert haben, können Sie sie löschen, indem Sie die ID als Argument an die folgende Funktion übergeben.
Prüfen Sie vor dem Erstellen eines Triggers, ob die zugehörige Funktion alle erforderlichen OAuth-Berechtigungen hat.
Fehler in Triggern
Wenn ein installierbarer Trigger ausgelöst wird, die Funktion aber eine Ausnahme auslöst oder aus anderen Gründen nicht erfolgreich ausgeführt wird, wird keine Fehlermeldung auf dem Bildschirm angezeigt. Wenn ein zeitgesteuerter Trigger ausgeführt wird oder ein anderer Nutzer Ihren Trigger für das Senden von Formularen aktiviert, sind Sie möglicherweise gar nicht an Ihrem Computer.
Stattdessen sendet Apps Script eine E-Mail wie die folgende:
From: noreply-apps-scripts-notifications@google.com Subject: Summary of failures for Apps Script Your script has recently failed to finish successfully. A summary of the failure(s) is shown below.
Die E-Mail enthält einen Link zum Deaktivieren oder Neukonfigurieren des Triggers. Wenn das Script an eine Datei in Google Tabellen, Google Docs oder Google Formulare gebunden ist, enthält die E‑Mail auch einen Link zu dieser Datei. Über diese Links können Sie den Trigger deaktivieren oder das Skript bearbeiten, um den Fehler zu beheben.
Wenn Sie Fehler in Ihrem Skript beheben möchten, klicken Sie auf den Link in der Benachrichtigungs-E‑Mail, um Ihr Skriptprojekt zu öffnen. Wenn das Projekt geöffnet ist, können Sie die Ausführungslogs aufrufen, indem Sie im linken Navigationsbereich auf Ausführungen klicken. Die Logs zeigen, welche Ausführungen fehlgeschlagen sind, und enthalten Fehlermeldungen, die Ihnen bei der Diagnose und Behebung des Problems helfen.
Bei installierbaren Triggern, die von Add-ons erstellt wurden, werden diese E‑Mail-Benachrichtigungen nicht an Nutzer gesendet.
So rufen Sie alle mit Ihrem Google-Konto verknüpften Trigger auf und deaktivieren die Trigger, die Sie nicht mehr benötigen:
- Rufen Sie
script.google.comauf. - Klicken Sie links auf Meine Trigger.
- Wenn Sie einen Trigger löschen möchten, klicken Sie rechts neben dem Trigger auf das Dreipunkt-Menü > Trigger löschen.
Wenn ein Trigger deaktiviert wird, werden auch die entsprechenden Benachrichtigungen über Fehler deaktiviert. Fehlerbenachrichtigungen sind ein fester Bestandteil eines aktiven Triggers. Wenn Sie also keine Fehlermeldungen mehr für einen bestimmten Trigger erhalten möchten, müssen Sie den Trigger deaktivieren oder löschen. Wenn ein Trigger aktiv ist, können Sie nur die Häufigkeit dieser Benachrichtigungen anpassen.
Simple triggers like `onOpen()` can't be deactivated from this
page; instead, edit the appropriate script and remove or rename
the `onOpen()` function.
Trigger in Add‑ons
Verwenden Sie in Add-ons zusätzlich zu installierbaren Triggern auch Manifest-Trigger. Weitere Informationen finden Sie unter Trigger für Google Workspace-Add-ons.