In questa pagina

Funzioni avanzate

Queste famiglie di funzioni completano il linguaggio delle espressioni. Per ogni gruppo sono elencate le funzioni, i parametri, il tipo restituito e alcuni esempi.

1. Funzioni per testo e modelli

Funzioni per le espressioni regolari

Funzioni per trovare e sostituire schemi tramite espressioni regolari.

regexMatch

(text, pattern)

Verifica se una stringa corrisponde a uno schema di espressione regolare.

Parametri
text string Stringa da verificare
pattern string Schema di espressione regolare
Valori restituiti booleano
Esempi
regexMatch("abc123", "[0-9]+") → true
regexMatch("hello", "^[0-9]+$") → false
Vedi anche

regexReplace

(text, pattern, replacement)

Sostituisce nella stringa tutte le corrispondenze con uno schema di espressione regolare.

Parametri
text string Stringa di input
pattern string Schema di espressione regolare da trovare
replacement string Stringa sostitutiva
Valori restituiti stringa
Esempi
regexReplace("abc123def456", "[0-9]+", "#") → abc#def#
regexReplace("hello world", "\s+", " ") → hello world
Vedi anche

regexExtract

(text, pattern, group?)

Estrae da una stringa la prima corrispondenza con uno schema di espressione regolare. È possibile estrarre anche uno specifico gruppo di cattura.

Parametri
text string Stringa di input
pattern string Schema di espressione regolare
group (facoltativo) number Indice del gruppo di cattura; 0 restituisce l’intera corrispondenza (predefinito: 0)
Valori restituiti stringa
Esempi
regexExtract("abc123def", "[0-9]+") → 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) → 2025
Vedi anche

Funzioni per le stringhe

Altre funzioni per manipolare le stringhe.

repeat

(text, count)

Ripete il testo per il numero di volte specificato.

Parametri
text string Testo da ripetere
count number Numero di ripetizioni
Valori restituiti stringa
Esempi
repeat("ab", 3) → "ababab"

countOccurrences

(text, search)

Conta le occorrenze non sovrapposte di una sottostringa.

Parametri
text string Testo in cui cercare
search string Sottostringa da trovare
Valori restituiti numero
Esempi
countOccurrences("abcabc", "abc") → 2

split

(text, delimiter, index)

Divide il testo in corrispondenza di un delimitatore e restituisce la parte indicata, contando da 1.

Parametri
text string Testo da dividere
delimiter string Delimitatore
index number Indice della parte da restituire, a partire da 1
Valori restituiti stringa
Esempi
split("a-b-c", "-", 2) → "b"

exact

(a, b)

Confronto tra stringhe con distinzione tra maiuscole e minuscole. Restituisce true se le stringhe sono identiche.

Parametri
a string Prima stringa
b string Seconda stringa
Valori restituiti booleano
Esempi
exact("Hello", "hello") → false

2. Funzioni per date e durate

Funzioni per le durate

Converte le durate espresse in millisecondi nelle unità di tempo più comuni.

durationInDays

(ms)

Converte i millisecondi in giorni.

Parametri
ms number Durata in millisecondi
Valori restituiti numero
Esempi
durationInDays(86400000) → 1
durationInDays(caseThroughputTime) → Tempo di attraversamento in giorni

durationInHours

(ms)

Converte i millisecondi in ore.

Parametri
ms number Durata in millisecondi
Valori restituiti numero
Esempi
durationInHours(3600000) → 1
durationInHours(stepDuration) → Durata del passaggio in ore

durationInMinutes

(ms)

Converte i millisecondi in minuti.

Parametri
ms number Durata in millisecondi
Valori restituiti numero
Esempi
durationInMinutes(60000) → 1
durationInMinutes(waitingTime) → Tempo di attesa in minuti

durationInSeconds

(ms)

Converte i millisecondi in secondi.

Parametri
ms number Durata in millisecondi
Valori restituiti numero
Esempi
durationInSeconds(1500) → 1.5

Creazione delle date

Crea date a partire da singoli componenti oppure interpreta stringhe come date.

date

(year, month, day)

Crea una data UTC a partire da anno, mese e giorno.

