In questa pagina

Funzioni avanzate

Queste famiglie di funzioni completano il linguaggio delle espressioni. Ogni gruppo seguente elenca le funzioni con i relativi parametri, il tipo restituito e alcuni esempi.

Funzioni di testo e pattern

Funzioni per espressioni regolari

Funzioni per individuare e sostituire pattern mediante espressioni regolari.

regexMatch

(text, pattern)

Verifica se una stringa corrisponde a un pattern di espressione regolare.

Parametri
text string Stringa da verificare
pattern string Pattern dell'espressione regolare
Valore restituito booleano
Esempi
regexMatch("abc123", "[0-9]+") true
regexMatch("hello", "^[0-9]+$") false
Vedi anche

regexReplace

(text, pattern, replacement)

Sostituisce ogni occorrenza di un pattern di espressione regolare all'interno di una stringa.

Parametri
text string Stringa di input
pattern string Pattern dell'espressione regolare da individuare
replacement string Stringa sostitutiva
Valore restituito stringa
Esempi
regexReplace("abc123def456", "[0-9]+", "#") abc#def#
regexReplace("hello world", "\s+", " ") hello world
Vedi anche

regexExtract

(text, pattern, group?)

Estrae la prima corrispondenza di un pattern di espressione regolare da una stringa. È inoltre possibile estrarre uno specifico gruppo di cattura.

Parametri
text string Stringa di input
pattern string Pattern dell'espressione regolare
group (opzionale) number Indice del gruppo di cattura, 0 per la corrispondenza completa (predefinito: 0)
Valore restituito stringa
Esempi
regexExtract("abc123def", "[0-9]+") 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) 2025
Vedi anche

Utilità per le stringhe

Funzioni aggiuntive per la manipolazione delle stringhe.

repeat

(text, count)

Ripete il testo per un numero di volte specificato.

Parametri
text string Testo da ripetere
count number Numero di ripetizioni
Valore restituito string
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
Valore restituito number
Esempi
countOccurrences("abcabc", "abc") 2

split

(text, delimiter, index)

Divide il testo in base a un delimitatore e restituisce la parte n, a partire da 1.

Parametri
text string Testo da dividere
delimiter string Delimitatore da utilizzare
index number Indice della parte da restituire, a partire da 1
Valore restituito string
Esempi
split("a-b-c", "-", 2) "b"

exact

(a, b)

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

Parametri
a string Prima stringa
b string Seconda stringa
Valore restituito boolean
Esempi
exact("Hello", "hello") false

Funzioni di supporto per date e durate

Funzioni di supporto per le durate

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

durationInDays

(ms)

Converte i millisecondi in giorni.

Parametri
ms number Durata in millisecondi
Valore restituito number
Esempi
durationInDays(86400000) 1
durationInDays(caseThroughputTime) Tempo di attraversamento in giorni

durationInHours

(ms)

Converte i millisecondi in ore.

Parametri
ms number Durata in millisecondi
Valore restituito number
Esempi
durationInHours(3600000) 1
durationInHours(stepDuration) Durata del passaggio in ore

durationInMinutes

(ms)

Converte i millisecondi in minuti.

Parametri
ms number Durata in millisecondi
Valore restituito number
Esempi
durationInMinutes(60000) 1
durationInMinutes(waitingTime) Tempo di attesa in minuti

durationInSeconds

(ms)

Converte i millisecondi in secondi.

Parametri
ms number Durata in millisecondi
Valore restituito number
Esempi
durationInSeconds(1500) 1.5

Creazione delle date

Crea date a partire da singole componenti o analizza stringhe trasformandole in date.

date

(year, month, day)

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

Parametri
year number L'anno
month number Il mese (1-12)
day number Il giorno del mese
Valore restituito data
Esempi
date(2024, 1, 1) 1704067200000
date(2024, 6, 15) 15 giugno 2024

toDate

(value, format?)

Analizza un valore trasformandolo in una data. Accetta numeri, come i millisecondi dall'epoch, oppure stringhe.

Parametri
value any Il valore da convertire in una data
format (opzionale) string Modello di formato della data (facoltativo)
Valore restituito 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

Quando viene fornito un formato, utilizzi gli stessi token supportati da formatDate. L'analisi si basa sull'ora UTC.

today

()

Restituisce la data corrente a mezzanotte UTC.

Valore restituito data
Esempi
today() Data corrente a mezzanotte

Limiti dei periodi di data

Tronca o arrotonda le date ai limiti dei periodi.

startOfDay

(date)

Tronca una data all'inizio del giorno, a mezzanotte.

