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.
switchQuando 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.
| 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. |
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. |
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.
pending, approved,
rejected, e mantieni il ramo automatico default.
"Approved" non corrisponde a un case etichettato
approved. Normalizza i tuoi dati a monte se necessario (es. con un nodo
Set Variable che usa una trasformazione in minuscolo).