Parametri
year number Anno
month number Mese (1-12)
day number Giorno del mese
Valori restituiti data
Esempi
date(2024, 1, 1) → 1704067200000
date(2024, 6, 15) → 15 giugno 2024

toDate

(value, format?)

Interpreta un valore come data. Accetta numeri, ad esempio i millisecondi dall’epoca Unix, e stringhe.

Parametri
value any Valore da convertire in data
format (facoltativo) string Formato della data (facoltativo)
Valori restituiti data
Esempi
toDate(1704067200000) → 1704067200000
toDate("2024-01-15") → 15 gennaio 2024
toDate("31/12/2024 23:45:59", "dd/MM/yyyy HH:mm:ss") → 1735688759000
Note

Se si specifica un formato, utilizzi gli stessi token supportati da formatDate. L’interpretazione avviene in UTC.

today

()

Restituisce la data corrente alle 00:00 UTC.

Valori restituiti data
Esempi
today() → Data corrente alle 00:00

Limiti dei periodi di data

Tronca o arrotonda le date ai limiti dei periodi.

startOfDay

(date)

Tronca una data all’inizio del giorno (mezzanotte).

Parametri
date date Data da troncare
Valori restituiti data
Esempi
startOfDay(StartTime) → Mezzanotte dello stesso giorno

startOfWeek

(date)

Restituisce l’inizio della settimana (lunedì).

Parametri
date date Data
Valori restituiti data
Esempi
startOfWeek(StartTime) → Lunedì della stessa settimana

startOfMonth

(date)

Restituisce il primo giorno del mese.

Parametri
date date Data
Valori restituiti data
Esempi
startOfMonth(StartTime) → Primo giorno del mese

startOfYear

(date)

Restituisce il 1º gennaio dell’anno.

Parametri
date date Data
Valori restituiti data
Esempi
startOfYear(StartTime) → 1º gennaio

endOfWeek

(date)

Restituisce la fine della settimana (domenica alle 23:59:59).

Parametri
date date Data
Valori restituiti data
Esempi
endOfWeek(StartTime) → Fine della domenica

endOfMonth

(date)

Restituisce la fine del mese alle 23:59:59.

Parametri
date date Data
Valori restituiti data
Esempi
endOfMonth(StartTime) → Ultimo giorno del mese, a fine giornata

endOfYear

(date)

Restituisce il 31 dicembre alle 23:59:59.

Parametri
date date Data
Valori restituiti data
Esempi
endOfYear(StartTime) → 31 dicembre, a fine giornata

Funzioni rapide per le date

Funzioni pratiche per calcolare la differenza e la somma tra date.

daysBetween

(date1, date2)

Restituisce la differenza in giorni tra due date.

Parametri
date1 date Data di inizio
date2 date Data di fine
Valori restituiti numero
Esempi
daysBetween(StartTime, EndTime) → Durata in giorni tra due date

hoursBetween

(date1, date2)

Restituisce la differenza in ore tra due date.

Parametri
date1 date Data di inizio
date2 date Data di fine
Valori restituiti numero
Esempi
hoursBetween(StartTime, EndTime) → Durata in ore tra due date

minutesBetween

(date1, date2)

Restituisce la differenza in minuti tra due date.

Parametri
date1 date Data di inizio
date2 date Data di fine
Valori restituiti numero
Esempi
minutesBetween(StartTime, EndTime) → Durata in minuti tra due date

secondsBetween

(date1, date2)

Restituisce la differenza in secondi tra due date.

Parametri
date1 date Data di inizio
date2 date Data di fine
Valori restituiti numero
Esempi
secondsBetween(StartTime, EndTime) → Durata in secondi tra due date

addDays

(date, days)

Aggiunge giorni a una data.

Parametri
date date Data di riferimento
days number Numero di giorni da aggiungere
Valori restituiti data
Esempi
addDays(StartTime, 5) → Data cinque giorni dopo

addHours

(date, hours)

Aggiunge ore a una data.

Parametri
date date Data di riferimento
hours number Numero di ore da aggiungere
Valori restituiti data
Esempi
addHours(StartTime, 3) → Data tre ore dopo

