Supporto Bitrix24

Utilizzo delle espressioni nei parametri delle azioni

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.

Esempio: =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 (").

    Esempio: ="Risposta:" & (1+3) o ="Autore: " & {{=Document:CREATED_BY}} & ", " & "Scadenza: " & Dateadd({=Document:DATE_CREATE}, "1d")

La sintassi degli operatori simbolici è simile alla sintassi delle corrispondenti funzioni PHP.

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: =dateadd([initial date], [time span])

Scrittura e esempi

y, year, years, m, month, months, d, day, days, h, hour, hours, min, minute, minutes, s, second, seconds.

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: =datediff([date1], [date2], [difference_display_format])

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 - date ('formato di input', {data desiderata})

WorkDateAdd

Aggiunge il numero specificato di giorni lavorativi, ore e minuti alla data indicata.

Sintassi: =WorkDateAdd([initial date], [time span]).

Scrittura e esempi

d, day, days, h, hour, hours, i, min, minute, minutes. Puoi scrivere in maiuscolo o minuscolo.

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: =addworkdays([la data alla quale verranno aggiunti i giorni], [numero di giorni lavorativi da aggiungere]).

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.

{{=addworkdays('05.02.2016 16:14:00', 1)}} -risultato: visto che il 05.02.2016 è venerdì, il risultato è: 08.02.2016 16:14:00 - lunedì.

isWorkDay Controlla se la data indicata è un giorno lavorativo (in base al Calendario).

Sintassi: =if(isWorkDay([la data da verificare]), [messaggio se la data è un giorno lavorativo], [messaggio se la data non è un giorno lavorativo]).

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: =if(isWorkDay([data e ora da verificare]), [messaggio se la data e l’ora sono lavorative], [messaggio se la data e l’ora non sono lavorative]).

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:
  • user - l’utente al cui orario occorre convertire l’orario del flusso di lavoro.
  • date - data iniziale, per impostazione predefinita - orario corrente.

GetUserDateOffset La funzione restituisce il valore di offset del fuso orario dell'utente in secondi (rispetto all'ora del server).

GetUserDateOffset(user)

Parametro:
  • user - l'utente per il quale è richiesto il valore.
if Specifica una condizione.

Sintassi: =if([condition],[expression if true],[expression if false])

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: =rand([valore minimo],[valore massimo]).

È necessario indicare solo il valore minimo. Se non vuoi limitare il valore massimo, puoi omettere il secondo parametro, ad esempio =rand(17).

Esempio: =rand(0,10) - scelta del numero da 0 a 10.

round Arrotonda un float.

Sintassi: =round([cosa arrotondare],[numero di caratteri dopo la virgola])

Esempi:

  • =round(10/3,2) - si ottiene 3.33.
  • =round(5/2) - si ottiene 3.

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: substr([stringa di input], [con quale carattere della stringa di origine inizia la stringa da restituire], [lunghezza della stringa])

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:

  • glue - il valore predefinito è una stringa vuota
  • pieces - array di stringhe da concatenare
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:

  • delimiter - separatore
  • str - stringa di dividere.
randstring Restituisce una stringa casuale.
merge Consente di unire uno o più array.

Sintassi: = merge({=array_1}, {=array_2});

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 : shuffle, firstvalue e swirl. Utilizzando questo flusso di lavoro puoi assegnare un incarico a un dipendente casuale dall’elenco e aggiungere un altro dipendente come partecipante.

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 shuffle e scegliamo il primo dipendente tra loro utilizzando firstvalue che sarà il nostro responsabile.

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.


È stato utile
Grazie :)
Opzionale:
Lascia un feedback sull'articolo
Non è stato utile
Mi dispiace :(
Ti dispiacerebbe dirci perché?
Lascia un feedback sull'articolo
Ho ancora qualche domanda