Sur cette page

Fonctions avancées

Ces familles de fonctions complètent le langage d’expression. Chaque groupe ci-dessous répertorie ses fonctions, leurs paramètres, leur type de retour et des exemples.

Fonctions de texte et de motifs

Fonctions d’expressions régulières

Fonctions permettant de rechercher et de remplacer des motifs à l’aide d’expressions régulières.

regexMatch

(text, pattern)

Vérifie si une chaîne correspond à un motif d’expression régulière.

Paramètres
text string Chaîne à tester
pattern string Motif de l’expression régulière
Valeur renvoyée booléen
Exemples
regexMatch("abc123", "[0-9]+") true
regexMatch("hello", "^[0-9]+$") false
Voir aussi

regexReplace

(text, pattern, replacement)

Remplace chaque occurrence d’un motif d’expression régulière dans une chaîne.

Paramètres
text string Chaîne d’entrée
pattern string Motif de l’expression régulière à rechercher
replacement string Chaîne de remplacement
Valeur renvoyée string
Exemples
regexReplace("abc123def456", "[0-9]+", "#") abc#def#
regexReplace("hello world", "\s+", " ") hello world
Voir aussi

regexExtract

(text, pattern, group?)

Extrait la première correspondance d’un motif d’expression régulière dans une chaîne. Vous pouvez également extraire un groupe de capture précis.

Paramètres
text string Chaîne d’entrée
pattern string Motif de l’expression régulière
group (facultatif) number Index du groupe de capture, 0 pour la correspondance complète (par défaut: 0)
Valeur renvoyée string
Exemples
regexExtract("abc123def", "[0-9]+") 123
regexExtract("2025-01-15", "(\d{4})-(\d{2})", 1) 2025
Voir aussi

Outils pour les chaînes de caractères

Fonctions supplémentaires de manipulation des chaînes.

repeat

(text, count)

Répète un texte un nombre de fois donné.

Paramètres
text string Texte à répéter
count number Nombre de répétitions
Valeur renvoyée string
Exemples
repeat("ab", 3) "ababab"

countOccurrences

(text, search)

Compte les occurrences non chevauchantes d’une sous-chaîne.

Paramètres
text string Texte dans lequel effectuer la recherche
search string Sous-chaîne à rechercher
Valeur renvoyée number
Exemples
countOccurrences("abcabc", "abc") 2

split

(text, delimiter, index)

Découpe un texte à l’aide d’un séparateur et renvoie la nᵉ partie, en commençant par 1.

Paramètres
text string Texte à découper
delimiter string Séparateur à utiliser
index number Index de la partie à renvoyer, à partir de 1
Valeur renvoyée string
Exemples
split("a-b-c", "-", 2) "b"

exact

(a, b)

Comparaison de chaînes sensible à la casse. Renvoie true si les deux chaînes sont identiques.

Paramètres
a string Première chaîne
b string Deuxième chaîne
Valeur renvoyée boolean
Exemples
exact("Hello", "hello") false

Fonctions d’aide pour les dates et les durées

Fonctions auxiliaires de durée

Convertit les durées en millisecondes dans des unités de temps courantes.

durationInDays

(ms)

Convertit les millisecondes en jours.

Paramètres
ms number Durée en millisecondes
Valeur renvoyée number
Exemples
durationInDays(86400000) 1
durationInDays(caseThroughputTime) Délai de traitement en jours

durationInHours

(ms)

Convertit les millisecondes en heures.

Paramètres
ms number Durée en millisecondes
Valeur renvoyée number
Exemples
durationInHours(3600000) 1
durationInHours(stepDuration) Durée de l’étape en heures

durationInMinutes

(ms)

Convertit les millisecondes en minutes.

Paramètres
ms number Durée en millisecondes
Valeur renvoyée number
Exemples
durationInMinutes(60000) 1
durationInMinutes(waitingTime) Temps d’attente en minutes

durationInSeconds

(ms)

Convertit les millisecondes en secondes.

Paramètres
ms number Durée en millisecondes
Valeur renvoyée number
Exemples
durationInSeconds(1500) 1.5

