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

# Flux de travail

Enchaînez des scripts et des invites d'IA dans des workflows PowerShell Universal à plusieurs étapes en utilisant les variables Workflow et PSUItem pour transmettre des données entre les activités.

> Cette fonctionnalité nécessite une [licence](/powershell-universal/fr/licensing.md).

Les workflows PowerShell Universal enchaînent des scripts et des invites d'IA dans un seul flux d'automatisation. Utilisez les workflows pour transmettre des données entre les étapes, orienter l'exécution en fonction d'un résultat, exécuter des tâches indépendantes simultanément et planifier le processus résultant. Les exécutions de workflow créent des tâches que vous pouvez surveiller dans l'historique des tâches standard.

## Créer un workflow

1. Allez dans **Build > Workflows** et sélectionnez **Create Workflow**.
2. Entrez un nom et une description facultative.
3. Ajoutez des paramètres de workflow lorsque les appelants doivent fournir des valeurs comme un environnement, une cible d'approbation ou une période de rétention.
4. Enregistrez le workflow, puis ouvrez-le pour utiliser le **Workflow Designer**.

Les paramètres ont un nom, une valeur par défaut, un réglage obligatoire et un texte d'aide. Ils sont demandés lorsque le workflow est exécuté manuellement et sont disponibles pour les expressions de workflow.

## Construire le workflow

Le concepteur comporte une palette d'activités, un canevas de séquence et un volet de propriétés.

1. Ajoutez une activité en la faisant glisser de la palette vers une zone de dépôt du canevas, ou sélectionnez le bouton **plus** à côté de l'activité pour l'ajouter à la fin de la séquence.
2. Sélectionnez une activité pour configurer ses propriétés dans le volet de droite.
3. Faites glisser les activités dans la séquence pour les réorganiser.
4. Sélectionnez **Save Workflow** après avoir apporté des modifications.

Les activités de script exposent les paramètres PowerShell définis sur leur script cible. Fournissez une valeur littérale ou sélectionnez **PowerShell** pour une expression évaluée à l'exécution. Les activités d'invite d'IA vous permettent de sélectionner un agent d'IA et de fournir l'invite à exécuter.

## Branches de décision

Utilisez une activité **Decision** pour créer une branche True et une branche False. Cela est utile pour les processus d'approbation, les vérifications de validation et le traitement du résultat d'une tâche précédente.

1. Ajoutez **Decision** depuis la palette d'activités.
2. Entrez une condition PowerShell qui retourne `$true` ou `$false`. Si vous la laissez vide, la décision évalue le premier élément de sortie de l'activité précédente.
3. Utilisez **Add activity** dans chaque voie True ou False pour définir le travail pour ce résultat.
4. Ajoutez toutes les activités subséquentes après la Decision; chaque branche complétée continue vers l'activité suivante du workflow principal.

Par exemple, un script peut retourner si un déploiement est approuvé. La Decision peut utiliser la condition par défaut basée sur la sortie précédente, ou utiliser une expression explicite comme :

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

`$PreviousActivity` contient l'ID, le type, le nom, l'ID de tâche, le statut, les heures de début et de fin, ainsi que la sortie de pipeline de l'activité précédente. Utilisez-le lorsque la condition de branche a besoin des métadonnées de la tâche en plus de sa sortie.

## Exécuter des activités en parallèle

Utilisez une activité **Parallel** lorsque des activités de script ou d'invite d'IA indépendantes peuvent s'exécuter en même temps.

1. Ajoutez **Parallel** depuis la palette d'activités.
2. Sélectionnez **Add activity** dans l'activité Parallel et ajoutez chaque activité enfant qui peut s'exécuter indépendamment.
3. Configurez chaque activité enfant comme d'habitude.
4. Poursuivez le workflow principal après que l'activité Parallel est terminée.

PowerShell Universal démarre simultanément les tâches enfants admissibles et attend qu'elles soient toutes terminées. Si une invite d'IA échoue, ou si un enfant de type script est configuré pour échouer en cas d'erreur de script et se termine dans un état d'échec, d'erreur ou de délai dépassé, l'activité Parallel échoue.

## Transmettre des données entre les activités

Les expressions de workflow sont évaluées à l'exécution et peuvent utiliser ces variables :

| Variable            | Utilisation                                                                                                                                     |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `$Workflow`         | Les valeurs des paramètres de workflow fournies au démarrage de l'exécution.                                                                    |
| `$PSUItem`          | La sortie brute du pipeline de l'activité précédente. Un script cible la reçoit automatiquement uniquement s'il déclare un paramètre `PSUItem`. |
| `$Output`           | Les valeurs nommées produites par un script précédent qui a retourné une seule table de hachage.                                                |
| `$PreviousActivity` | Les métadonnées et la sortie de l'activité qui précède immédiatement.                                                                           |

Par exemple, transmettez un paramètre de workflow à une propriété d'activité de script :

```powershell
$Workflow.Environment
```

Pour déconstruire la sortie, faites en sorte qu'un script retourne exactement une table de hachage :

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

Avec **Deconstruct Hashtable Output** activé (par défaut), les expressions PowerShell en aval peuvent utiliser les valeurs nommées :

```powershell
$Output.Server
```

Si le script retourne plusieurs objets, ou si l'objet unique n'est pas une table de hachage, utilisez plutôt `$PSUItem` pour travailler avec la sortie de l'activité précédente.

## Exécuter et planifier des workflows

Sélectionnez l'icône **Play** dans **Build > Workflows** pour exécuter un workflow à la demande. PowerShell Universal demande les paramètres configurés, puis ouvre la tâche de workflow résultante.

Créez une planification de workflow depuis l'onglet **Schedules** du workflow ou depuis **Run > Schedules**. Les workflows prennent en charge les planifications simples, cron, continues et ponctuelles. Définissez les mêmes options d'exécution offertes pour l'automatisation planifiée, y compris l'environnement d'exécution, les identifiants et les paramètres d'ordinateur.

Utilisez `Invoke-PSUWorkflow` pour démarrer un workflow depuis PowerShell ou une autre automatisation PowerShell Universal. Vous pouvez fournir des valeurs de paramètres lors de son appel.

## Gérer les workflows en tant que configuration

Lorsque les workflows sont maintenus dans un dépôt de configuration, utilisez l'action **Refresh Configuration > Workflows** de l'explorateur de fichiers de configuration pour synchroniser les définitions de workflow mises à jour sans redémarrer PowerShell Universal.

Le module Universal fournit également `Get-PSUWorkflow`, `New-PSUWorkflow`, `Set-PSUWorkflow`, `Remove-PSUWorkflow`, `New-PSUWorkflowParameter`, `New-PSUWorkflowActivity` et `Invoke-PSUWorkflow` pour les scénarios de configuration et d'automatisation.

## Surveiller et dépanner les exécutions

Ouvrez la tâche de workflow depuis **Build > Workflows** pour examiner son statut, ses flux, sa sortie de pipeline et ses erreurs. Les tâches de script et d'IA enfants sont associées à l'exécution du workflow, ce qui facilite l'identification de l'activité qui a échoué.

Lors du dépannage, vérifiez que les noms des paramètres de script correspondent aux métadonnées du script cible, utilisez une expression plutôt qu'une valeur littérale pour les valeurs qui doivent être évaluées à l'exécution, et rappelez-vous que la première activité n'a aucune sortie précédente.


---

# 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/fr/automatisation/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.
