> 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/fr/automation/workflows.md).

# Flux de travail

Les flux de travail PowerShell Universal vous permettent d'enchaîner des scripts et des invites d'IA en un seul processus d'automatisation. Ils sont utiles lorsque vous devez transmettre la sortie d'une étape à la suivante, créer des branchements selon les résultats précédents, ou ajouter un traitement assisté par IA entre des étapes d'automatisation.

Les flux de travail peuvent être créés dans la console d'administration et gérés depuis PowerShell. Lors de l'exécution d'un flux de travail, une tâche de flux de travail est créée et peut être surveillée depuis le même historique de tâches utilisé pour les scripts.

## Création d'un flux de travail

Pour créer un flux de travail dans la console d'administration, accédez à Automation / Workflows et cliquez sur Create Workflow.

Les flux de travail nécessitent un nom et peuvent optionnellement définir des paramètres. Ces paramètres s'affichent lorsque le flux de travail est démarré manuellement et sont disponibles pour les expressions et les activités pendant l'exécution.

## Utilisation du concepteur de flux de travail

Le concepteur de flux de travail fournit un éditeur visuel pour organiser et configurer votre flux de travail. Lorsque vous ouvrez un flux de travail, PSU affiche le concepteur pour cette définition de flux de travail.

### Ajout d'activités

PowerShell Universal prend en charge les activités de type script et invite d'IA dans les flux de travail. En coulisses, les flux de travail utilisent également des activités conteneurs, telles que les nœuds organigramme et séquence, pour définir la disposition générale.

Pour ajouter une activité, faites-la glisser depuis le volet d'activités à gauche du concepteur vers une zone de dépôt sur le canevas.

### Définition des propriétés d'une activité

Sélectionnez une activité pour modifier ses propriétés dans le volet de droite. Les propriétés disponibles dépendent du type d'activité.

Pour les activités de script, PSU expose les paramètres PowerShell du script en tant que propriétés de l'activité. Cela permet de lier des valeurs fixes ou des expressions d'exécution sans avoir à réécrire le script pour l'utilisation dans un flux de travail.

### Utilisation des expressions PowerShell

Certaines propriétés d'activité prennent en charge des expressions PowerShell. Ces expressions sont évaluées au moment de l'exécution et peuvent référencer les valeurs d'entrée du flux de travail et la sortie de l'activité précédente.

Utilisez des expressions lorsque la valeur d'une propriété doit être calculée au moment de l'exécution plutôt que stockée comme une valeur fixe. Par exemple, vous pouvez activer ou désactiver un comportement en fonction d'un paramètre de flux de travail ou sélectionner des valeurs depuis la sortie de l'étape précédente.

## Données du flux de travail

Les expressions et les activités peuvent accéder à l'état du flux de travail via des variables intégrées.

### Objet Workflow

Utilisez la variable `$Workflow` dans les expressions PowerShell pour accéder aux valeurs des paramètres du flux de travail.

Par exemple, vous pouvez définir une propriété booléenne en fonction de l'environnement sélectionné.

{% code overflow="wrap" %}

```powershell
$Workflow.Environment -eq "Production"
```

{% endcode %}

Vous pouvez également transmettre directement un paramètre de flux de travail de type chaîne dans une propriété d'activité.

{% code overflow="wrap" %}

```powershell
$Workflow.Environment
```

{% endcode %}

Les paramètres de flux de travail sont définis sur le flux de travail lui-même. Utilisez-les pour les valeurs qui doivent être fournies au démarrage du flux de travail, comme un nom d'environnement, une période de rétention ou une cible d'approbation.

### PSUItem

La variable `$PSUItem` donne accès à la sortie de l'activité précédente. Le type de l'objet dépend de ce que cette activité a retourné.

Par exemple, un script peut accepter `$PSUItem` en entrée.

{% code overflow="wrap" %}

```powershell
param($PSUItem)

$PSUItem.MyValue
```

{% endcode %}

Vous pouvez également référencer `PSUItem` dans des invites d'IA.

{% code overflow="wrap" %}

```
PSUItem contains a list of processes. Return the process using the most memory as JSON.
```

{% endcode %}

Vous pouvez également utiliser `$PSUItem` ou `$Output` dans des expressions PowerShell pour modifier le comportement d'une activité en fonction de la sortie de l'activité précédente.

{% code overflow="wrap" %}

```powershell
$PSUItem.ProcessMemory -gt 100
```

{% endcode %}

Utilisez `$PSUItem` lorsque vous souhaitez transmettre une sortie structurée d'une activité à la suivante. C'est la principale façon de créer des flux de travail à plusieurs étapes sans stocker un état intermédiaire ailleurs.

## Exemple de modèle de flux de travail

Un modèle courant est le suivant :

1. Exécuter un script pour collecter des données.
2. Transmettre la sortie à une invite d'IA ou à un autre script.
3. Utiliser le résultat dans un script final pour effectuer une action.

Par exemple :

* Une activité de script retourne une liste de processus.
* Une invite d'IA identifie le processus utilisant le plus de mémoire.
* Un script final reçoit ce résultat via `$PSUItem` et envoie une notification.

Cette approche permet de maintenir chaque étape concentrée sur sa tâche et facilite les tests et le dépannage du flux de travail.