addMinutes

(date, minutes)

Aggiunge minuti a una data.

Parametri
date date Data di riferimento
minutes number Numero di minuti da aggiungere
Valori restituiti data
Esempi
addMinutes(StartTime, 30) → Data 30 minuti dopo

addSeconds

(date, seconds)

Aggiunge secondi a una data.

Parametri
date date Data di riferimento
seconds number Numero di secondi da aggiungere
Valori restituiti data
Esempi
addSeconds(StartTime, 45) → Data 45 secondi dopo

endOfDay

(date)

Restituisce l’ultimo istante del giorno (23:59:59.999) corrispondente a una data.

Parametri
date date Data di input
Valori restituiti data
Esempi
endOfDay(StartTime) → 23:59:59 dello stesso giorno

startOfQuarter

(date)

Restituisce il primo giorno del trimestre corrispondente a una data.

Parametri
date date Data di input
Valori restituiti data
Esempi
startOfQuarter(StartTime) → 2024-04-01 per una data di giugno

endOfQuarter

(date)

Restituisce l’ultimo istante del trimestre corrispondente a una data.

Parametri
date date Data di input
Valori restituiti data
Esempi
endOfQuarter(StartTime) → 2024-06-30T23:59:59Z per una data di giugno

3. Funzioni logiche

Condizione a più alternative

Confronta un valore con più casi.

switch

(value, match1, result1, ..., default?)

Confronta un valore con un elenco di casi e restituisce il risultato corrispondente. Funziona in modo simile a una serie di condizioni if.

Parametri
value any Valore da confrontare
match1, result1, ... any Coppie di valori da confrontare e risultati
default (facoltativo) any Risultato predefinito se non ci sono corrispondenze (facoltativo)
Valori restituiti qualsiasi
Esempi
switch("a", "a", 1, "b", 2, 0) → 1
switch(Status, "Open", 1, "Closed", 2, 0) → 1 se Open, 2 se Closed, altrimenti 0
Note

Accetta un numero variabile di argomenti: switch(value, match1, result1, match2, result2, ..., default)

Verifica degli intervalli

Verifica se i valori rientrano in un intervallo oppure li limita a un intervallo specificato.

between

(value, low, high)

Restituisce true se un valore è compreso tra il limite inferiore e quello superiore, estremi inclusi.

Parametri
value number Valore da verificare
low number Limite inferiore
high number Limite superiore
Valori restituiti booleano
Esempi
between(5, 1, 10) → true
between(Amount, 100, 1000) → true se Amount è compreso tra 100 e 1000

clamp

(value, min, max)

Limita un valore all’intervallo [min, max].

Parametri
value number Valore da limitare
min number Valore minimo
max number Valore massimo
Valori restituiti numero
Esempi
clamp(15, 0, 10) → 10
clamp(Score, 0, 100) → Score limitato all’intervallo 0-100

Associazione con let

Assegna nomi a valori intermedi da utilizzare nelle espressioni complesse.

let

(name, value, body)

Assegna un valore a un nome, quindi valuta l’espressione principale rendendo disponibile quel nome.

Parametri
name string Nome della variabile (stringa letterale)
value any Espressione da assegnare
body any Espressione che utilizza la variabile assegnata
Valori restituiti qualsiasi
Esempi
let("avg", caseAvg(Amount), Amount - avg) → Scostamento dalla media del caso
let("x", Amount * 2, let("y", x + 3, x * y)) → Associazioni let annidate

4. Funzioni per flussi, attività e SLA

Predicati di precedenza

Verifica se un’attività è preceduta da un’altra attività nel caso.

directlyPrecededBy

(activity, predecessor)

Restituisce true se la seconda attività precede direttamente la prima nel caso.

Parametri
activity string Attività da verificare
predecessor string Attività precedente prevista
Valori restituiti booleano
Esempi
directlyPrecededBy("Approve", "Review") → true se Review precede direttamente Approve
Vedi anche

eventuallyPrecededBy

(activity, predecessor)

Restituisce true se la seconda attività precede la prima nel caso, anche se non immediatamente.