Construction de dates

Crée des dates à partir de leurs composants ou convertit des chaînes en dates.

date

(year, month, day)

Crée une date UTC à partir d’une année, d’un mois et d’un jour.

Paramètres
year number Année
month number Mois (1-12)
day number Jour du mois
Valeur renvoyée date
Exemples
date(2024, 1, 1) 1704067200000
date(2024, 6, 15) 15 juin 2024

toDate

(value, format?)

Convertit une valeur en date. Accepte des nombres, comme des millisecondes depuis l’époque Unix, ou des chaînes.

Paramètres
value any Valeur à convertir en date
format (facultatif) string Modèle de format de date (facultatif)
Valeur renvoyée date
Exemples
toDate(1704067200000) 1704067200000
toDate("2024-01-15") 15 janvier 2024
toDate("31/12/2024 23:45:59", "dd/MM/yyyy HH:mm:ss") 1735688759000
Remarques

Lorsqu’un format est fourni, utilisez les mêmes jetons pris en charge que pour formatDate. L’analyse est effectuée en UTC.

today

()

Renvoie la date actuelle à minuit UTC.

Valeur renvoyée date
Exemples
today() Date actuelle à minuit

Limites des périodes de dates

Tronque ou arrondit les dates aux limites d’une période.

startOfDay

(date)

Tronque une date au début du jour, à minuit.

Paramètres
date date Date à tronquer
Valeur renvoyée date
Exemples
startOfDay(StartTime) Minuit du même jour

startOfWeek

(date)

Renvoie le début de la semaine, le lundi.

Paramètres
date date La date
Valeur renvoyée date
Exemples
startOfWeek(StartTime) Le lundi de la même semaine

startOfMonth

(date)

Renvoie le premier jour du mois.

Paramètres
date date La date
Valeur renvoyée date
Exemples
startOfMonth(StartTime) Le premier jour du mois

startOfYear

(date)

Renvoie le 1er janvier de l’année.

Paramètres
date date La date
Valeur renvoyée date
Exemples
startOfYear(StartTime) 1er janvier

endOfWeek

(date)

Renvoie la fin de la semaine, le dimanche à 23:59:59.

Paramètres
date date La date
Valeur renvoyée date
Exemples
endOfWeek(StartTime) Fin de journée du dimanche

endOfMonth

(date)

Renvoie la fin du mois à 23:59:59.

Paramètres
date date La date
Valeur renvoyée date
Exemples
endOfMonth(StartTime) Dernier jour du mois, fin de journée

endOfYear

(date)

Renvoie le 31 décembre à 23:59:59.

Paramètres
date date La date
Valeur renvoyée date
Exemples
endOfYear(StartTime) 31 décembre, fin de journée

Raccourcis de date

Fonctions pratiques pour les opérations courantes d’ajout et de calcul de différences entre dates.

daysBetween

(date1, date2)

Renvoie la différence en jours entre deux dates.

Paramètres
date1 date Date de début
date2 date Date de fin
Valeur renvoyée number
Exemples
daysBetween(StartTime, EndTime) Durée en jours entre deux dates

hoursBetween

(date1, date2)

Renvoie la différence en heures entre deux dates.

Paramètres
date1 date Date de début
date2 date Date de fin
Valeur renvoyée number
Exemples
hoursBetween(StartTime, EndTime) Durée en heures entre deux dates

minutesBetween

(date1, date2)

Renvoie la différence en minutes entre deux dates.

Paramètres
date1 date Date de début
date2 date Date de fin
Valeur renvoyée number
Exemples
minutesBetween(StartTime, EndTime) Durée en minutes entre deux dates

secondsBetween

(date1, date2)

Renvoie la différence en secondes entre deux dates.

Paramètres
date1 date Date de début
date2 date Date de fin
Valeur renvoyée number
Exemples
secondsBetween(StartTime, EndTime) Durée en secondes entre deux dates

addDays

(date, days)

Ajoute des jours à une date.