Parametri
date date La data da troncare
Valore restituito data
Esempi
startOfDay(StartTime) Mezzanotte dello stesso giorno

startOfWeek

(date)

Restituisce l'inizio della settimana, lunedì.

Parametri
date date La data
Valore restituito data
Esempi
startOfWeek(StartTime) Lunedì della stessa settimana

startOfMonth

(date)

Restituisce il primo giorno del mese.

Parametri
date date La data
Valore restituito data
Esempi
startOfMonth(StartTime) Primo giorno del mese

startOfYear

(date)

Restituisce il 1° gennaio dell'anno.

Parametri
date date La data
Valore restituito data
Esempi
startOfYear(StartTime) 1° gennaio

endOfWeek

(date)

Restituisce la fine della settimana, domenica alle 23:59:59.

Parametri
date date La data
Valore restituito data
Esempi
endOfWeek(StartTime) Fine della giornata di domenica

endOfMonth

(date)

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

Parametri
date date La data
Valore restituito data
Esempi
endOfMonth(StartTime) Ultimo giorno del mese, fine della giornata

endOfYear

(date)

Restituisce il 31 dicembre alle 23:59:59.

Parametri
date date La data
Valore restituito data
Esempi
endOfYear(StartTime) 31 dicembre, fine della giornata

Scorciatoie per le date

Funzioni pratiche per le operazioni più comuni di calcolo della differenza e dell'aggiunta di date.

daysBetween

(date1, date2)

Restituisce la differenza in giorni tra due date.

Parametri
date1 date Data di inizio
date2 date Data di fine
Valore restituito number
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
Valore restituito number
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
Valore restituito number
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
Valore restituito number
Esempi
secondsBetween(StartTime, EndTime) Durata in secondi tra due date

addDays

(date, days)

Aggiunge giorni a una data.

Parametri
date date Data di base
days number Numero di giorni da aggiungere
Valore restituito data
Esempi
addDays(StartTime, 5) Data di 5 giorni successiva

addHours

(date, hours)

Aggiunge ore a una data.

Parametri
date date Data di base
hours number Numero di ore da aggiungere
Valore restituito data
Esempi
addHours(StartTime, 3) Data di 3 ore successiva

addMinutes

(date, minutes)

Aggiunge minuti a una data.

Parametri
date date Data di base
minutes number Numero di minuti da aggiungere
Valore restituito data
Esempi
addMinutes(StartTime, 30) Data di 30 minuti successiva

addSeconds

(date, seconds)

Aggiunge secondi a una data.

Parametri
date date Data di base
seconds number Numero di secondi da aggiungere
Valore restituito data
Esempi
addSeconds(StartTime, 45) Data di 45 secondi successiva

endOfDay

(date)

Restituisce la fine della giornata, 23:59:59.999, per una determinata data.

Parametri
date date Data di input
Valore restituito data
Esempi
endOfDay(StartTime) 23:59:59 dello stesso giorno

startOfQuarter

(date)

Restituisce il primo giorno del trimestre per una determinata data.

Parametri
date date Data di input
Valore restituito data
Esempi
startOfQuarter(StartTime) 2024-04-01 per una data di giugno

endOfQuarter

(date)

Restituisce l'ultimo istante del trimestre per una determinata data.

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

Funzioni di supporto per la logica

Condizionale a più rami

Confronta un valore con più casi.

switch

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

Confronta un valore con un elenco di casi e restituisce il risultato corrispondente. È simile a un'istruzione if a più rami.

Parametri
value any Valore da confrontare
match1, result1, ... any Coppie di valori di confronto e risultati
default (opzionale) any Risultato predefinito se non viene trovata alcuna corrispondenza, facoltativo
Valore restituito 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 argomenti variadici: switch(value, match1, result1, match2, result2, ..., default)

Controllo degli intervalli

Verifica se i valori rientrano in determinati intervalli o li limita.

between

(value, low, high)

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

Parametri
value number Valore da verificare
low number Limite inferiore
high number Limite superiore
Valore restituito boolean
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
Valore restituito number
Esempi
clamp(15, 0, 10) 10
clamp(Score, 0, 100) Score limitato all'intervallo 0-100

Associazione let

Associa valori intermedi a nomi da utilizzare in espressioni complesse.

let

(name, value, body)

Associa un valore a un nome e valuta l'espressione del corpo rendendo disponibile tale associazione.

Parametri
name string Nome della variabile, stringa letterale
value any Espressione da associare
body any Espressione che utilizza la variabile associata
Valore restituito 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

Funzioni per flussi, attività e SLA

Predicati di precedenza

Verifica se le attività sono precedute da altre attività in un caso.

directlyPrecededBy