Parametri
activity string Attività da verificare
predecessor string Attività precedente prevista
Valori restituiti booleano
Esempi
eventuallyPrecededBy("Ship", "Order") → true se Order compare prima di Ship nel caso
Vedi anche

Rilevamento delle rilavorazioni

Individua gli schemi di rilavorazione in cui le attività si ripetono all’interno di un caso.

isRework

Property

True se l’attività corrente si è già verificata in precedenza nel caso.

Type boolean

reworkCount

Property

Numero totale di esecuzioni ripetute delle attività nel caso.

Type number

activityOccurrence

Property

Numero di occorrenze di questa attività nel caso: 1 per la prima, 2 per la seconda e così via.

Type number

Query sulle attività

Verifica se le attività compaiono in un caso e ne conta le occorrenze.

hasActivity

(activityName)

Restituisce true se l’attività indicata compare in un punto qualsiasi del caso.

Parametri
activityName string Nome dell’attività da verificare
Valori restituiti booleano
Esempi
hasActivity("Approve") → true se il caso contiene un’attività Approve

activityCount

(activityName)

Restituisce il numero di volte in cui l’attività indicata compare nel caso.

Parametri
activityName string Nome dell’attività da contare
Valori restituiti numero
Esempi
activityCount("Review") → Numero di attività Review nel caso

Tempi tra le attività

Misura il tempo che intercorre tra attività specifiche di un caso.

timeBetween

(activityA, activityB)

Restituisce il tempo tra la prima occorrenza dell’attività A e la prima occorrenza dell’attività B.

Parametri
activityA string Prima attività
activityB string Seconda attività
Valori restituiti numero
Esempi
timeBetween("Submit", "Approve") → Tempo in millisecondi da Submit ad Approve

timeSinceActivity

(activityName)

Tempo trascorso dall’ultima occorrenza dell’attività indicata prima dell’evento corrente.

Parametri
activityName string Nome dell’attività
Valori restituiti numero
Esempi
timeSinceActivity("Start") → Tempo trascorso dall’ultima attività Start

timeToActivity

(activityName)

Tempo che manca alla prossima occorrenza dell’attività indicata dopo l’evento corrente.

Parametri
activityName string Nome dell’attività
Valori restituiti numero
Esempi
timeToActivity("Complete") → Tempo che manca alla prossima attività Complete

Funzioni SLA

Monitora gli accordi sul livello di servizio e rileva le violazioni.

slaBreached

(duration, threshold)

Restituisce true se una durata supera la soglia SLA.

Parametri
duration number Durata effettiva
threshold number Soglia SLA
Valori restituiti booleano
Esempi
slaBreached(100000, 86400000) → false
slaBreached(caseThroughputTime, 86400000) → true se il caso supera lo SLA di 24 ore

slaRemaining

(startDate, slaDuration)

Restituisce il tempo che manca alla violazione dello SLA oppure un valore negativo se lo SLA è già stato violato.

Parametri
startDate date Timestamp di inizio
slaDuration number Durata SLA in millisecondi
Valori restituiti numero
Esempi
slaRemaining(caseStartTime, 172800000) → Tempo rimanente per uno SLA di 48 ore

caseAge

Property

Tempo trascorso dall’inizio del caso, in millisecondi dal primo evento a ora.

Type number

Rilevamento delle ripetizioni consecutive

Rileva e conta le sequenze in cui la stessa attività si ripete consecutivamente.

isSelfLoop

Property

True se l’attività corrente è uguale a quella precedente nel caso.

Type boolean

selfLoopCount

Property

Numero di ripetizioni consecutive della stessa attività nel caso corrente.

Type number

Analisi delle risorse

Rileva i passaggi di consegne e i cambi di risorsa all’interno di un caso.

isResourceChange

(expr)

Restituisce true se il valore dell’espressione è cambiato rispetto all’evento precedente.

Parametri
expr any Espressione di colonna da verificare per rilevare i cambiamenti
Valori restituiti booleano
Esempi
isResourceChange(Resource) → true se la risorsa è diversa da quella dell’evento precedente

resourceHandoffCount

(expr)

Conta i cambiamenti di valore nel caso.

