> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/powershell-universal/de/automatisierung/workflows.md).

# Workflows

Verketten Sie Skripte und KI-Prompts zu mehrstufigen PowerShell Universal-Workflows und nutzen Sie die Variablen Workflow und PSUItem, um Daten zwischen Aktivitäten zu übergeben.

> Diese Funktion erfordert eine [Lizenz](/powershell-universal/de/licensing.md).

PowerShell Universal-Workflows verketten Skripte und KI-Prompts zu einem einzigen Automatisierungsablauf. Verwenden Sie Workflows, um Daten zwischen Schritten zu übergeben, die Ausführung basierend auf einem Ergebnis zu steuern, unabhängige Arbeiten gleichzeitig auszuführen und den daraus resultierenden Prozess zu planen. Workflow-Ausführungen erzeugen Jobs, die Sie im Standard-Jobverlauf überwachen können.

## Einen Workflow erstellen

1. Gehen Sie zu **Build > Workflows** und wählen Sie **Create Workflow**.
2. Geben Sie einen Namen und optional eine Beschreibung ein.
3. Fügen Sie Workflow-Parameter hinzu, wenn Aufrufer Werte wie eine Umgebung, ein Genehmigungsziel oder einen Aufbewahrungszeitraum angeben müssen.
4. Speichern Sie den Workflow und öffnen Sie ihn dann, um den **Workflow Designer** zu verwenden.

Parameter haben einen Namen, einen Standardwert, eine Einstellung für „Erforderlich“ und einen Hilfetext. Sie werden abgefragt, wenn der Workflow manuell ausgeführt wird, und stehen für Workflow-Ausdrücke zur Verfügung.

## Den Workflow erstellen

Der Designer verfügt über eine Aktivitätspalette, eine Sequenz-Arbeitsfläche und einen Eigenschaftenbereich.

1. Fügen Sie eine Aktivität hinzu, indem Sie sie aus der Palette in eine Ablagezone der Arbeitsfläche ziehen, oder wählen Sie die **Plus**-Schaltfläche neben der Aktivität, um sie an die Sequenz anzuhängen.
2. Wählen Sie eine Aktivität aus, um ihre Eigenschaften im rechten Bereich zu konfigurieren.
3. Ziehen Sie Aktivitäten innerhalb der Sequenz, um sie neu anzuordnen.
4. Wählen Sie nach Änderungen **Save Workflow**.

Skriptaktivitäten stellen die PowerShell-Parameter bereit, die im Zielskript definiert sind. Geben Sie einen literalen Wert an oder wählen Sie **PowerShell** für einen Ausdruck, der zur Laufzeit ausgewertet wird. Bei KI-Prompt-Aktivitäten können Sie einen KI-Agenten auswählen und den auszuführenden Prompt angeben.

## Entscheidungsverzweigungen

Verwenden Sie eine **Decision**-Aktivität, um einen True- und einen False-Zweig zu erstellen. Dies ist nützlich für Genehmigungsabläufe, Validierungsprüfungen und den Umgang mit dem Ergebnis eines vorherigen Jobs.

1. Fügen Sie **Decision** aus der Aktivitätspalette hinzu.
2. Geben Sie eine PowerShell-Bedingung ein, die `$true` oder `$false` zurückgibt. Wenn Sie sie leer lassen, wertet die Entscheidung das erste Ausgabeelement der vorherigen Aktivität aus.
3. Verwenden Sie **Add activity** in der jeweiligen True- oder False-Spur, um die Arbeit für dieses Ergebnis zu definieren.
4. Fügen Sie alle nachfolgenden Aktivitäten nach der Decision hinzu; jeder abgeschlossene Zweig wird mit der nächsten Aktivität im Haupt-Workflow fortgesetzt.

Beispielsweise kann ein Skript zurückgeben, ob eine Bereitstellung genehmigt ist. Die Decision kann die Standardbedingung der vorherigen Ausgabe verwenden oder einen expliziten Ausdruck wie diesen:

```powershell
$Workflow.Environment -eq 'Production' -and $PreviousActivity.Status -eq 'Completed'
```

`$PreviousActivity` enthält die ID, den Typ, den Namen, die Job-ID, den Status, die Start- und Endzeiten sowie die Pipeline-Ausgabe der vorherigen Aktivität. Verwenden Sie es, wenn die Verzweigungsbedingung neben der Ausgabe auch Job-Metadaten benötigt.

## Aktivitäten parallel ausführen

Verwenden Sie eine **Parallel**-Aktivität, wenn unabhängige Skript- oder KI-Prompt-Aktivitäten gleichzeitig ausgeführt werden können.