(activity, predecessor)

Restituisce true se la prima attività è preceduta direttamente dalla seconda attività nel caso.

Parametri
activity string L'attività da verificare
predecessor string L'attività predecessore prevista
Valore restituito boolean
Esempi
directlyPrecededBy("Approve", "Review") true se Review precede direttamente Approve
Vedi anche

eventuallyPrecededBy

(activity, predecessor)

Restituisce true se la prima attività è preceduta successivamente dalla seconda attività nel caso.

Parametri
activity string L'attività da verificare
predecessor string L'attività predecessore prevista
Valore restituito boolean
Esempi
eventuallyPrecededBy("Ship", "Order") true se Order compare prima di Ship nel caso
Vedi anche

Rilevamento delle rilavorazioni

Identifica i pattern di rilavorazione in cui le attività si ripetono all'interno di un caso.

isRework

Property

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

Type boolean

reworkCount

Property

Numero totale di esecuzioni ripetute delle attività nel caso.

Type number

activityOccurrence

Property

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

Type number

Query sulle attività

Verifica la presenza delle attività e ne conta le occorrenze all'interno di un caso.

hasActivity

(activityName)

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

Parametri
activityName string Nome dell'attività da verificare
Valore restituito boolean
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
Valore restituito number
Esempi
activityCount("Review") Numero di attività Review nel caso

Temporizzazione tra attività

Misura il tempo tra attività specifiche all'interno 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à
Valore restituito number
Esempi
timeBetween("Submit", "Approve") Tempo in ms da Submit ad Approve

timeSinceActivity

(activityName)

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

Parametri
activityName string Nome dell'attività
Valore restituito number
Esempi
timeSinceActivity("Start") Tempo trascorso dall'ultima attività Start

timeToActivity

(activityName)

Tempo che manca alla successiva occorrenza dell'attività indicata dopo l'evento corrente.

Parametri
activityName string Nome dell'attività
Valore restituito number
Esempi
timeToActivity("Complete") Tempo che manca alla successiva attività Complete

Funzioni SLA

Monitoraggio degli SLA e rilevamento delle violazioni.

slaBreached

(duration, threshold)

Restituisce true se una durata supera la soglia SLA.

Parametri
duration number Durata effettiva
threshold number Soglia SLA
Valore restituito boolean
Esempi
slaBreached(100000, 86400000) false
slaBreached(caseThroughputTime, 86400000) true se il caso supera lo SLA di 24 ore

slaRemaining

(startDate, slaDuration)

Restituisce il tempo rimanente prima della violazione dello SLA oppure un valore negativo dopo la violazione.

Parametri
startDate date Timestamp di inizio
slaDuration number Durata SLA in millisecondi
Valore restituito number
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 fino a questo momento.

Type number

Rilevamento dei cicli su se stessi

Rileva e conta i pattern di auto-loop in cui la stessa attività si verifica 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 cambiamenti delle risorse all'interno di un caso.

isResourceChange

(expr)

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

Parametri
expr any Espressione della colonna per la quale verificare i cambiamenti
Valore restituito boolean
Esempi
isResourceChange(Resource) true quando la risorsa è diversa rispetto all'evento precedente

resourceHandoffCount

(expr)

Conta i cambiamenti di valore nel caso.

Parametri
expr any Espressione della colonna i cui cambiamenti desidera contare
Valore restituito number
Esempi
resourceHandoffCount(Resource) 2 per Alice→Alice→Bob→Bob→Alice
Note

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

Funzioni statistiche, classificazione e variazioni dei valori

Funzioni di classificazione

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

caseRank

(expr)

Rango dell'evento corrente nel caso, ordinato in base al valore dell'espressione, con posizioni mancanti in presenza di ex aequo.

Parametri
expr number Espressione in base alla quale assegnare il rango
Valore restituito number
Esempi
caseRank(Amount) Rango in base ad Amount all'interno del caso

caseDenseRank

(expr)

Rango denso all'interno del caso, senza posizioni mancanti in presenza di ex aequo.

Parametri
expr number Espressione in base alla quale assegnare il rango
Valore restituito number
Esempi
caseDenseRank(Amount) Rango denso in base ad Amount all'interno del caso

allRank

(expr)

Rango tra tutti gli eventi.

Parametri
expr number Espressione in base alla quale assegnare il rango
Valore restituito number
Esempi
allRank(Duration) Rango globale in base a Duration

allPercentRank

(expr)

Rango percentuale tra tutti gli eventi, da 0 a 1.

Parametri
expr number Espressione in base alla quale assegnare il rango
Valore restituito number
Esempi
allPercentRank(Duration) Rango percentile (0-1)

