Skip to main content

Parametri e Variabili del Workflow

L'utilizzo strategico di parametri e variabili è cruciale per creare Workflow dinamici e automatizzati. Questi strumenti permettono di rendere i flussi di lavoro riutilizzabili, fornendo dati specifici ad ogni avvio, di mantenere informazioni utili durante l'elaborazione e di creare una sequenza logica di attività interconnesse.

1. Parametri del Workflow

I parametri sono valori di input definiti per l'intero Workflow. Possono essere creati accedendo alla sezione delle sue proprietà. All'interno delle proprietà, troverai due tab dedicati: "Parametri" e "File".

Tab "Parametri"

In questa sezione è possibile definire parametri di diverso tipo.

  • Aggiunta di un parametro: Per inserire un nuovo parametro, clicca sul pulsante “+Aggiungi Parametro”. Verrà creata una nuova riga da configurare.
  • Configurazione: Per ogni parametro è necessario definire:
  • Tipo: Seleziona il tipo di dato dal menu a tendina. Le opzioni disponibili sono:
  • NUMERICO: Per valori numerici.
  • STRINGA: Per valori testuali.
  • DATA: Per date e orari.
  • ENCRYPT: Per valori sensibili che devono essere memorizzati e gestiti in forma cifrata.
  • ESPRESSIONE: Per definire valori dinamici tramite espressioni.
  • LISTA VALORI: Per elenchi di valori.
  • Nome: Assegna un nome univoco al parametro (es. "x").
  • Valore: Inserisci il valore di default del parametro (es. "1").
  • Rimozione: Per eliminare un parametro, clicca sull'icona del meno (-) alla fine della riga.

Tab "File"

Questa sezione è dedicata alla gestione di parametri di tipo file, utili per caricare documenti (es. CSV, XLSX) che il workflow dovrà processare.

  • Aggiunta di un file: Clicca su "+ Aggiungi File" per creare un nuovo parametro di tipo file.
  • Configurazione:
  • Nome parametro file: Definisci un nome per il parametro (es. "test_01").
  • Scegli file: Clicca su questo pulsante per caricare il file dal tuo computer. Il nome del file caricato e la sua dimensione in byte verranno mostrati automaticamente.
  • Verranno creati 3 tipi di parametri associati al file:.filename”, “.file” (un path assoluto) e “.content”

Utilizzo dei Parametri al lancio del Workflow

Modale di Lancio: Quando un workflow viene eseguito, i suoi parametri vengono mostrati in una modale di avvio. Questo permette all'utente di personalizzare i valori di input per quella specifica esecuzione, senza dover modificare il Workflow.

Modularità (Sub-Workflows): I parametri sono fondamentali per rendere i Workflow riutilizzabili. Possono essere personalizzati e passati come input a task specifici quali: Run Workflow (per eseguire un sotto-workflow), Parallel Run Workflow e Iterator.

2. Variabili del Workflow

A differenza dei parametri, le variabili hanno uno scope puramente interno e servono a gestire i dati intermedi durante l'esecuzione del flusso.

  • Creazione: Le variabili non si definiscono nelle proprietà del workflow, ma vengono create attraverso un task specifico chiamato Dichiara Variabili.
  • Vincolo: È importante notare che all'interno di un singolo workflow può esistere un solo task Dichiara Variabili.
  • Modifica: La modifica del valore delle variabili è consentita unicamente attraverso l'utilizzo dei task Imposta Variabili.
  • Creazione: Le variabili non si definiscono nelle proprietà del workflow, ma vengono create attraverso un task specifico chiamato Dichiara Variabili.
  • Vincolo: È importante notare che all'interno di un singolo workflow può esistere un solo task Dichiara Variabili.
  • Modifica: La modifica del valore delle variabili è consentita unicamente attraverso l'utilizzo dei task Imposta Variabili.

3. Utilizzo di Parametri e Variabili – Menu “Lista Parametri”

