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 | |
(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 | |
| Valeur renvoyée | date |
| Exemples | startOfWeek(StartTime) → Le lundi de la même semaine |
startOfMonth
(date) Renvoie le premier jour du mois.
| Paramètres | |
| Valeur renvoyée | date |
| Exemples | startOfMonth(StartTime) → Le premier jour du mois |
startOfYear
(date) Renvoie le 1er janvier de l’année.
| Paramètres | |
| Valeur renvoyée | date |
| Exemples | startOfYear(StartTime) → 1er janvier |
endOfWeek
(date) Renvoie la fin de la semaine, le dimanche à 23:59:59.
| Paramètres | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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 | |
| 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(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(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.
reworkCount
Property Nombre total d’exécutions répétées d’activités dans le cas.
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.
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.
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.
selfLoopCount
Property Nombre de répétitions consécutives de la même activité dans le cas actuel.
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.
remainingInCase
Property Temps restant avant la fin du cas, en millisecondes.
percentComplete
Property Progression dans le cas, exprimée sous forme de fraction de 0 à 1.
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
Sujets associés