Um mit dem Beispiel-Workflow fortzufahren, muss dieser konfiguriert werden.
Die Blockkonfiguration lässt sich öffnen, indem auf der Registerkarte auf Edit parameters geklickt oder per Rechtsklick auf den Block Edit parameters ausgewählt wird. Daraufhin öffnet sich das Fenster . Sobald ein Block Parameter hat, wechselt die Schaltfläche zu .
Zum Konfigurieren der Blöcke für das Beispiel die folgenden Schritte ausführen:
-
Das Fenster für die Aktion
öffnen.List locales
-
Die Felder und erfordern dynamische Werte, die zur Laufzeit aufgelöst werden.
-
Für das Feld auf das Link-Symbol
klicken und die Aktion
auswählen.Fetch access tokens
Der Link wird grün und das Feld kann bearbeitet werden.
-
Die Syntax für den Zugriff auf die Eigenschaften eines referenzierten Triggers oder einer Aktion lautet:
{{$.path.to.value}}Die Ausgabe für
lautet:Fetch access tokens
{ "tokens": {"strings_token": "STRINGS_TOKEN", "tms_token": "TMS_TOKEN"} }Damit lautet der für das Feld erforderliche Ausdruck
{{$.tokens.strings_token}}. -
Für das Feld auf das Link-Symbol
klicken und den Trigger
auswählen.uploads:create
Der Link wird grün und das Feld kann bearbeitet werden.
-
Die Ausgabe des Triggers
sieht wie folgt aus:uploads:create
{ "branch": { "name": "my_branch" }, "event": "uploads:create", "message": "user-1 initialized file upload file.yml in project name_1672734591_11 within branch my_branch\n", "project": { "created_at": "2023-01-03 08:29:51 UTC", "id": "abcdabcdabcdabcd-11", "main_format": "yml", "name": "name_1672734591_10", "point_of_contact": null, "project_image_url": null, "slug": "name_1672734591_10", "updated_at": "2023-01-03 08:29:51 UTC" }, "upload": { "created_at": "2023-01-03 08:29:48 UTC", "filename": "file.yml", "format": "yml", "id": "upload-1", "state": "initialized", "summary": {}, "tag": null, "updated_at": "2023-01-03 08:29:48 UTC" }, "user": { "gravatar_uid": "29a2d1baa67d4ea524cf0f247f7bbb94", "id": "9c365b9a6f77c247c3de959f6152b231", "name": "Joe Sixpack", "username": "user-1" } }Damit lautet der für das Feld erforderliche Ausdruck
{{$.project.id}}. -
Klicke auf Importieren.
Das Fenster schließt sich und die Parameter für die Aktion werden gespeichert.
-
-
Um einen Job zu erstellen, muss die ID des Standard-Gebietsschemas des Projekts an die Aktion
übergeben werden. Die AktionCreate Job
nimmt eine JSON-Eingabe entgegen, wendet den angegebenen Filter an und gibt dann wieder JSON aus.Transform JSON with jq
-
Auf der Registerkarte im Fenster nach phrase-jq suchen.
Den Aktionsblock
per Drag-and-drop unter der AktionTransform JSON with jq
platzieren, um die beiden zu verbinden.list locales
-
Das Fenster für die Aktion
Transform JSON with jqöffnen. -
Im Dropdown-Feld die Option auswählen.
-
Für das Feld auf das Link-Symbol
klicken und die Aktion
auswählen.list locales
Der Link wird grün und das Feld kann bearbeitet werden.
-
Das Feld nimmt die JSON-Eingabe entgegen. Ein spezieller fester Ausdruck (
@anstelle von$) stellt sicher, dass die gesamte Ausgabe der referenzierten Aktion an das Feld übergeben wird.Den Ausdruck
{{@.outputs.result}}in das Feld eingeben. -
Für das Feld auf das Link-Symbol
klicken und die Aktion
auswählen.list locales
Der Link wird grün und das Feld kann bearbeitet werden.
-
Ein Filter für die Liste der Gebietsschemata, der eine neue Liste zurückgibt, die alle Elemente enthält, bei denen die Eigenschaft
defaulttrueist, ist erforderlich.Es kann nur ein Standard-Gebietsschema pro Projekt geben und die Liste enthält ein identifizierbares und erforderliches Element. Auf dieses Element wird direkt mit der Array-Syntax
.[0]zugegriffen.Den Ausdruck
map(select(.default))|.[0]in das Feld eingeben. -
Klicke auf Importieren.
Das Fenster schließt sich und die Parameter für die Aktion werden gespeichert.
-
-
Die Aktion
kann nun konfiguriert werden und wird Muster aus vorherigen Blöcken verwenden.Create a job
-
Für das Feld auf das Link-Symbol
klicken und die Aktion
auswählen.Fetch access tokens
Der Link wird grün und das Feld kann bearbeitet werden.
Den Ausdruck
{{$.tokens.strings_token}}eingeben. -
Für das Feld auf das Link-Symbol
klicken und den Trigger
auswählen.uploads:create
Der Link wird grün und das Feld kann bearbeitet werden.
Den Ausdruck
{{$.project.id}}eingeben. -
Für das Feld auf das Link-Symbol
klicken und die Aktion
Transform JSON with jqauswählen.Der Link wird grün und das Feld kann bearbeitet werden.
Den Ausdruck
{{@.outputs.result}}eingeben. -
Das Fälligkeitsdatum kann mit sprig- oder Expr-Funktionen berechnet werden. Für dieses Beispiel wird jedoch ein fest vorgegebenes Datum verwendet, das die API akzeptiert.
Im Feld 2023-12-31T12:00:00Z eingeben.
-
Klicke auf Importieren.
Die Konfiguration wird gespeichert und Details können auf der Registerkarte eingesehen werden.
-
-
Jede Aktion kann eine oder mehrere Bedingungen haben, die mit logischem
UNDundODERkombiniert werden. Diese Bedingungen werden zur Laufzeit ausgewertet. Die Aktion und ihre untergeordneten Elemente werden nur ausgeführt, wenn das Ergebnis der Bedingungsprüfung wahr ist.Um dies im Beispiel abzubilden, bei ausgewählter Aktion
auf der Registerkarte auf Bedingungen bearbeiten klicken. Alternativ mit der rechten Maustaste auf den Block klicken und Bedingungen bearbeiten auswählen.Job erstellen
Das Fenster öffnet sich.
-
Wie bei den vorherigen Blöcken das Feld mit dem Trigger
verknüpfen und den Ausdruckuploads:create
{{$.upload.tag}}eingeben. -
Zum Umkehren der Aussage in der ersten Dropdown-Liste NICHT auswählen.
-
In der Dropdown-Liste IsNull auswählen.
-
Klicke auf Importieren.
Die Bedingung wird auf der Registerkarte angezeigt.
Der Workflow stoppt an diesem Punkt, wenn der Upload kein Tag enthält (was bedeutet, dass keine neuen/aktualisierten Schlüssel/Übersetzungen vorhanden waren).
-
-
Für den Job sind nun Zielgebietsschemas erforderlich. Für dieses Beispiel werden zwei Gebietsschemas erstellt: eines für Spanisch (es-ES) und eines für Deutsch (de-DE). Gebietsschemas werden den beiden Aktionen
im Fenster wie in Schritt 3 hinzugefügt.Transform JSON with jq
-
Im Feld beider Aktionen den Ausdruck
{{@.outputs.result}}eingeben, das Feld mit der Aktionverknüpfen und den Parameter speichern.Gebietsschemas auflisten
-
Im Feld einer Aktion den Ausdruck
map(select(.name == "es-ES"))|.[0]eingeben und das Feld mit der Aktionverknüpfen.Gebietsschemas auflisten
Den Parameter speichern.
-
In der zweiten Aktion den Ausdruck
map(select(.name == "de-DE"))|.[0]eingeben und das Feld mit der Aktionverknüpfen.Gebietsschemas auflisten
Den Parameter speichern.
-
-
Die Gebietsschemas werden nun bei der Erstellung des Jobs verwendet.
Die beiden Aktionen
nach den zuvor definierten Mustern konfigurieren.Zielgebietsschema zu einem Job hinzufügen
-
Der Job kann nun gestartet werden.
Die Aktion
nach den zuvor definierten Mustern konfigurieren.Job starten
Nachdem die Blöcke konfiguriert sind, kann der Workflow bei Bedarf zum Testen ausgeführt werden, ohne auf einen Auslöser wie einen Zeitplan oder einen Webhook warten zu müssen.
Einen Durchlauf auf eine der folgenden Arten starten:
-
Im Workflow-Editor über die Schaltfläche Run das Dialogfeld öffnen.
-
Über die öffentliche API eine
POST-Anfrage an/orchestrator/api/v1/workflows/{workflow_id}/executionssenden.
Ein Durchlauf verwendet immer die neueste Revision des Workflows. Die Revision muss nicht veröffentlicht sein, muss aber die Validierung für die Veröffentlichung bestehen. Jeder Durchlauf erstellt eine neue Ausführung, die auf der Seite mit dem Tag Manual aufgelistet wird.
Hinweis
Durchläufe bei Bedarf sind nur für Workflows auf der Next-Gen-Workflow-Engine verfügbar. Bei Legacy-Workflows wird die Schaltfläche Run im Editor nicht angezeigt und die API gibt einen 422-Fehler zurück.
Aktionsbündel und Vorlagen können nicht ausgeführt werden, und der Workflow muss einen Besitzer haben.