1. Fügen Sie **Parallel** aus der Aktivitätspalette hinzu.
2. Wählen Sie **Add activity** in der Parallel-Aktivität und fügen Sie jede untergeordnete Aktivität hinzu, die unabhängig ausgeführt werden kann.
3. Konfigurieren Sie jede untergeordnete Aktivität wie gewohnt.
4. Setzen Sie den Haupt-Workflow fort, nachdem die Parallel-Aktivität abgeschlossen ist.

PowerShell Universal startet die infrage kommenden untergeordneten Jobs gleichzeitig und wartet, bis alle abgeschlossen sind. Wenn ein KI-Prompt fehlschlägt oder ein untergeordnetes Skript so konfiguriert ist, dass es bei einem Skriptfehler fehlschlägt, und in einem fehlgeschlagenen, fehlerhaften oder abgelaufenen Zustand endet, schlägt die Parallel-Aktivität fehl.

## Daten zwischen Aktivitäten übergeben

Workflow-Ausdrücke werden zur Laufzeit ausgewertet und können diese Variablen verwenden:

| Variable            | Verwendung                                                                                                                                        |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `$Workflow`         | Workflow-Parameterwerte, die beim Start der Ausführung angegeben wurden.                                                                          |
| `$PSUItem`          | Die rohe Pipeline-Ausgabe der vorherigen Aktivität. Ein Zielskript erhält sie nur dann automatisch, wenn es einen `PSUItem`-Parameter deklariert. |
| `$Output`           | Benannte Werte, die von einem vorherigen Skript erzeugt wurden, das eine Hashtable zurückgegeben hat.                                             |
| `$PreviousActivity` | Metadaten und Ausgabe der unmittelbar vorangehenden Aktivität.                                                                                    |

Übergeben Sie beispielsweise einen Workflow-Parameter an eine Eigenschaft einer Skriptaktivität:

```powershell
$Workflow.Environment
```

Um die Ausgabe zu dekonstruieren, lassen Sie ein Skript genau eine Hashtable zurückgeben:

```powershell
@{
    Server = 'web01'
    Port = 443
}
```

Mit aktiviertem **Deconstruct Hashtable Output** (Standard) können nachgelagerte PowerShell-Ausdrücke die benannten Werte verwenden:

```powershell
$Output.Server
```

Wenn das Skript mehrere Objekte zurückgibt oder das einzelne Objekt keine Hashtable ist, verwenden Sie stattdessen `$PSUItem`, um mit der Ausgabe der vorherigen Aktivität zu arbeiten.

## Workflows ausführen und planen

Wählen Sie das **Play**-Symbol in **Build > Workflows**, um einen Workflow bei Bedarf auszuführen. PowerShell Universal fragt alle konfigurierten Parameter ab und öffnet dann den resultierenden Workflow-Job.

Erstellen Sie einen Workflow-Zeitplan über die Registerkarte **Schedules** des Workflows oder über **Run > Schedules**. Workflows unterstützen einfache, Cron-, kontinuierliche und einmalige Zeitpläne. Legen Sie dieselben Ausführungsoptionen fest, die für geplante Automatisierung verfügbar sind, einschließlich Ausführungsumgebung, Anmeldeinformationen und Computereinstellungen.

Verwenden Sie `Invoke-PSUWorkflow`, um einen Workflow aus PowerShell oder einer anderen PowerShell Universal-Automatisierung zu starten. Sie können beim Aufruf Parameterwerte angeben.

## Workflows als Konfiguration verwalten

Wenn Workflows in einem Konfigurationsrepository gepflegt werden, verwenden Sie die Aktion **Refresh Configuration > Workflows** im Konfigurationsdatei-Explorer, um aktualisierte Workflow-Definitionen zu synchronisieren, ohne PowerShell Universal neu zu starten.

Das Universal-Modul stellt außerdem `Get-PSUWorkflow`, `New-PSUWorkflow`, `Set-PSUWorkflow`, `Remove-PSUWorkflow`, `New-PSUWorkflowParameter`, `New-PSUWorkflowActivity` und `Invoke-PSUWorkflow` für Konfigurations- und Automatisierungsszenarien bereit.

## Ausführungen überwachen und Fehler beheben

Öffnen Sie den Workflow-Job über **Build > Workflows**, um dessen Status, Streams, Pipeline-Ausgabe und Fehler zu überprüfen. Untergeordnete Skript- und KI-Jobs sind der Workflow-Ausführung zugeordnet, was es einfacher macht, die fehlgeschlagene Aktivität zu identifizieren.

Überprüfen Sie bei der Fehlerbehebung, ob die Namen der Skriptparameter mit den Metadaten des Zielskripts übereinstimmen, verwenden Sie für Werte, die zur Laufzeit ausgewertet werden müssen, einen Ausdruck anstelle eines literalen Werts, und denken Sie daran, dass die erste Aktivität keine vorherige Ausgabe hat.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.devolutions.net/powershell-universal/de/automatisierung/workflows.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
