Google Tabellen ist eine cloudbasierte Tabellenlösung, die die Echtzeit-Zusammenarbeit unterstützt und Tools zum Visualisieren, Verarbeiten und Kommunizieren von Daten bietet.
In dieser Anleitung wird gezeigt, wie Sie einen Workflow erstellen und bereitstellen, der einen Callback-Endpunkt (oder Webhook) erstellt, die Callback-URL in Google Tabellen speichert, die Ausführung pausiert und dann auf eine manuelle Genehmigung über die Tabellen-Tabelle wartet, um den Workflow neu zu starten. Weitere Informationen zur Verwendung von Callbacks
Lernziele
In dieser Anleitung wird Folgendes beschrieben:
- Erstellen Sie einen neuen Ordner in Google Drive. In diesem Ordner wird Ihre Tabelle gespeichert und der Workflow kann Daten in die Tabelle schreiben.
- Erstellen Sie eine Google Tabellen-Tabelle, um eine Genehmigung zu erfassen und einen Rückruf an einen Workflow zu initiieren.
- Mit Google Apps Script, einer cloudbasierten JavaScript-Plattform, mit der Sie Google Workspace-Produkte programmatisch erstellen, lesen und bearbeiten können, können Sie die Wiederaufnahme eines pausierten Workflows auslösen, sobald eine Anfrage durch eine Aktualisierung der Tabelle genehmigt wird.
- Erstellen und implementieren Sie einen Workflow, der den Google Sheets API-Connector aufruft, um Daten an die Tabelle anzuhängen. Der Workflow wird ausgeführt, angehalten und dann fortgesetzt, wenn ein Callback über die Tabelle genehmigt wird. Weitere Informationen zu Workflow-Connectors
- Testen Sie den gesamten Prozess und prüfen Sie, ob der Workflow wie erwartet abläuft.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
In der Anleitung wird auch Google Workspace verwendet. Dienste für Unternehmen, die in den kostenlosen Google-Apps nicht enthalten sind, sind abrechenbar.
Hinweise
Einige der folgenden Befehle können Sie in der Google Cloud Console oder über die Google Cloud CLI in Ihrem Terminal oder in Cloud Shell ausführen.
Von Ihrer Organisation definierte Sicherheitsbeschränkungen verhindern möglicherweise, dass die folgenden Schritte ausgeführt werden. Informationen zur Fehlerbehebung finden Sie unter Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln.
Console
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
Aktivieren Sie die Compute Engine API, die Sheets API und die Workflows API.
Notieren Sie sich das Compute Engine-Standarddienstkonto, da Sie es zu Testzwecken mit dem Workflow in dieser Anleitung verknüpfen. Bei neuen Projekten, für die die Compute Engine API aktiviert ist, wird dieses Dienstkonto mit der IAM-Rolle „Bearbeiter“ und im folgenden E-Mail-Format erstellt:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Sie finden Ihre Projektnummer auf der Willkommensseite der Google Cloud Console.
Für Produktionsumgebungen empfehlen wir dringend, ein neues Dienstkonto zu erstellen und ihm eine oder mehrere IAM-Rollen zuzuweisen, die die erforderlichen Mindestberechtigungen enthalten und dem Grundsatz der geringsten Berechtigung folgen.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
Aktivieren Sie die Compute Engine API, die Sheets API und die Workflows API.
gcloud services enable \ compute.googleapis.com \ sheets.googleapis.com \ workflows.googleapis.com
Notieren Sie sich das Compute Engine-Standarddienstkonto, da Sie es zu Testzwecken mit dem Workflow in dieser Anleitung verknüpfen. Bei neuen Projekten, für die die Compute Engine API aktiviert ist, wird dieses Dienstkonto mit der IAM-Rolle „Bearbeiter“ und im folgenden E-Mail-Format erstellt:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
So rufen Sie Ihre Projektnummer ab:
gcloud projects describe PROJECT_ID
Für Produktionsumgebungen empfehlen wir dringend, ein neues Dienstkonto zu erstellen und ihm eine oder mehrere IAM-Rollen zuzuweisen, die die erforderlichen Mindestberechtigungen enthalten und dem Grundsatz der geringsten Berechtigung folgen.
Neuen Ordner in Google Drive erstellen
Erstellen Sie einen neuen Ordner in Google Drive. In diesem Ordner wird Ihre Tabelle gespeichert. Wenn Sie eine Berechtigung für den freigegebenen Ordner einrichten, darf Ihr Workflow in die Tabelle schreiben.
- Rufen Sie drive.google.com auf.
- Klicken Sie auf Neu > Neuer Ordner.
- Geben Sie einen Namen für den Ordner ein.
- Klicken Sie auf Erstellen.
- Klicken Sie mit der rechten Maustaste auf den neuen Ordner und wählen Sie Freigeben aus.
Fügen Sie die E-Mail-Adresse des standardmäßigen Compute Engine-Dienstkontos hinzu.
Dadurch erhält das Dienstkonto Zugriff auf den Ordner. Wenn Sie das Dienstkonto mit Ihrem Workflow verknüpfen, hat der Workflow Bearbeitungszugriff auf alle Dateien im Ordner. Weitere Informationen zum Freigeben von Dateien, Ordnern und Laufwerken
Wählen Sie die Rolle Bearbeiter aus.
Entfernen Sie das Häkchen aus dem Kästchen Personen benachrichtigen.
Klicken Sie auf Freigeben.
Tabelle mit Google Tabellen erstellen
Wenn Sie eine Tabelle über Google Tabellen erstellen, wird sie in Google Drive gespeichert. Standardmäßig wird die Tabelle im Stammordner auf Google Drive gespeichert. Mit der Google Sheets API können Sie keine Tabelle direkt in einem bestimmten Ordner erstellen. Es gibt jedoch Alternativen, z. B. die Möglichkeit, die Tabelle nach dem Erstellen in einen bestimmten Ordner zu verschieben, wie in diesem Beispiel gezeigt. Weitere Informationen finden Sie unter Mit Google Drive-Ordnern arbeiten.
Rufen Sie sheets.google.com auf.
Klicken Sie auf Neu .
Dadurch wird eine neue Tabelle erstellt und geöffnet. Jede Tabelle hat einen eindeutigen
spreadsheetId
-Wert, der Buchstaben, Ziffern, Bindestriche oder Unterstriche enthalten kann. Sie finden die Tabellen-ID in einer Google Sheets-URL:https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0
Notieren Sie sich diese ID, da Sie sie beim Erstellen des Workflows benötigen.
Fügen Sie Spaltenüberschriften hinzu, die dem folgenden Beispiel entsprechen:
Der Wert in Spalte G, Genehmigt?, wird verwendet, um Rückrufe im Workflow zu initiieren.
Verschieben Sie die Tabelle in den zuvor erstellten Google Drive-Ordner:
- Wählen Sie in der Tabelle Datei > Verschieben aus.
- Rufen Sie den von Ihnen erstellten Ordner auf.
- Klicken Sie auf Verschieben.
Sie können auch den Google Tabellen API-Connector verwenden, um eine Tabelle zu erstellen. Hinweis: Bei Verwendung des Connectors kann spreadsheetId
aus dem resp
-Ergebnis abgerufen werden.
Beispiel:
- create_spreadsheet: call: googleapis.sheets.v4.spreadsheets.create args: body: connector_params: scopes: ${driveScope} result: resp - assign_sheet_id: assign: - sheetId: ${resp.spreadsheetId}
Google Tabellen mit Apps Script erweitern
Mit Apps Script können Sie Google-Tabellen programmatisch erstellen, lesen und bearbeiten. Die meisten Scripts für Google Tabellen bearbeiten Arrays, um mit den Zellen, Zeilen und Spalten in einer Tabelle zu interagieren. Eine Einführung in die Verwendung von Apps Script in Google Tabellen finden Sie in der Kurzanleitung für benutzerdefinierte Funktionen.
So erstellen Sie ein Apps Script-Projekt in Google Tabellen:
- Öffnen Sie die Google Tabellen-Tabelle.
- Wählen Sie Erweiterungen > Apps Script aus.
- Klicken Sie im Script-Editor auf Unbenanntes Projekt.
- Geben Sie Ihrem Projekt einen Namen und klicken Sie auf Umbenennen.
Ihr Script ist jetzt an die Tabelle gebunden. Dadurch kann das Script die Benutzeroberfläche ändern oder reagieren, wenn die Tabelle geöffnet wird.
Ein Script-Projekt stellt eine Sammlung von Apps Script-Dateien und ‑Ressourcen dar. Codedateien in einem Scriptprojekt haben die Erweiterung
.gs
.Mit Apps Script können Sie benutzerdefinierte Funktionen schreiben, die Sie in Google Tabellen wie eine integrierte Funktion verwenden können. Benutzerdefinierte Funktionen werden mit Standard-JavaScript erstellt. So erstellen Sie eine Funktion:
- Öffnen Sie Ihr Apps Script-Projekt.
- Klicken Sie auf Editor .
- Eine Scriptdatei wird als Projektdatei mit dem Namen
Code.gs
angezeigt. Wählen Sie die Datei aus, um sie zu bearbeiten. Ersetzen Sie den gesamten Code im Script-Editor durch den folgenden Code, der die Daten in Ihrer Tabelle liest und als Eingabe an die Workflowausführung weitergibt:
Klicken Sie auf „Speichern“
.
Mit installierbaren Triggern in Apps Script kann ein Scriptprojekt eine bestimmte Funktion ausführen, wenn bestimmte Bedingungen erfüllt sind, z. B. wenn eine Tabelle geöffnet oder bearbeitet wird. So erstellen Sie einen Trigger:
- Öffnen Sie Ihr Apps Script-Projekt.
- Klicken Sie auf Trigger .
- Klicken Sie auf Trigger hinzufügen.
- Konfigurieren Sie im Dialogfeld Trigger für DEIN_PROJEKTNAMEN hinzufügen den Trigger:
- Wählen Sie in der Liste Auszuführende Funktion auswählen die Option handleEdit aus.
- Wählen Sie in der Liste Auszuführende Bereitstellung auswählen die Option Head aus.
- Wählen Sie in der Liste Ereignisquelle auswählen die Option Aus Tabelle aus.
- Wählen Sie in der Liste Ereignistyp auswählen die Option Beim Bearbeiten aus.
- Wählen Sie in der Liste Einstellungen für Fehlerbenachrichtigungen die Option Täglich benachrichtigen aus.
- Klicken Sie auf Speichern.
Wenn Sie aufgefordert werden, ein Google-Konto auszuwählen, wählen Sie das entsprechende Konto aus und klicken Sie dann auf Zulassen.
So kann Ihr Apps Script-Projekt Ihre Google-Tabellen aufrufen, bearbeiten, erstellen und löschen sowie eine Verbindung zu einem externen Dienst herstellen.
Die Manifestdatei eines Apps Script-Projekts ist eine JSON-Datei, die grundlegende Projektinformationen enthält, die Apps Script zum Ausführen eines Scripts benötigt. Im Apps Script-Editor werden Manifestdateien standardmäßig ausgeblendet, um die Einstellungen Ihres Apps Script-Projekts zu schützen. Bearbeiten Sie die Manifestdatei:
- Öffnen Sie Ihr Apps Script-Projekt.
- Klicken Sie auf Projekteinstellungen .
- Klicken Sie das Kästchen Manifestdatei „appsscript.json“ im Editor anzeigen an.
- Klicken Sie auf Editor .
- Die Manifestdatei wird als Projektdatei mit dem Namen
appsscript.json
angezeigt. Wählen Sie die Datei aus, um sie zu bearbeiten. Im Feld
oauthScopes
wird ein Array von Strings angegeben. Wenn Sie die Autorisierungsbereiche festlegen möchten, die in Ihrem Projekt verwendet werden, fügen Sie ein Array mit den Bereichen hinzu, die unterstützt werden sollen. Beispiel:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
Dadurch werden die expliziten Bereiche auf Folgendes festgelegt:
- Verbindung mit externem Dienst herstellen
- Google Cloud-Daten abrufen, bearbeiten, konfigurieren und löschen sowie die E-Mail-Adresse Ihres Google-Kontos sehen
- Alle Ihre Google Sheets-Tabellen aufrufen, bearbeiten, erstellen oder löschen
Klicken Sie auf „Speichern“
.
Workflow bereitstellen, der in eine Tabelle schreibt und Callbacks verwendet
Binden Sie einen Workflow ein, der ausgeführt, angehalten und dann fortgesetzt wird, wenn ein Rückruf über eine Tabelle genehmigt wird. Der Workflow schreibt mithilfe des Google Sheets API-Connectors in eine Google Tabellen-Tabelle.
Console
Öffnen Sie in der Google Cloud Console die Seite Workflows.
Klicken Sie auf
Erstellen.Geben Sie einen Namen für den neuen Workflow ein:
workflows-awaits-callback-sheets
.Wählen Sie in der Liste Region die Option us-central1 (Iowa) aus.
Wählen Sie als Dienstkonto das Compute Engine-Standarddienstkonto (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
) aus.Klicken Sie auf Weiter.
Geben Sie im Workflow-Editor die Definition für Ihren Workflow ein:
Ersetzen Sie den Platzhalter
sheetId
durch IhrenspreadsheetId
.Klicken Sie auf Bereitstellen.
gcloud
Erstellen Sie eine Quellcodedatei für Ihren Workflow:
touch workflows-awaits-callback-sheets.yaml
Kopieren Sie den folgenden Workflow in einen Texteditor und fügen Sie ihn in Ihre Quellcodedatei ein:
Ersetzen Sie den Platzhalter
sheetId
durch IhrenspreadsheetId
.Stellen Sie den Workflow bereit. Geben Sie hierzu den folgenden Befehl ein:
gcloud workflows deploy workflows-awaits-callback-sheets \ --source=workflows-awaits-callback-sheets.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Ersetzen Sie
PROJECT_NUMBER
durch Ihre Google Cloud-Projektnummer. So rufen Sie Ihre Projektnummer ab:gcloud projects describe PROJECT_ID
End-to-End-Vorgang testen
Führen Sie den Workflow aus, um den End-to-End-Flow zu testen. Bei der Ausführung eines Workflows wird die aktuelle Workflowdefinition ausgeführt, die dem Workflow zugeordnet ist.
Console
Öffnen Sie in der Google Cloud Console die Seite Workflows.
Wählen Sie auf der Seite Workflows den Workflow workflows-awaits-callback-sheets aus, um die Detailseite aufzurufen.
Klicken Sie auf der Seite Workflow-Details auf play_arrow Ausführen.
Klicken Sie noch einmal auf Ausführen.
Der Workflow wird gestartet und sein Ausführungsstatus sollte Running (Wird ausgeführt) lauten. Die Protokolle zeigen auch an, dass der Workflow pausiert und wartet:
Execute steps here before waiting for callback from sheets ... Started waiting for callback from sheet 1JlNFFnqs760M_KDqeeeDc_qtrABZDxoalyCmRE39dpM
Prüfen Sie, ob der Workflow die Rückrufdetails in eine Zeile Ihrer Tabelle geschrieben hat.
Beispielsweise sollte die ID der Workflowausführung in der Spalte Ausführungs-ID, ein Rückrufendpunkt in der Spalte Callback-URL und FALSE in der Spalte Genehmigt? angezeigt werden.
Ändern Sie in der Tabelle FALSE in TRUE.
Nach ein bis zwei Minuten sollte die Ausführung fortgesetzt und dann mit dem Ausführungsstatus Erfolgreich abgeschlossen werden.
gcloud
Öffnen Sie ein Terminalfenster.
Führen Sie den Workflow aus:
gcloud workflows run workflows-awaits-callback-sheets
Der Workflow wird gestartet und die Ausgabe sollte anzeigen, dass der Workflow pausiert und wartet:
Waiting for execution [a8361789-90e0-467f-8bd7-ea1c81977820] to complete...working.
Prüfen Sie, ob der Workflow die Rückrufdetails in eine Zeile Ihrer Tabelle geschrieben hat.
Beispielsweise sollte die ID der Workflowausführung in der Spalte Ausführungs-ID, ein Rückrufendpunkt in der Spalte Callback-URL und FALSE in der Spalte Genehmigt? angezeigt werden.
Ändern Sie in der Tabelle FALSE in TRUE.
Nach ein bis zwei Minuten sollte die Ausführung fortgesetzt und dann mit dem Ausführungsstatus
SUCCEEDED
abgeschlossen werden.
Bereinigen
Wenn Sie ein neues Projekt für diese Anleitung erstellt haben, löschen Sie das Projekt. Wenn Sie ein vorhandenes Projekt verwendet haben und es beibehalten möchten, ohne die Änderungen in dieser Anleitung hinzuzufügen, löschen Sie die für die Anleitung erstellten Ressourcen.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
So löschen Sie das Projekt:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.