Paramètres
date date Date de référence
days number Nombre de jours à ajouter
Valeur renvoyée date
Exemples
addDays(StartTime, 5) Date cinq jours plus tard

addHours

(date, hours)

Ajoute des heures à une date.

Paramètres
date date Date de référence
hours number Nombre d’heures à ajouter
Valeur renvoyée date
Exemples
addHours(StartTime, 3) Date trois heures plus tard

addMinutes

(date, minutes)

Ajoute des minutes à une date.

Paramètres
date date Date de référence
minutes number Nombre de minutes à ajouter
Valeur renvoyée date
Exemples
addMinutes(StartTime, 30) Date trente minutes plus tard

addSeconds

(date, seconds)

Ajoute des secondes à une date.

Paramètres
date date Date de référence
seconds number Nombre de secondes à ajouter
Valeur renvoyée date
Exemples
addSeconds(StartTime, 45) Date quarante-cinq secondes plus tard

endOfDay

(date)

Renvoie la fin de la journée, 23:59:59.999, pour une date donnée.

Paramètres
date date Date d’entrée
Valeur renvoyée date
Exemples
endOfDay(StartTime) 23:59:59 le même jour

startOfQuarter

(date)

Renvoie le premier jour du trimestre correspondant à une date donnée.

Paramètres
date date Date d’entrée
Valeur renvoyée date
Exemples
startOfQuarter(StartTime) 2024-04-01 pour une date de juin

endOfQuarter

(date)

Renvoie le dernier instant du trimestre pour une date donnée.

Paramètres
date date Date d’entrée
Valeur renvoyée date
Exemples
endOfQuarter(StartTime) 2024-06-30T23:59:59Z pour une date de juin

Fonctions d’aide logique

Conditionnelle à choix multiples

Compare une valeur à plusieurs cas.

switch

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

Compare une valeur à une liste de cas et renvoie le résultat correspondant. Fonction similaire à une instruction if à plusieurs branches.

Paramètres
value any Valeur à comparer
match1, result1, ... any Paires de valeurs comparées et de résultats
default (facultatif) any Résultat par défaut si aucune correspondance, facultatif
Valeur renvoyée any
Exemples
switch("a", "a", 1, "b", 2, 0) 1
switch(Status, "Open", 1, "Closed", 2, 0) 1 si Open, 2 si Closed, sinon 0
Remarques

Accepte un nombre variable d’arguments : switch(value, match1, result1, match2, result2, ..., default)

Vérification d’intervalle

Vérifie si les valeurs se situent dans des intervalles ou les limite à une plage.

between

(value, low, high)

Renvoie true si une valeur est comprise entre low et high, bornes incluses.

Paramètres
value number Valeur à vérifier
low number Borne inférieure
high number Borne supérieure
Valeur renvoyée boolean
Exemples
between(5, 1, 10) true
between(Amount, 100, 1000) true si Amount est compris entre 100 et 1000

clamp

(value, min, max)

Limite une valeur à l’intervalle [min, max].

Paramètres
value number Valeur à limiter
min number Valeur minimale
max number Valeur maximale
Valeur renvoyée number
Exemples
clamp(15, 0, 10) 10
clamp(Score, 0, 100) Score limité à l’intervalle 0-100

Liaison let

Associe des valeurs intermédiaires à des noms afin de les utiliser dans des expressions complexes.

let

(name, value, body)

Associe une valeur à un nom et évalue l’expression du corps avec cette association disponible.

Paramètres
name string Nom de variable, littéral de chaîne
value any Expression à associer
body any Expression utilisant la variable associée
Valeur renvoyée any
Exemples
let("avg", caseAvg(Amount), Amount - avg) Écart par rapport à la moyenne du cas
let("x", Amount * 2, let("y", x + 3, x * y)) Associations let imbriquées

Fonctions de flux, d’activités et de SLA

Prédicats de précédence

Vérifie si des activités sont précédées par d’autres activités dans un cas.

directlyPrecededBy

(activity, predecessor)

Renvoie true si la première activité est précédée directement par la seconde dans le cas.