Il menu “Lista Parametri” è una componente essenziale del Workflow. Consente di creare processi dinamici gestendo il passaggio di dati tra i task e l’utilizzo di valori calcolati durante l’esecuzione, rendendo il workflow più flessibile e adattabile.

Accesso e utilizzo

All’interno delle schede “Configurazione” e “Condizioni di Output” di ciascun task è disponibile il pulsante “Parametri ≡”, che apre il menu “Lista Parametri”.

Da questo pannello è possibile trascinare (drag-and-drop) un parametro dalla lista e rilasciarlo nel campo di input desiderato (ad esempio nei campi Attachments o Content di un’email).

L’operazione inserisce automaticamente nel campo il riferimento dinamico al parametro, formattato secondo la sintassi:

`#>nome_parametro<#`

4. Il menu “Lista Parametri” nella scheda “Configurazione”

Il menu è organizzato in sezioni, ognuna delle quali espone una diversa tipologia di dato dinamico.

Parametri Runtime

Questa sezione espone le variabili di sistema relative all'esecuzione in corso. Sono parametri di sola lettura, valorizzati automaticamente dalla piattaforma.

  • Contesto Workflow: Informazioni sull'intera esecuzione del processo.
  • $$SYBOT_USER: L'utente che ha avviato il Workflow.
  • $$RUN_ID: L'ID univoco di questa specifica esecuzione.
  • $$WORKFLOW_ID: L'ID univoco del Workflow.
  • $$WORKFLOW_NAME: Il nome del Workflow.
  • Contesto Task: Informazioni sul Task immediatamente precedente.
  • $$LAST_TASK_ID: L'ID del Task precedente.
  • $$LAST_TASK_NAME: Il nome del Task precedente.
  • $$LAST_TASK_TYPE: Il tipo del Task precedente (es. “db” per i Task "Database" ).

Parametri Workflow

Elenca tutti i parametri di input definiti per l'intero Workflow nelle sezioni "Parametri" e "File". Per i parametri di tipo "File", vengono esposti attributi specifici per accedere a diverse parti dell'informazione:

  • .file: Il percorso completo del file.
  • .filename: Il solo nome del file.
  • .content: Il contenuto del file (se testuale).

Variabili Workflow

Mostra le variabili create tramite il Task "Dichiara Variabili". Queste variabili mantengono il loro stato durante l'esecuzione e possono essere lette o modificate (tramite il Task "Imposta Variabili") in qualsiasi punto del flusso successivo alla loro dichiarazione.

Operatori Aritmetici

Questa sezione fornisce scorciatoie per l'inserimento degli operatori matematici standard. Vengono utilizzati per eseguire calcoli in tempo reale, combinando valori statici o parametri dinamici.

OperatoreDescrizioneEsempio di Utilizzo
+Addizione#>Declare variables.contatore<# + 1
-Sottrazione#>TotaleOrdini.count<# - 10
*Moltiplicazione#>Prodotto.prezzo<# * #>Ordine.quantità<#
/Divisione#>FatturatoAnnuale.valore<# / 12
%Modulo#>Controllo loop.loopCount<# % 2 (Restituisce il resto di una divisione, utile per determinare se un numero è pari o dispari)

Funzioni

Questa sezione espone un insieme di funzioni predefinite per l'esecuzione di operazioni complesse che vanno oltre i semplici calcoli aritmetici. Tra queste, è presente una suite di funzioni dedicate alla gestione della data e dell'ora correnti, fondamentali per la generazione di timestamp dinamici e per la formattazione di output temporali.

FunzioneDescrizioneValore Restituito (Esempio)
Date.datetimeRestituisce la data e l'ora correnti.2025-09-17 10:30:00
Date.dateRestituisce solo la data corrente.2025-09-17
Date.timeRestituisce solo l'ora corrente.10:30:00
Date.unixRestituisce la data e l'ora correnti in formato Unix Timestamp (numero di secondi trascorsi dal 1° gennaio 1970).1757893800
Date.format("...")Formatta la data e l'ora correnti secondo un modello personalizzato.17/09/2025 10:30:00 (usando "d/m/Y H:i:s")