Parametri
expr any Espressione di colonna di cui contare i cambiamenti
Valori restituiti numero
Esempi
resourceHandoffCount(Resource) → 2 per Alice→Alice→Bob→Bob→Alice
Note

Non ancora disponibile nelle espressioni basate su Athena. Per le query del backend, utilizzi isResourceChange(expr) insieme a caseCountIf(...) in un attributo derivato.

5. Statistiche, classifiche e variazioni dei valori

Funzioni di ordinamento

Assegna un rango agli eventi in base ai valori di un’espressione, all’interno di un caso o considerando tutti gli eventi.

caseRank

(expr)

Rango dell’evento corrente nel caso, ordinato in base al valore dell’espressione; i valori a pari merito lasciano dei salti nella numerazione.

Parametri
expr number Espressione da usare per l’ordinamento
Valori restituiti numero
Esempi
caseRank(Amount) → Rango di Amount all’interno del caso

caseDenseRank

(expr)

Rango denso all’interno del caso, senza salti per i valori a pari merito.

Parametri
expr number Espressione da usare per l’ordinamento
Valori restituiti numero
Esempi
caseDenseRank(Amount) → Rango denso di Amount all’interno del caso

allRank

(expr)

Rango calcolato su tutti gli eventi.

Parametri
expr number Espressione da usare per l’ordinamento
Valori restituiti numero
Esempi
allRank(Duration) → Rango globale in base a Duration

allPercentRank

(expr)

Rango percentile calcolato su tutti gli eventi, da 0 a 1.

Parametri
expr number Espressione da usare per l’ordinamento
Valori restituiti numero
Esempi
allPercentRank(Duration) → Rango percentile (0-1)

Rilevamento delle variazioni di valore

Rileva le variazioni di valore tra gli eventi.

changed

(expr)

Restituisce true se il valore dell’espressione è diverso da quello dell’evento precedente.

Parametri
expr any Espressione di cui verificare le variazioni
Valori restituiti booleano
Esempi
changed(Resource) → true se la risorsa è cambiata rispetto all’evento precedente

caseChanges

(expr)

Conta le variazioni di valore in tutti gli eventi del caso.

Parametri
expr any Espressione di cui verificare le variazioni
Valori restituiti numero
Esempi
caseChanges(Resource) → Numero di passaggi di consegne tra risorse nel caso
Note

Non ancora disponibile nelle espressioni basate su Athena. Per le query backend, utilizzi changed(expr) insieme a caseCountIf(...) in un attributo derivato.

Aggregazioni condizionali progressive

Aggregazioni progressive con condizioni, calcolate fino all’evento corrente.

caseRunningSumIf

(expr, condition)

Somma condizionale progressiva fino all’evento corrente.

Parametri
expr number Espressione da sommare
condition boolean Condizione per filtrare gli eventi
Valori restituiti numero
Esempi
caseRunningSumIf(Amount, Status == "Paid") → Somma progressiva di Amount quando Status è Paid

caseRunningCountIf

(condition)

Conteggio condizionale progressivo fino all’evento corrente.

Parametri
condition boolean Condizione da conteggiare
Valori restituiti numero
Esempi
caseRunningCountIf(Activity == "Error") → Conteggio progressivo delle attività Error

caseRunningAvgIf

(expr, condition)

Media condizionale progressiva fino all’evento corrente.

Parametri
expr number Espressione da mediare
condition boolean Condizione per filtrare gli eventi
Valori restituiti numero
Esempi
caseRunningAvgIf(Duration, Priority == "High") → Durata media progressiva degli eventi ad alta priorità

Proprietà del tempo trascorso

Proprietà per misurare l’avanzamento e il tempo trascorso all’interno di un caso.

elapsedSinceStart

Property

Tempo trascorso dall’inizio del caso, in millisecondi.

Type number

remainingInCase

Property

Tempo rimanente alla fine del caso, in millisecondi.

Type number

percentComplete

Property

Avanzamento del caso espresso come frazione da 0 a 1.

Type number

Aggregazioni condizionali estese

Funzioni di aggregazione condizionale aggiuntive per mediana, deviazione standard e conteggi distinti.

