Passa al contenuto principale
Versione: 1.2 (storica)

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.