Paramètres
activity string Activité à vérifier
predecessor string Activité prédécesseur attendue
Valeur renvoyée boolean
Exemples
directlyPrecededBy("Approve", "Review") true si Review précède directement Approve
Voir aussi

eventuallyPrecededBy

(activity, predecessor)

Renvoie true si la première activité est précédée ultérieurement par la seconde dans le cas.

Paramètres
activity string Activité à vérifier
predecessor string Activité prédécesseur attendue
Valeur renvoyée boolean
Exemples
eventuallyPrecededBy("Ship", "Order") true si Order apparaît avant Ship dans le cas
Voir aussi

Détection des reprises

Identifie les schémas de reprise dans lesquels des activités se répètent au sein d’un cas.

isRework

Property

True si l’activité actuelle a déjà eu lieu dans le cas.

Type boolean

reworkCount

Property

Nombre total d’exécutions répétées d’activités dans le cas.

Type number

activityOccurrence

Property

Numéro d’occurrence de cette activité dans le cas : 1 pour la première fois, 2 pour la deuxième, et ainsi de suite.

Type number

Requêtes sur les activités

Interroge la présence et le nombre d’occurrences d’activités dans un cas.

hasActivity

(activityName)

Renvoie true si l’activité indiquée apparaît à un moment quelconque dans le cas.

Paramètres
activityName string Nom de l’activité à vérifier
Valeur renvoyée boolean
Exemples
hasActivity("Approve") true si le cas contient une activité Approve

activityCount

(activityName)

Renvoie le nombre d’occurrences de l’activité indiquée dans le cas.

Paramètres
activityName string Nom de l’activité à compter
Valeur renvoyée number
Exemples
activityCount("Review") Nombre d’activités Review dans le cas

Minutage entre activités

Mesure le temps écoulé entre des activités précises d’un cas.

timeBetween

(activityA, activityB)

Renvoie le temps écoulé entre la première occurrence de l’activité A et la première occurrence de l’activité B.

Paramètres
activityA string Première activité
activityB string Deuxième activité
Valeur renvoyée number
Exemples
timeBetween("Submit", "Approve") Temps en ms entre Submit et Approve

timeSinceActivity

(activityName)

Temps écoulé depuis la dernière occurrence de l’activité indiquée avant l’événement actuel.

Paramètres
activityName string Nom de l’activité
Valeur renvoyée number
Exemples
timeSinceActivity("Start") Temps écoulé depuis la dernière activité Start

timeToActivity

(activityName)

Temps restant avant la prochaine occurrence de l’activité indiquée après l’événement actuel.

Paramètres
activityName string Nom de l’activité
Valeur renvoyée number
Exemples
timeToActivity("Complete") Temps restant avant la prochaine activité Complete

Fonctions SLA

Suivi des Service Level Agreements et détection des dépassements.

slaBreached

(duration, threshold)

Renvoie true si une durée dépasse le seuil du SLA.

Paramètres
duration number Durée réelle
threshold number Seuil du SLA
Valeur renvoyée boolean
Exemples
slaBreached(100000, 86400000) false
slaBreached(caseThroughputTime, 86400000) true si le cas dépasse le SLA de 24 heures

slaRemaining

(startDate, slaDuration)

Renvoie le temps restant avant le dépassement d’un SLA, ou une valeur négative une fois le seuil dépassé.

Paramètres
startDate date Horodatage de début
slaDuration number Durée du SLA en millisecondes
Valeur renvoyée number
Exemples
slaRemaining(caseStartTime, 172800000) Temps restant pour un SLA de 48 heures

caseAge

Property

Temps écoulé depuis le début du cas, en millisecondes entre le premier événement et l’instant présent.

Type number

Détection des boucles sur elles-mêmes

Détecte et compte les schémas de boucle sur eux-mêmes, lorsque la même activité se répète consécutivement.

isSelfLoop

Property

Vrai si l’activité actuelle est identique à l’activité précédente du cas.

Type boolean

selfLoopCount

Property

Nombre de répétitions consécutives de la même activité dans le cas actuel.

Type number

Analyse des ressources