Rilevamento delle variazioni di valore

Rileva quando i valori cambiano tra un evento e l'altro.

changed

(expr)

Restituisce true se il valore dell'espressione differisce da quello dell'evento precedente.

Parametri
expr any Espressione per cui verificare il cambiamento
Valore restituito boolean
Esempi
changed(Resource) true se la risorsa è cambiata rispetto all'evento precedente

caseChanges

(expr)

Conta i cambiamenti di valore tra tutti gli eventi del caso.

Parametri
expr any Espressione per cui verificare i cambiamenti
Valore restituito number
Esempi
caseChanges(Resource) Numero di passaggi di consegna della risorsa 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.

Funzioni di aggregazione progressiva condizionale

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
Valore restituito number
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
Valore restituito number
Esempi
caseRunningCountIf(Activity == "Error") Conteggio progressivo delle attività Error

caseRunningAvgIf

(expr, condition)

Media condizionale progressiva fino all'evento corrente.

Parametri
expr number Espressione di cui calcolare la media
condition boolean Condizione per filtrare gli eventi
Valore restituito number
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'avvio del caso, in millisecondi.

Type number

remainingInCase

Property

Tempo rimanente fino alla conclusione del caso, in millisecondi.

Type number

percentComplete

Property

Avanzamento nel caso espresso come frazione, da 0 a 1.

Type number

Funzioni di aggregazione condizionale estese

Funzioni aggregate condizionali aggiuntive per mediana, deviazione standard e conteggi distinti.

caseMedianIf

(expr, condition)

Mediana condizionale tra gli eventi del caso per i quali la condizione è true.

Parametri
expr number Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
caseMedianIf(Amount, Activity == "Review") Importo mediano per le attività Review

allMedianIf

(expr, condition)

Mediana condizionale tra tutti gli eventi per i quali la condizione è true.

Parametri
expr number Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
allMedianIf(Amount, Status == "Complete") Mediana globale per gli eventi completati

caseStdDevIf

(expr, condition)

Deviazione standard condizionale tra gli eventi del caso.

Parametri
expr number Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
caseStdDevIf(Duration, Activity == "Review") Deviazione standard delle durate Review nel caso

allStdDevIf

(expr, condition)

Deviazione standard condizionale tra tutti gli eventi.

Parametri
expr number Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
allStdDevIf(Amount, Priority == "High") Deviazione standard globale per la priorità alta

caseCountDistinctIf

(expr, condition)

Conteggio condizionale dei valori distinti tra gli eventi del caso.

Parametri
expr any Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
caseCountDistinctIf(Category, Amount > 100) Categorie distinte con importi elevati

allCountDistinctIf

(expr, condition)

Conteggio condizionale dei valori distinti tra tutti gli eventi.

Parametri
expr any Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
allCountDistinctIf(User, Department == "Sales") Utenti distinti nel reparto Sales

Funzioni di aggregazione progressiva estese

Funzioni aggregate progressive aggiuntive per mediana, deviazione standard e valori minimi e massimi condizionali.

caseRunningMedian

(expr)

Mediana progressiva dei valori fino all'evento corrente.

Parametri
expr number Espressione del valore
Valore restituito number
Esempi
caseRunningMedian(Amount) Importo mediano progressivo

caseRunningStdDev

(expr)

Deviazione standard progressiva fino all'evento corrente.

Parametri
expr number Espressione del valore
Valore restituito number
Esempi
caseRunningStdDev(Amount) Deviazione standard progressiva

caseRunningMinIf

(expr, condition)

Valore minimo condizionale progressivo fino all'evento corrente.

Parametri
expr number Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
caseRunningMinIf(Amount, Activity == "Review") Minimo progressivo degli importi Review

caseRunningMaxIf

(expr, condition)

Valore massimo condizionale progressivo fino all'evento corrente.

Parametri
expr number Espressione del valore
condition boolean Condizione del filtro
Valore restituito number
Esempi
caseRunningMaxIf(Amount, Priority == "High") Massimo progressivo per la priorità alta

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"
Valore restituito qualsiasi
Esempi
jsonExtract("{\"name\":\"John\"}", "$.name") John

jsonValue

(json, path)

Estrae un valore scalare da una stringa JSON come stringa.

Parametri
json string Stringa JSON
path string Espressione JSONPath
Valore restituito string
Esempi
jsonValue("{\"age\":30}", "$.age") "30"

jsonArrayLength

(json)

Restituisce la lunghezza di un array JSON.

Parametri
json string Stringa dell'array JSON
Valore restituito number
Esempi
jsonArrayLength("[1,2,3]") 3

Argomenti correlati