Nel sistema è possibile calcolare i valori delle espressioni nei parametri delle azioni (Action Parameters), ad esempio, aggiungere, moltiplicare, calcolare percentuali, ecc.
Per eseguire calcoli, occorre mettere il carattere =
nel campo davanti alle operazioni.
=6^2 + {{Somma}}/2
oppure =if({{ID}}=5, "testo1", "testo2")
. In ogni campo possono essere utilizzati diversi calcoli. Se vuoi non solo eseguire un calcolo, ma anche visualizzare dati aggiuntivi (valore delle variabili, testo) sono previsti 2 opzioni:
-
I valori da calcolare possono essere inseriti nel testo all’interno della costruzione
{{=...}}
.Esempio:È necessario compilare i documenti prima del {{=DateAdd({=Document:CREATED}, '5d')}}
.
-
Oppure puoi utilizzare l’operatore di concatenazione (
&
) e racchiudere il testo tra virgolette doppie ("
).
Operatori
Calcolando i valori delle espressioni nei parametri delle azioni puoi utilizzare diversi operatori e funzioni.Elenco degli operatori disponibili
Operatore | Descrizione |
---|---|
+
|
Somma |
-
|
Differenza |
*
|
Moltiplicazione |
/
|
Divisione |
=
|
Uguaglianza |
<>
|
Non uguaglianza |
<
|
Minore |
>
|
Maggiore |
<=
|
Minore o uguale |
>=
|
Maggiore o uguale |
()
|
Parentesi tonde |
&
|
Operatore di concatenazione. Combina due stringhe per formarne una sola. |
^
|
Potenza |
%
|
Percentuale |
true
|
Booleano true |
false
|
Booleano false |
and
|
Booleano AND |
or
|
Booleano OR
Esempio:
=if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no") |
not
|
Booleano NOT |
Funzioni
Quando si crea un flusso di lavoro è possibile utilizzare le funzioni. Puoi selezionarle dall’elenco. Per aprire l’elenco delle funzioni, inserisci il simbolo =
nell’apposito campo.
Elenco delle funzioni e esempi
Funzione | Descrizione |
---|---|
abs
|
Restituisce il valore assoluto di un numero. |
dateadd
|
Aggiunge un intervallo di tempo specificato (giorni, mesi, anni, ore, minuti e secondi) alla data indicata.
Sintassi: Scrittura e esempi
Puoi scrivere in maiuscolo o minuscolo. Esempi:
{{=DateAdd({{Data di creazione dell’elemento}}, '-2d')}} , {{=DateAdd({{Data di creazione dell’elemento}}, '2 days 3 minutes')}} .
Se il numero di unità di tempo necessario da aggiungere è contenuto in un campo, una variabile, ecc., occorre utilizzare l’operatore di concatenazione Esempio:
{{=DateAdd({{Data di creazione dell’elemento}}, {=Variable:WHAT2ADD} & "y 10h")
|
datediff
|
Restituisce la differenza tra due date specificate.
Sintassi: La differenza può essere visualizzata in diverse unità, a seconda dello scopo. Esempi:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days') |
date
|
restituisce la data nel formato indicato e funziona in modo simile alla funzione Date in PHP.
Sintassi - |
WorkDateAdd
|
Aggiunge il numero specificato di giorni lavorativi, ore e minuti alla data indicata.
Sintassi: Scrittura e esempi
Esempio:
=WorkDateAdd({=Template:Parameter1}, "2d") - nel parametro è contenuta la data 23.08.2019 .
Risultato - 26.08.2019 09:00:00, essendo fine settimana, il 24.08 e il 25.08 verranno saltati. 09:00:00 - inizio del giorno di lavoro. Puoi configurare i giorni festivi e i parametri dell’orario di lavoro nelle Impostazioni del protale.
|
AddWorkDays
|
Aggiunge il numero N di giorni lavorativi alla data indicata.
Sintassi: Esempi:
{{=addworkdays('24.12.2018', 1)}} - risultato: 26.12.2018 00:00:00 , visto che nelle impostazioni del sito il 25.12 è un giorno festivo.
|
isWorkDay
|
Controlla se la data indicata è un giorno lavorativo (in base al Calendario).
Sintassi: Esempio:
{{=if(isWorkDay({=Template:Parameter1}), 'Si', 'No')}} - nel parametro è contenuta la data 28.04.2016 . Risultato - Si, perché è un giorno lavorativo. |
isWorkTime
|
La funzione è simile a isWorkDay , ma per tipi di dati Data/Ora.
Sintassi: Esempio:
{{=if(isWorkTime({=Template:Parameter1}), 'Si', 'No')}} - nel parametro sono contenute la data e l’ora 27.04.2016 15:00:00 .
Risultato - Si, perché sono le ore lavorative.
|
toUserDate
|
La funzione converte qualsiasi orario nell’orario del dipendente (considerando il suo fuso orario).
toUserDate(user,date=now)Parametri:
|
GetUserDateOffset
|
La funzione restituisce il valore di offset del fuso orario dell'utente in secondi (rispetto all'ora del server).
GetUserDateOffset(user)Parametro:
|
if
|
Specifica una condizione.
Sintassi: Esempio:
=if ({=Variable:Variable1_printable}>0, "yes", "no")
Quando si confrontano i valori delle variabili, è anche possibile confrontare le variabili con diversi tipi di dati. Tuttavia, le variabili confrontate devono corrispondere alla tabella di conversione dei tipi (vedi qui). |
intval
|
Restituisce il valore intero della variabile.
Esempio:
=intval("234j4hv5jhv43v53jk4vt5hj4") restituisce 234 |
floatval
|
Restituisce il valore float. |
numberformat
|
Formatta un numero con migliaia raggruppati. |
min
|
Trova il valore più basso. |
max
|
Trova il valore più alto. |
rand
|
Restituisce un numero casuale.
Sintassi:
È necessario indicare solo il valore minimo. Se non vuoi limitare il valore massimo, puoi omettere il secondo parametro, ad esempio Esempio:
=rand(0,10) - scelta del numero da 0 a 10.
|
round
|
Arrotonda un float.
Sintassi: Esempi:
|
ceil
|
Arrotonda una frazione verso l’alto.
Esempio:
=ceil(5.5) si ottiene 6. |
floor
|
Arrotonda una frazione verso il basso.
Esempio:
=floor(5.5) si ottiene 5. |
substr
|
Restituisce una parte di stringa a partire dal carattere indicato. Questa funzione è simile a quella esistente in PHP. Qui puoi scoprire di più.
Sintassi: Nota che la riga inizia con il carattere numerato 0. Ad esempio,il carattere 'a' è alla posizione 0 e la 'c' è alla posizione 2, ecc. Esempio:
{{=substr("0123456789", 3, 4)}} restituisce 3456 .
Attenzione! Se la sintassi dell’espressione contiene un errore, essa verrà visualizzata in formato testuale.
|
strpos
|
Restituisce la posizione della prima occorrenza di una sottostringa. |
strlen
|
Restituisce la lunghezza della stringa. |
implode
|
Unisce valori multiple in una stringa. Utile quando occorre visualizzare i valori di variabili multiple nel testo utilizzano un separatore non standard (separatore standard - una virgola). Simile a implode in PHP. Restituisce la stringa che contiene rappresentazione di tutti gli elementi dell’array sotto forma di valore String nell’ordine specificato, con il valore glue tra ogni elemento.
implode(glue,pieces) Parametri:
|
explode
|
La funzione divide la stringa con il separatore. Utile quando serve dividere la stringa e assegnare parti come valori di variabile multipla. Simile a explode in PHP. Restituisce un array di stringhe ottenute dividendo la stringa str con l’utilizzo di delimiter come separatore.
explode( delimiter, str) Parametri:
|
randstring
|
Restituisce una stringa casuale. |
merge
|
Consente di unire uno o più array.
Sintassi: Esempio:
= merge({=Document:FILES}, {=Variable:file}) . |
urlencode
|
Stringa con codifica URL. |
strtolower
|
Converte una stringa in minuscolo. |
strtoupper
|
Converte una stringa in maiuscolo. |
ucwords
|
Converte in maiuscolo il primo carattere di ogni nuova parola nella stringa. |
firstvalue
|
restituisce il primo valore del campo multiplo. |
swirl
|
Sposta il valore del campo multiplo alla fine. In input viene preso il campo multiplo, in output si ottengono i valori spostati di un passo a sinistra, quindi il primo valore si trova alla fine. Lo spostamento è sempre di un passo. |
shuffle
|
Mescola i valori del campo multiplo. Simile a shuffle in PHP. In input viene preso il campo multiplo, in output vengono ottenuti i valori mescolati di questo campo multiplo.
Esempio
Creiamo un flusso di lavoro per illustrare il funzionamento delle funzioni : Nel flusso di lavoro viene utilizzata la variabile multipla Utenti, in cui viene archiviato l’elenco dei dipendenti.
Prima mischiamo l’elenco degli utenti con In seguito spostiamo questo elenco con swirl e scegliamo il primo dipendente tra loro utilizzando firstvalue che sarà il nostro partecipante.
Successivamente, compiliamo i parametri dell’incarico. Dopo l’avvio del flusso di lavoro all’incarico verranno aggiunti i dipendenti casuali nei ruoli di responsabile e partecipante. |