Détecte les transferts et les changements de Ressources au sein d’un cas.

isResourceChange

(expr)

Renvoie true si la valeur de l’expression a changé depuis l’événement précédent.

Paramètres
expr any Expression de colonne à vérifier pour détecter les changements
Valeur renvoyée boolean
Exemples
isResourceChange(Resource) true lorsque la Ressource diffère de celle de l’événement précédent

resourceHandoffCount

(expr)

Compte les changements de valeur dans l’ensemble du cas.

Paramètres
expr any Expression de colonne dont vous souhaitez compter les changements
Valeur renvoyée number
Exemples
resourceHandoffCount(Resource) 2 pour Alice→Alice→Bob→Bob→Alice
Remarques

Pas encore disponible dans les expressions reposant sur Athena. Pour les requêtes backend, utilisez isResourceChange(expr) avec caseCountIf(...) dans un attribut dérivé.

Statistiques, classement et changements de valeur

Fonctions de classement

Classe les événements selon les valeurs d’une expression, dans un cas ou sur l’ensemble des événements.

caseRank

(expr)

Rang de l’événement actuel dans le cas, selon la valeur de l’expression, avec des rangs identiques en cas d’égalité.

Paramètres
expr number Expression utilisée pour le classement
Valeur renvoyée number
Exemples
caseRank(Amount) Rang selon Amount dans le cas

caseDenseRank

(expr)

Rang dense dans le cas, sans saut en cas d’égalité.

Paramètres
expr number Expression utilisée pour le classement
Valeur renvoyée number
Exemples
caseDenseRank(Amount) Rang dense selon Amount dans le cas

allRank

(expr)

Classement sur l’ensemble des événements.

Paramètres
expr number Expression utilisée pour le classement
Valeur renvoyée number
Exemples
allRank(Duration) Rang global selon Duration

allPercentRank

(expr)

Rang en percentile sur l’ensemble des événements, de 0 à 1.

Paramètres
expr number Expression utilisée pour le classement
Valeur renvoyée number
Exemples
allPercentRank(Duration) Rang en percentile (0-1)

Détection des changements de valeur

Détecte les changements de valeur entre les événements.

changed

(expr)

Renvoie true si la valeur de l’expression diffère de celle de l’événement précédent.

Paramètres
expr any Expression à vérifier
Valeur renvoyée boolean
Exemples
changed(Resource) true si la ressource a changé depuis l’événement précédent

caseChanges

(expr)

Compte les changements de valeur sur l’ensemble des événements du cas.

Paramètres
expr any Expression à vérifier pour détecter les changements
Valeur renvoyée number
Exemples
caseChanges(Resource) Nombre de transferts de ressources dans le cas
Remarques

Pas encore disponible dans les expressions basées sur Athena. Pour les requêtes backend, utilisez changed(expr) avec caseCountIf(...) dans un attribut dérivé.

Agrégations cumulées conditionnelles

Agrégations cumulées avec conditions, calculées jusqu’à l’événement actuel.

caseRunningSumIf

(expr, condition)

Somme conditionnelle cumulée jusqu’à l’événement actuel.

Paramètres
expr number Expression à additionner
condition boolean Condition de filtrage des événements
Valeur renvoyée number
Exemples
caseRunningSumIf(Amount, Status == "Paid") Somme cumulée de Amount lorsque Status vaut Paid

caseRunningCountIf

(condition)

Comptage conditionnel cumulé jusqu’à l’événement actuel.

Paramètres
condition boolean Condition à compter
Valeur renvoyée number
Exemples
caseRunningCountIf(Activity == "Error") Nombre cumulé d’activités Error

caseRunningAvgIf

(expr, condition)

Moyenne conditionnelle cumulée jusqu’à l’événement actuel.

Paramètres
expr number Expression dont calculer la moyenne
condition boolean Condition de filtrage des événements
Valeur renvoyée number
Exemples
caseRunningAvgIf(Duration, Priority == "High") Durée moyenne cumulée des événements hautement prioritaires

Propriétés du temps écoulé

