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

# Workflow

Concatena script e prompt IA in workflow PowerShell Universal a più passaggi utilizzando le variabili Workflow e PSUItem per passare i dati tra le attività.

> Questa funzionalità richiede una [licenza](/powershell-universal/it/licensing.md).

I workflow di PowerShell Universal concatenano script e prompt IA in un unico flusso di automazione. Utilizzi i workflow per passare dati tra i passaggi, indirizzare l'esecuzione in base a un risultato, eseguire attività indipendenti in modo simultaneo e pianificare il processo risultante. Le esecuzioni dei workflow creano job che può monitorare nella cronologia dei job standard.

## Creare un workflow

1. Vada su **Build > Workflows** e selezioni **Create Workflow**.
2. Inserisca un nome e una descrizione opzionale.
3. Aggiunga parametri del workflow quando i chiamanti devono fornire valori come un ambiente, un obiettivo di approvazione o un periodo di conservazione.
4. Salvi il workflow, quindi lo apra per utilizzare il **Workflow Designer**.

I parametri hanno un nome, un valore predefinito, un'impostazione di obbligatorietà e un testo della guida. Vengono richiesti quando il workflow viene eseguito manualmente e sono disponibili per le espressioni del workflow.

## Costruire il workflow

Il designer dispone di una tavolozza delle attività, di un'area di lavoro per la sequenza e di un riquadro delle proprietà.

1. Aggiunga un'attività trascinandola dalla tavolozza in una zona di rilascio dell'area di lavoro, oppure selezioni il pulsante **più** accanto all'attività per aggiungerla alla fine della sequenza.
2. Selezioni un'attività per configurarne le proprietà nel riquadro di destra.
3. Trascini le attività nella sequenza per riordinarle.
4. Selezioni **Save Workflow** dopo aver apportato le modifiche.

Le attività script espongono i parametri PowerShell definiti nello script di destinazione. Fornisca un valore letterale o selezioni **PowerShell** per un'espressione valutata in fase di esecuzione. Le attività prompt IA consentono di selezionare un agente IA e di fornire il prompt da eseguire.

## Rami decisionali

Utilizzi un'attività **Decision** per creare un ramo True e un ramo False. Questo è utile per i flussi di approvazione, i controlli di convalida e la gestione del risultato di un job precedente.

1. Aggiunga **Decision** dalla tavolozza delle attività.
2. Inserisca una condizione PowerShell che restituisca `$true` o `$false`. Se la lascia vuota, la decisione valuta il primo elemento di output dell'attività precedente.
3. Utilizzi **Add activity** in ciascuna corsia True o False per definire il lavoro relativo a quell'esito.
4. Aggiunga eventuali attività successive dopo la Decision; ogni ramo completato continua con l'attività successiva del workflow principale.

Per esempio, uno script può restituire se una distribuzione è approvata. La Decision può utilizzare la condizione predefinita basata sull'output precedente, oppure utilizzare un'espressione esplicita come:

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

`$PreviousActivity` contiene l'ID, il tipo, il nome, l'ID del job, lo stato, gli orari di inizio e fine e l'output della pipeline dell'attività precedente. Lo utilizzi quando la condizione del ramo necessita dei metadati del job oltre al suo output.

## Eseguire attività in parallelo

Utilizzi un'attività **Parallel** quando attività script o prompt IA indipendenti possono essere eseguite contemporaneamente.

1. Aggiunga **Parallel** dalla tavolozza delle attività.
2. Selezioni **Add activity** nell'attività Parallel e aggiunga ogni attività figlia che può essere eseguita in modo indipendente.
3. Configuri ogni attività figlia come di consueto.
4. Continui il workflow principale dopo il completamento dell'attività Parallel.

PowerShell Universal avvia simultaneamente i job figli idonei e attende che terminino tutti. Se un prompt IA ha esito negativo, oppure se uno script figlio è configurato per fallire in caso di errore dello script e termina in stato fallito, di errore o di timeout, l'attività Parallel fallisce.

## Passare dati tra le attività

Le espressioni del workflow vengono valutate in fase di esecuzione e possono utilizzare queste variabili:

| Variabile           | Uso                                                                                                                                                           |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `$Workflow`         | Valori dei parametri del workflow forniti all'avvio dell'esecuzione.                                                                                          |
| `$PSUItem`          | L'output non elaborato della pipeline dell'attività precedente. Uno script di destinazione lo riceve automaticamente solo se dichiara un parametro `PSUItem`. |
| `$Output`           | Valori denominati prodotti da uno script precedente che ha restituito una hashtable.                                                                          |
| `$PreviousActivity` | Metadati e output dell'attività immediatamente precedente.                                                                                                    |

Per esempio, passi un parametro del workflow a una proprietà di un'attività script:

```powershell
$Workflow.Environment
```

Per decostruire l'output, faccia in modo che uno script restituisca esattamente una hashtable:

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

Con **Deconstruct Hashtable Output** abilitato (impostazione predefinita), le espressioni PowerShell a valle possono utilizzare i valori denominati:

```powershell
$Output.Server
```

Se lo script restituisce più oggetti, o se il singolo oggetto non è una hashtable, utilizzi `$PSUItem` per lavorare con l'output dell'attività precedente.

## Eseguire e pianificare i workflow

Selezioni l'icona **Play** in **Build > Workflows** per eseguire un workflow su richiesta. PowerShell Universal richiede gli eventuali parametri configurati, quindi apre il job del workflow risultante.

Crei una pianificazione del workflow dalla scheda **Schedules** del workflow o da **Run > Schedules**. I workflow supportano pianificazioni semplici, cron, continue e una sola volta. Imposti le stesse opzioni di esecuzione disponibili per l'automazione pianificata, incluse le impostazioni dell'ambiente di esecuzione, delle credenziali e del computer.

Utilizzi `Invoke-PSUWorkflow` per avviare un workflow da PowerShell o da un'altra automazione di PowerShell Universal. Può fornire i valori dei parametri durante l'invocazione.

## Gestire i workflow come configurazione

Quando i workflow sono gestiti in un repository di configurazione, utilizzi l'azione **Refresh Configuration > Workflows** dell'esplora file di configurazione per sincronizzare le definizioni dei workflow aggiornate senza riavviare PowerShell Universal.

Il modulo Universal fornisce inoltre `Get-PSUWorkflow`, `New-PSUWorkflow`, `Set-PSUWorkflow`, `Remove-PSUWorkflow`, `New-PSUWorkflowParameter`, `New-PSUWorkflowActivity` e `Invoke-PSUWorkflow` per scenari di configurazione e automazione.

## Monitorare e risolvere i problemi delle esecuzioni

Apra il job del workflow da **Build > Workflows** per esaminarne lo stato, gli stream, l'output della pipeline e gli errori. I job figli di script e IA sono associati all'esecuzione del workflow, il che facilita l'identificazione dell'attività che ha avuto esito negativo.

Durante la risoluzione dei problemi, verifichi che i nomi dei parametri dello script corrispondano ai metadati dello script di destinazione, utilizzi un'espressione anziché un valore letterale per i valori che devono essere valutati in fase di esecuzione e ricordi che la prima attività non ha un output precedente.


---

# 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/it/automazione/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.
