🇬🇧 EN
🇮🇹 IT

🔀 Switch

Instrada il workflow verso uno di diversi rami denominati in base al valore di un'espressione. Funziona come un'istruzione switch/case — ogni possibile valore ha il proprio percorso, con un ramo predefinito per tutto ciò che non corrisponde.

Categoria: Controllo di Flusso  ·  Identificatore tipo: switch

Panoramica

Quando hai bisogno di inviare un workflow lungo più di due percorsi — non solo true o false — il nodo Switch è lo strumento giusto. Definisci un'unica espressione da valutare (di solito una variabile da un passaggio precedente), poi elenchi i valori specifici che vuoi gestire. Ogni valore diventa un ramo separato. Qualsiasi valore non elencato viene catturato dal ramo default.

Questo è utile quando un dato può assumere uno tra un insieme noto di valori e ogni valore richiede azioni successive diverse. Esempi classici includono stati degli ordini, tipi di notifica, ruoli utente o codici di risposta.

In modalità grafo, ogni valore case crea una porta di output dedicata sul nodo Switch. Disegna un arco da ogni porta al primo nodo del ramo corrispondente. La porta default cattura tutti i valori non corrispondenti.

In modalità lineare, i passaggi successivi sono etichettati con un'etichetta case. Vengono eseguiti solo i passaggi la cui etichetta corrisponde al case valutato. I passaggi etichettati default vengono eseguiti quando nessun case corrisponde.

Configurazione

Campo Stato Descrizione
Expression Obbligatorio Il valore da testare. Può essere un valore statico o un riferimento a variabile, es. {{ order.output.status }}. L'espressione viene valutata e il suo risultato confrontato con ogni case.
Cases Obbligatorio Un array di valori case. Ogni voce crea un ramo denominato. Un ramo default è sempre presente e cattura tutto ciò che non corrisponde a un case definito.

Dati di Output

Il nodo Switch espone le seguenti variabili di output nei passaggi successivi:

Variabile Tipo Descrizione
matched_case string L'etichetta del case corrispondente, es. "approved". Se nulla corrisponde, il valore è "default".
expression_value mixed Il valore grezzo valutato — utile per logging o visualizzazione a valle.
// Accedere agli output dello switch nei passaggi successivi {{ switch_step.output.matched_case }} {{ switch_step.output.expression_value }}

Esempio di Utilizzo

Instradare un ordine per stato

Un workflow e-commerce riceve un oggetto ordine. A seconda del campo stato, deve inviare email diverse, aggiornare record diversi e chiamare servizi downstream diversi.

  1. Aggiungi un nodo Switch. Imposta l'Expression su:
    {{ order.output.status }}
  2. Aggiungi quattro case: pending, approved, rejected, e mantieni il ramo automatico default.
  3. In modalità grafo: collega la porta pending a un nodo "Invia email di conferma", la porta approved a un sotto-grafo "Evadi ordine", la porta rejected a un nodo "Notifica rifiuto al cliente", e la porta default a un nodo Stop con un messaggio di avvertimento.
  4. Ogni ramo si completa indipendentemente — solo un ramo viene eseguito per esecuzione. Non c'è un punto di unione dopo uno Switch a meno che tu non instradi esplicitamente tutti i rami verso lo stesso nodo downstream in modalità grafo.

Suggerimenti e Note

Nodi Correlati