caseMedianIf

(expr, condition)

Calcola la mediana condizionale degli eventi del caso per cui la condizione è vera.

Parametri
expr number Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
caseMedianIf(Amount, Activity == "Review") → Importo mediano per le attività Review

allMedianIf

(expr, condition)

Calcola la mediana condizionale di tutti gli eventi per cui la condizione è vera.

Parametri
expr number Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
allMedianIf(Amount, Status == "Complete") → Mediana complessiva degli eventi completati

caseStdDevIf

(expr, condition)

Calcola la deviazione standard condizionale degli eventi del caso.

Parametri
expr number Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
caseStdDevIf(Duration, Activity == "Review") → Deviazione standard della durata delle attività Review nel caso

allStdDevIf

(expr, condition)

Calcola la deviazione standard condizionale di tutti gli eventi.

Parametri
expr number Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
allStdDevIf(Amount, Priority == "High") → Deviazione standard complessiva per gli eventi ad alta priorità

caseCountDistinctIf

(expr, condition)

Conta i valori distinti che soddisfano una condizione tra gli eventi del caso.

Parametri
expr any Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
caseCountDistinctIf(Category, Amount > 100) → Categorie distinte con importi elevati

allCountDistinctIf

(expr, condition)

Conta i valori distinti che soddisfano una condizione tra tutti gli eventi.

Parametri
expr any Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
allCountDistinctIf(User, Department == "Sales") → Utenti distinti del reparto vendite

Aggregazioni progressive estese

Funzioni di aggregazione progressiva aggiuntive per mediana, deviazione standard e minimo e massimo condizionali.

caseRunningMedian

(expr)

Mediana progressiva dei valori fino all’evento corrente.

Parametri
expr number Espressione del valore
Valori restituiti numero
Esempi
caseRunningMedian(Amount) → Importo mediano progressivo

caseRunningStdDev

(expr)

Deviazione standard progressiva fino all’evento corrente.

Parametri
expr number Espressione del valore
Valori restituiti numero
Esempi
caseRunningStdDev(Amount) → Deviazione standard progressiva

caseRunningMinIf

(expr, condition)

Minimo condizionale progressivo fino all’evento corrente.

Parametri
expr number Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
caseRunningMinIf(Amount, Activity == "Review") → Importo minimo progressivo per le attività Review

caseRunningMaxIf

(expr, condition)

Massimo condizionale progressivo fino all’evento corrente.

Parametri
expr number Espressione del valore
condition boolean Condizione di filtro
Valori restituiti numero
Esempi
caseRunningMaxIf(Amount, Priority == "High") → Importo massimo progressivo per gli eventi ad alta priorità

6. Funzioni JSON

Estrazione da JSON

Estrae valori da stringhe JSON utilizzando espressioni di percorso.

jsonExtract

(json, path)

Estrae un valore da una stringa JSON utilizzando un’espressione JSONPath.

Parametri
json string Stringa JSON
path string Espressione JSONPath, ad esempio "$.field"
Valori restituiti qualsiasi
Esempi
jsonExtract("{\"name\":\"John\"}", "$.name") → John

jsonValue

(json, path)

Estrae un valore scalare da una stringa JSON e lo restituisce come stringa.

Parametri
json string Stringa JSON
path string Espressione JSONPath
Valori restituiti stringa
Esempi
jsonValue("{\"age\":30}", "$.age") → "30"

jsonArrayLength

(json)

Restituisce la lunghezza di un array JSON.

Parametri
json string Stringa contenente un array JSON
Valori restituiti numero
Esempi
jsonArrayLength("[1,2,3]") → 3

7. Argomenti correlati

Progettazione. Analisi. Miglioramento. Costruisca un’architettura dei processi integrata e mantenga il controllo.

Acceda subito, senza carta di credito né attese. Trasformi il modo in cui opera la Sua organizzazione in una progettazione dei processi chiara e interconnessa.

Definisca l’architettura dei processi, le responsabilità e i controlli, e allinei ruoli e compiti a ogni livello.

Inizi la prova gratuita e crei una base affidabile per governare, gestire e migliorare costantemente i processi della Sua organizzazione.