## Exécution des flux de travail

### À la demande

Les flux de travail peuvent être exécutés à la demande en cliquant sur l'icône Lecture dans la console d'administration. Si le flux de travail définit des paramètres, PSU les demande dans la boîte de dialogue d'exécution. Une fois le flux de travail démarré, PSU vous redirige vers la page de tâche du flux de travail.

### Planification

Les flux de travail prennent en charge les mêmes options de planification que les scripts, notamment les planifications CRON, ponctuelles et continues. Vous pouvez créer des planifications de flux de travail depuis Automation / Schedules ou en assignant une planification directement au flux de travail.

Utilisez des planifications lorsque le flux de travail doit s'exécuter sans intervention manuelle, par exemple pour un nettoyage nocturne, une validation d'environnement ou une classification périodique assistée par IA.

### Invoke-PSUWorkflow

`Invoke-PSUWorkflow` vous permet d'exécuter des flux de travail depuis PowerShell ou depuis d'autres parties de la plateforme PowerShell Universal. Comme `Invoke-PSUScript`, vous pouvez fournir des valeurs de paramètres lors de l'invocation du flux de travail.

## Gestion des flux de travail avec PowerShell

Vous pouvez gérer les flux de travail via le module Universal en plus de la console d'administration.

Les cmdlets principaux pour les flux de travail sont :

* `Get-PSUWorkflow`
* `New-PSUWorkflow`
* `Set-PSUWorkflow`
* `Remove-PSUWorkflow`
* `New-PSUWorkflowParameter`
* `New-PSUWorkflowActivity`
* `Invoke-PSUWorkflow`

### Définition des paramètres de flux de travail

Utilisez `New-PSUWorkflowParameter` pour définir les métadonnées d'entrée du flux de travail, telles qu'une valeur par défaut, si le paramètre est obligatoire et le texte d'aide affiché aux utilisateurs.

```powershell
$Parameters = @(
	New-PSUWorkflowParameter -Name Environment -DefaultValue Development -Required -HelpText 'Target environment'
)
```

### Définition des activités dans PowerShell

Utilisez `New-PSUWorkflowActivity` pour créer des définitions d'activités de flux de travail.

* Utilisez `-Parameters` pour les valeurs littérales.
* Utilisez `-Expressions` pour les expressions PowerShell évaluées au moment de l'exécution.
* Pour `-Type Script`, PSU peut exposer des paramètres dynamiques du script cible.

```powershell
$Deploy = New-PSUWorkflowActivity -Type Script `
	-Name Deploy `
	-ScriptFullPath 'C:\ProgramData\UniversalAutomation\Repository\scripts\Deploy.ps1' `
	-FailOnScriptError $true

$Root = New-PSUWorkflowActivity -Type Sequence -Name Deployment -Parameters @{
	Activities = @($Deploy)
}
```

### Création d'un flux de travail dans PowerShell

`New-PSUWorkflow` accepte soit une chaîne de définition brute, soit un bloc de script qui retourne une définition d'activité de flux de travail unique.

```powershell
$Parameters = @(
	New-PSUWorkflowParameter -Name Environment -DefaultValue Development -Required -HelpText 'Target environment'
)

$Deploy = New-PSUWorkflowActivity -Type Script `
	-Name Deploy `
	-ScriptFullPath 'C:\ProgramData\UniversalAutomation\Repository\scripts\Deploy.ps1' `
	-Expressions @{ Environment = '$Workflow.Environment' }

$Root = New-PSUWorkflowActivity -Type Sequence -Name Deployment -Parameters @{
	Activities = @($Deploy)
}

New-PSUWorkflow -Name ApplicationDeployment -Description 'Deploy an application through a workflow' -WorkflowParameters $Parameters -Definition { $Root }
```

## Surveillance des exécutions de flux de travail

Les exécutions de flux de travail apparaissent dans l'historique des tâches, tout comme les tâches de scripts. Utilisez la page de tâche pour inspecter :

* le statut actuel
* la sortie de flux
* la sortie du pipeline
* les erreurs

C'est l'endroit idéal pour dépanner les étapes de flux de travail échouées et vérifier les données transmises entre les activités.

## Dépannage

* Si une propriété doit être calculée au moment de l'exécution, utilisez une expression plutôt qu'une valeur fixe.
* `$PSUItem` ne contient que la sortie de l'activité précédente. La première activité d'un flux de travail n'aura pas de sortie précédente.
* Les propriétés d'activité de script sont basées sur les métadonnées du script cible. Si un paramètre de script n'apparaît pas comme prévu, vérifiez le chemin du script et le nom du paramètre.
* Les noms de paramètres d'activité et les clés d'expression doivent correspondre aux propriétés valides pour ce type d'activité.
* Si vous avez besoin d'une exécution récurrente, attachez une planification plutôt que d'invoquer manuellement le flux de travail.

## Rubriques connexes

* [Tâches](/powershell-universal/fr/automation/jobs.md)
* [Planifications](/powershell-universal/fr/automation/schedules.md)
* [Scripts](/powershell-universal/fr/automation/scripts.md)


---

# 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:

```
GET https://docs.devolutions.net/powershell-universal/fr/automation/workflows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