Output dei Task Precedenti

Questa sezione è il cuore del flusso di dati. Viene popolata dinamicamente con un elenco di tutti i Task che precedono quello attualmente selezionato nel diagramma. Espandendo un Task in questa lista, si ha accesso a tutti i suoi parametri di output, che possono essere quindi trascinati e utilizzati come input per il Task corrente. Ad esempio, il result di un Task Database può essere usato nel Content di un TaskE-Mail Out v.2 per inviare un report via email.

Sintassi di Inserimento

Quando si utilizza un elemento dalla "Lista Parametri", questo viene inserito automaticamente nel campo di input con una sintassi specifica: #>nome_task.nome_parametro<#. Ad esempio:

`#>E-Mail Out.body<#`
`#>Importa Testo.result<#`
`#>Database.Dataset.nome<#`

Questa notazione agisce come un segnaposto. Durante l'esecuzione del workflow, #>Importa Testo.result<# verrà sostituito con il valore reale prodotto dal task "Importa Testo".

Note

  • Nel task Database per usare i parametri nella sezione Clausola FROM e Statement, va usata la seguente sintassi: #>dbobj:nome_tabella<#(dopo ">" va usato "dbobj:")

5. Il menu “Lista Parametri” nella scheda “Condizioni Output”

Quando si accede al menu "Lista Parametri" dalla scheda "Condizioni Output" di un Task, la sua funzione principale è quella di assistere nella costruzione di espressioni logiche complesse. Queste espressioni determinano quale percorso il Workflow seguirà dopo l'esecuzione del Task.

La struttura di base del menu e le sezioni Parametri Runtime, Parametri Workflow, Variabili Workflow, Funzioni e Output dei Task Precedenti sono identiche a quelle descritte nel capitolo precedente.

La differenza fondamentale risiede nell'aggiunta di due sezioni specifiche per la costruzione di logica booleana: Operatori di Confronto e Operatori Logici.

Operatori di Confronto

Questa sezione fornisce scorciatoie per inserire operatori utilizzati per confrontare due valori. Il risultato di un confronto è sempre un valore booleano (vero o falso), che è la base per qualsiasi decisione di flusso.

OperatoreDescrizioneEsempio di Utilizzo in un'Espressione
==Uguale (confronto di valore, con conversione di tipo)#>Unix Search Process.exitStatus<# == 0
===Strettamente uguale (confronto di valore e di tipo)#>Chiamata REST.httpCode<# === 200 (confronta un numero con un numero)
!=Diverso (confronto di valore)#>Variabili Workflow.stato<# != 'Completato'
!==Strettamente diverso (confronto di valore e di tipo)#>Database.count<# !== '0'
< / >Minore di / Maggiore di#>Iterator.Dataset.Count<# > 10
<= / >=Minore o uguale di / Maggiore o uguale di#>Controllo loop.loopCount<# <= 5
inVerifica se un valore è presente in una lista o array.
not inVerifica se un valore non è presente in una lista o array.
containsVerifica se una stringa contiene un'altra sottostringa.contains(#>Importa Testo.result<#, 'ERROR')

Operatori Logici

Questi operatori sono utilizzati per combinare due o più espressioni di confronto, permettendo di costruire condizioni complesse e multi-fattoriali.

OperatoreDescrizioneEsempio di Utilizzo in un'Espressione
andRestituisce vero solo se entrambe le espressioni sono vere.#>Chiamata REST.httpCode<# === 200 and #>Chiamata REST.response<# contains 'success'
orRestituisce vero se almeno una delle espressioni è vera.#>StatoServizio.result<# == 'stopped' or #>StatoServizio.exitStatus<# != 0
notInverte il risultato di un'espressione (da vero a falso e viceversa).not (#>Variabili Workflow.utente_attivo<#)

L'utilizzo combinato di parametri, funzioni e di questi operatori logici e di confronto consente di definire con precisione granulare il comportamento del Workflow in risposta a qualsiasi risultato proveniente dai Task eseguiti.