Mit Unterworkflows können Sie einen Logiksatz oder eine Reihe von Schritten definieren, die Sie mehrmals aufrufen möchten. Auf diese Weise wird die Workflow-Definition vereinfacht. Subworkflows sind einer Funktion oder einem Ablauf in einer Programmiersprache ähnlich. Sie können Parameter und Rückgabewerte akzeptieren, sodass Sie komplexere Workflows mit einer größeren Bandbreite von Anwendungen erstellen können.
Auf dieser Seite erfahren Sie, wie Sie einen Unterworkflow definieren und in einem Workflow aufrufen. Grundlegende Workflow-Aufgaben finden Sie unter Workflow erstellen und aktualisieren und Workflow ausführen.
Workflow mit einem Unterworkflow erstellen
So erstellen Sie einen Unterworkflow:
Fügen Sie oben in der Workflow-Definition einen
main
-Block hinzu:main: steps: - step_name: ... ...
Wenn ein Workflow einen untergeordneten Workflow hat, muss der Hauptworkflow in einen
main
-Block platziert werden.Definieren Sie den Unter-Workflow unter den Hauptschritten des Workflows:
main: steps: - step_name: ... ... [SUBWORKFLOW_NAME]: params: [PARAMETER_1[: DEFAULT_VALUE1], PARAMETER_2[: DEFAULT_VALUE2]...] steps: - step_name: ...
Dabei gilt:
SUBWORKFLOW_NAME
: erforderlich. Name des Unter-Workflows.PARAMETER_1
,PARAMETER_2
: Optional. Parameter, die vom Unterworkflow verwendet werdenDEFAULT_VALUE1
,DEFAULT_VALUE2
: Optional. Standardwerte für die jeweiligen Parameter.
Wenn Sie keine Parameter an den Unterworkflow übergeben müssen, löschen Sie den Block
params
.Definieren Sie im Unterworkflow die Schritte genau wie im Hauptworkflow.
Zum Aufrufen des Unterworkflows aus dem Hauptworkflow fügen Sie im Hauptworkflow in einem Schritt den Abschnitt
call
hinzu. Optional können Sie Argumente für die Übergabe an den Subworkflow bereitstellen:main: - [STEP_NAME]: call: [SUBWORKFLOW_NAME] [args: ARG_1: VALUE ARG_2: VALUE ...] [result: OUTPUT_VARIABLE] [SUBWORKFLOW_NAME]: params: [PARAMETER_1,PARAMETER_2...] steps: - step_1: ...
Dabei gilt:
SUBWORKFLOW_NAME
: erforderlich. Name des Unter-Workflows.ARG_1
,ARG_2
: Optional. Die Argumente, die an den Unterworkflow übergeben werden, wenn der Subworkflow Parameter akzeptiert.VALUE
: Optional. Die Werte, für die die Argumente festgelegt sind.OUTPUT_VARIABLE
: Optional. Die Variable, in der die vom Workflow zurückgegebenen Daten gespeichert werden, wenn der Subworkflow etwas zurückgibt.
Beispiel
In diesem Beispiel wird gezeigt, wie Sie einen Unterworkflow namens name_message
definieren und aus dem Hauptworkflow aufrufen:
main: steps: - call_subworkflow: call: name_message args: first_name: "Sherlock" last_name: "Holmes" result: output - call_subworkflow2: call: name_message args: first_name: "Ada" last_name: "Lovelace" result: output2 - return_message: return: ${output + output2} name_message: params: [first_name, last_name, country: "England"] steps: - prepareMessage: return: ${"Hello " + first_name + " " + last_name + " from " + country + "."}
Mit dieser Workflowdefinition gilt Folgendes:
- Der Hauptworkflow ruft den Unterworkflow
name_message
zweimal aus den Schrittencall_subworkflow
undcall_subworkflow2
auf. - Die beiden Schritte enthalten verschiedene Eingaben für die Argumente
first_name
undlast_name
, die dann an den Unterworkflow übergeben werden. - Der untergeordnete Workflow
name_message
übergibt die Argumente an ihn und erstellt eine einfache Nachricht, wobei der Standardwert vonEngland
für die Variablecountry
angegeben wird. - Der untergeordnete Workflow gibt die von ihm erstellte Nachricht an den Hauptworkflow zurück.
- In den Schritten im Hauptworkflow werden die Ergebnisse als
output
bzw.output2
gespeichert. - Der Hauptworkflow kombiniert
output
undoutput2
zu einer einzigen Nachricht und gibt das Ergebnis zurück:Hello Sherlock Holmes from England. Hello Ada Lovelace from England.