Propriétés permettant de mesurer la progression et le temps écoulé au sein d’un cas.

elapsedSinceStart

Property

Temps écoulé depuis le début du cas, en millisecondes.

Type number

remainingInCase

Property

Temps restant avant la fin du cas, en millisecondes.

Type number

percentComplete

Property

Progression dans le cas, exprimée sous forme de fraction de 0 à 1.

Type number

Agrégations conditionnelles étendues

Fonctions d’agrégation conditionnelle supplémentaires pour la médiane, l’écart type et les comptes de valeurs distinctes.

caseMedianIf

(expr, condition)

Médiane conditionnelle des événements du cas pour lesquels la condition est vraie.

Paramètres
expr number Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
caseMedianIf(Amount, Activity == "Review") Montant médian des activités Review

allMedianIf

(expr, condition)

Médiane conditionnelle de tous les événements pour lesquels la condition est vraie.

Paramètres
expr number Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
allMedianIf(Amount, Status == "Complete") Médiane globale des événements terminés

caseStdDevIf

(expr, condition)

Écart type conditionnel des événements du cas.

Paramètres
expr number Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
caseStdDevIf(Duration, Activity == "Review") Écart type des durées Review dans le cas

allStdDevIf

(expr, condition)

Écart type conditionnel de tous les événements.

Paramètres
expr number Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
allStdDevIf(Amount, Priority == "High") Écart type global pour les priorités élevées

caseCountDistinctIf

(expr, condition)

Compte conditionnel des valeurs distinctes parmi les événements du cas.

Paramètres
expr any Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
caseCountDistinctIf(Category, Amount > 100) Catégories distinctes associées à des montants élevés

allCountDistinctIf

(expr, condition)

Compte conditionnel des valeurs distinctes parmi tous les événements.

Paramètres
expr any Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
allCountDistinctIf(User, Department == "Sales") Utilisateurs distincts du service commercial

Agrégations cumulées étendues

Fonctions d’agrégation cumulée supplémentaires pour la médiane, l’écart type, ainsi que les minimums et maximums conditionnels.

caseRunningMedian

(expr)

Médiane cumulée des valeurs jusqu’à l’événement actuel.

Paramètres
expr number Expression de valeur
Valeur renvoyée number
Exemples
caseRunningMedian(Amount) Montant médian cumulé

caseRunningStdDev

(expr)

Écart type cumulé jusqu’à l’événement actuel.

Paramètres
expr number Expression de valeur
Valeur renvoyée number
Exemples
caseRunningStdDev(Amount) Écart type cumulé

caseRunningMinIf

(expr, condition)

Minimum conditionnel cumulé jusqu’à l’événement actuel.

Paramètres
expr number Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
caseRunningMinIf(Amount, Activity == "Review") Minimum cumulé des montants Review

caseRunningMaxIf

(expr, condition)

Maximum conditionnel cumulé jusqu’à l’événement actuel.

Paramètres
expr number Expression de valeur
condition boolean Condition de filtrage
Valeur renvoyée number
Exemples
caseRunningMaxIf(Amount, Priority == "High") Maximum cumulé pour les priorités élevées

Fonctions JSON

Extraction JSON

Extrait des valeurs de chaînes JSON à l’aide d’expressions de chemin.

jsonExtract

(json, path)

Extrait une valeur d’une chaîne JSON à l’aide d’une expression JSONPath.

Paramètres
json string Chaîne JSON
path string Expression JSONPath, par exemple « $.field »
Valeur renvoyée any
Exemples
jsonExtract("{\"name\":\"John\"}", "$.name") John

jsonValue

(json, path)

Extrait une valeur scalaire d’une chaîne JSON sous forme de chaîne.

Paramètres
json string Chaîne JSON
path string Expression JSONPath
Valeur renvoyée string
Exemples
jsonValue("{\"age\":30}", "$.age") "30"

jsonArrayLength

(json)

Renvoie la longueur d’un tableau JSON.

Paramètres
json string Chaîne représentant un tableau JSON
Valeur renvoyée number
Exemples
jsonArrayLength("[1,2,3]") 3

Sujets associés