Modèle d’article
À propos de Building Expressions
Les expressions sont utilisées dans XM Discover pour filtrer vos données et transformer les champs de données. Par exemple, vous pouvez utiliser des expressions pour modifier le formatage des champs de date, évaluer les données pour les enregistrements vides et effectuer des calculs mathématiques.
Les expressions peuvent contenir 4 composants :
- Constantes: Vous pouvez utiliser des nombres constants, des chaînes de texte et des dates pour effectuer des opérations mathématiques et de comparaison.
- Champs: Vous pouvez utiliser les champs numériques, de texte et de date disponibles via un connecteur de données spécifique pour effectuer des opérations mathématiques et de comparaison sur ces champs.
- Fonctions: Vous pouvez utiliser des fonctions pour effectuer des transformations sur vos champs et vos constantes.
- Opérateurs: Vous pouvez utiliser les opérateurs pour effectuer des opérations mathématiques et comparer vos champs et constantes.
Constantes
Les constantes sont des nombres, des chaînes de texte et des dates que vous pouvez utiliser pour effectuer des opérations mathématiques et des comparaisons. Par exemple, vous pouvez utiliser une date constante, telle que la date de lancement de votre enquête CX annuelle, pour calculer l’ancienneté de la réponse d’un participant à l’enquête.
Notes sur l’utilisation des constantes :
- Les chaînes de texte sont sensibles à la casse. Utilisez les fonctions UPPER ou LOWER pour contourner la sensibilité à la casse.
- Les chaînes de texte et les dates doivent être placées entre guillemets.
- Les nombres n’ont pas besoin de guillemets (un nombre entre guillemets est traité comme du texte).
Champs
Les champs sont les champs de données disponibles dans votre connecteur de données entrantes. Il s’agit de champs numériques, de champs de texte et de champs de date, que vous pouvez utiliser pour effectuer des opérations mathématiques et des comparaisons. Par exemple, si votre ensemble de données contient un champ pour la date d’anniversaire d’un client, vous pouvez calculer l’âge du client.
Pour ajouter un champ, faites-le glisser de la section Champs vers le champ Expression.
Les types de champ sont identifiés par les icônes suivantes :
Fonctions
Vous pouvez utiliser les fonctions numériques, de texte et de date énumérées dans cette liste.
Pour ajouter une fonction, faites-la glisser de la section Fonctions vers le champ Expression.
Les types de fonctions sont identifiés par les icônes suivantes :
ABS
Renvoie la valeur absolue d’un nombre.
Syntaxe : ABS(nombre)
COALESCE
Renvoie la première valeur non nulle d’une liste.
Syntaxe : COALESCE(valeur1, valeur2, valeur3)
PLAFOND
Renvoie la valeur arrondie d’un nombre.
Syntaxe : PLAFOND(nombre)
CONCAT
Réunit plusieurs chaînes de texte en une seule.
Syntaxe : CONCAT(“chaîne 1”, “chaîne 2”, “chaîne 3”)
CONTIENT
Renvoie un résultat positif si une chaîne de texte (“within text”) contient une autre chaîne de texte (“find text”). Sinon, il renvoie un message faux.
Syntaxe : CONTAINS(“dans le texte”, “trouver le texte”)
CONVERT_TO_TIMEZONE
Convertit la date et l’heure d’une zone horaire à une autre.
Syntaxe : CONVERT_TO_TIMEZONE(“date et heure”) CONVERT_TO_TIMEZONE(“date et heure”, “fuseau horaire à convertir à partir de”, “fuseau horaire à convertir en”)
Notes sur le formatage de la date :
- Fournissez les zones horaires en utilisant le nom de leur base de données tz.
- Indiquez la date et l’heure en ISO 8601 ou en format aaaa-mm-jj hh:mm:ss.
- Si la date et l’heure sont fournies avec des informations sur le fuseau horaire, celles-ci sont ignorées au profit du paramètre “fuseau horaire à convertir”.
- La date convertie utilise le format ISO 8601. Utilisez la fonction TODATE si vous avez besoin de changer cela.
DATETONUMBER
Convertit un champ date en timestamp Unix.
Syntaxe : DATETONUMBER(“date”)
DATETOTEXT
Convertit un champ date en une chaîne de date au format demandé.
Syntaxe : DATETOTEXT(“date”, “format de la date”)
JOUR DE LA SEMAINE
Renvoie le jour de la semaine correspondant à une date.
Syntaxe : DAYOFWEEK(“date”)
DYNAMICLOOKUP
Remplace les valeurs des champs à l’aide d’une table de correspondance chargée dynamiquement. Les valeurs de la recherche sont tirées du champ spécifié dans le premier argument (“nom du champ”).
Syntaxe : DYNAMICLOOKUP(“nom de champ”, “valeur”)
ELEMENTOFARRAY
Attribuer la énième valeur d’un tableau, puis faire correspondre les valeurs du tableau à des attributs dans XM Discover.
Syntaxe : ELEMENTOFARRAY([“élément de tableau 1”, “élément de tableau 2”, “élément de tableau 3”], nombre)
Notes :
- Si l’entrée n’est pas un tableau, la fonction génère une erreur.
- Si le nombre est supérieur à la taille d’un tableau, la fonction renvoie null. Les nombres dans l’ordre croissant commencent à partir de 0.
CHAMP
Remplit les noms de champ qui contiennent des espaces ou des points.
Syntaxe : FIELD(“nom de champ”)
FIND
Localise une chaîne de texte (“texte trouvé”) à l’intérieur d’une autre chaîne de texte (“texte dans le texte”) et renvoie le numéro de la position de départ de “texte trouvé” à partir du premier caractère de “texte dans le texte” (en commençant par 1).
Permet de spécifier l’ordre des caractères dans le “texte intérieur” à partir duquel la recherche doit commencer (à partir de 1). Si vous n’indiquez pas le numéro d’ordre, il est supposé être égal à 1.
Renvoie -1 si “find text” n’est pas trouvé dans “within text”
Syntaxe : FIND(“find text”, “within text”, order_number)
FINDFIRST
Localise la première occurrence d’une chaîne de texte (“texte trouvé”) dans une autre chaîne de texte (“texte dans le texte”) et renvoie le numéro de la position de départ de “texte trouvé” à partir du premier caractère de “texte dans le texte” (à partir de 1).
Syntaxe : FINDFIRST(“dans le texte”, “trouver le texte”)
FINDLAST
Localise la dernière occurrence d’une chaîne de texte (“texte trouvé”) dans une autre chaîne de texte (“texte dans le texte”) et renvoie le numéro de la position de départ de “texte trouvé” à partir du premier caractère de “texte dans le texte” (en commençant par 1).
Syntaxe : FINDLAST(“dans le texte”, “trouver le texte”)
SOL
Renvoie la valeur arrondie d’un nombre.
Syntaxe : FLOOR(nombre)
GENERATE_ID
Génère un identifiant unique. Cette fonction ne nécessite pas de paramètres supplémentaires.
Syntaxe : GENERATE_ID()
JOURS D’ARRIVÉE ENTRE LES DEUX
Renvoie le nombre de jours entre deux dates.
Syntaxe : GETDAYSBETWEEN(“date de début”, “date de fin”)
OBTENIR DES HEURES ENTRE
Renvoie le nombre d’heures entre deux dates.
Syntaxe : GETHOURSBETWEEN(“date de début”, “date de fin”)
OBTENIR DES MINUTES ENTRE
Renvoie le nombre de minutes entre deux dates.
Syntaxe : GETMINUTESBETWEEN(“date de début”, “date de fin”)
Si
Renvoie une valeur si l’affirmation est vraie, et une autre valeur si l’affirmation est fausse.
Syntaxe : IF(déclaration, “valeur si vrai”, “valeur si faux”)
ISBLANK
Renvoie TRUE lorsqu’un champ est vide, et FALSE lorsqu’un champ n’est pas vide.
Syntaxe : ISBLANK(“nom de champ”)
JOINARRAY
Réunit un tableau d’éléments en une seule chaîne de caractères avec un délimiteur spécifié.
Synaxe : JOINARRAY(array, delimiter, escape, skipNull, removeDuplicates)
Dans la syntaxe ci-dessus :
- array: tableau de chaînes ou de nombres à joindre.
- delimiter: caractère de délimitation à utiliser pour joindre le tableau.
- escape: si vrai, conserve les éléments entre guillemets.
- skipNull: si c’est vrai, les éléments qui sont nuls sont ignorés.
- removeDuplicated: Si vrai, supprimer les éléments dupliqués.
LEN
Renvoie le nombre de lettres dans une chaîne de texte.
Syntaxe : LEN(“texte”)
Syntaxe : LEN([“texte1”, texte2])
INFÉRIEUR
Convertit le texte en minuscules.
Syntaxe : LOWER(“texte”)
MD5HASH
Applique le hachage MD5 aux données d’entrée pour générer des identifiants uniques basés sur ces données.
Syntaxe : MD5HASH(“texte”) MD5HASH(“texte”)
MID
Renvoie un nombre spécifique de caractères d’une chaîne de texte, à partir de la position spécifiée.
La position (numéro d’ordre) commence à 1.
Syntaxe : MID(“texte”, numéro de commande, nombre de caractères)
MOD
Renvoie le reste lorsqu’un nombre est divisé par un séparateur.
Syntaxe : MOD(nombre, diviseur)
MAINTENANT
Chronomètre la date et l’heure actuelles. Cette fonction ne nécessite pas de paramètres supplémentaires.
Syntaxe : NOW()
NUMBERTODATE
Le timestamp Unix est le nombre de millisecondes qui se sont écoulées depuis le 1er janvier 1970.
Syntaxe : NUMBERTODATE(nombre)
NUMBERTOTEXT
Convertit un nombre en texte.
Syntaxe : NUMBERTOTEXT(nombre)
POW
Renvoie le résultat de x à la puissance de y.
Syntaxe : POW(x, y)
PROPERCASE
Met en majuscule la première lettre d’une chaîne de texte.
Syntaxe : PROPERCASE(“texte”)
Exemple : PROPERCASE(“c’est en forgeant qu’on devient forgeron”) se résout en C’est en forgeant qu’on devient forgeron.
GÉNÉRATEUR DE RANDOMISATION
Renvoie un nombre réel aléatoire compris entre 0 et 1. Cette fonction ne nécessite pas de paramètres supplémentaires.
Syntaxe : GÉNÉRATEUR DE RANDOMISATION()
RANDOMBETWEEN
Renvoie un nombre entier aléatoire entre deux nombres.
Syntaxe : RANDOMBETWEEN(nombre minimum, nombre maximum)
REMOVEHTMLTAGS
Supprime les balises HTML d’une chaîne de texte.
Syntaxe : REMOVEHTMLTAGS(“texte”)
REMPLACER
Remplace une partie d’une chaîne de texte (“ancien texte”) par une chaîne de texte différente (“nouveau texte”) un nombre déterminé de fois (nombre_de_remplacements) en fonction du nombre d’occurrences de “ancien texte” dans “texte” (nombre_d’occurrences).
Syntaxe : REPLACE(“texte”, “ancien texte”, “nouveau texte”, nombre_d’occurrences, sensibilité à la casse, nombre_de_remplacements)
REPLACEBYINDEX
Remplace une partie d’une chaîne de texte (“ancien texte”) par une autre chaîne de texte (“nouveau texte”), en fonction du nombre de caractères spécifié.
La position (numéro d’ordre) commence à 1.
Syntaxe : REPLACE(“ancien texte”, numéro de commande, nombre de caractères, “nouveau texte”)
REMPLACER PAR UN AUTRE
Remplace les valeurs de texte à l’aide d’expressions régulières.
Syntaxe : REPLACEBYREGEXP(“texte”, “expression régulière pour la recherche de motifs”, “expression régulière pour la valeur de remplacement”)
ROND
Renvoie la valeur d’un nombre arrondie à l’entier le plus proche.
Syntaxe : ROUND(nombre)
RECHERCHE
Localise une chaîne de texte (“texte trouvé”) à l’intérieur d’une autre chaîne de texte (“texte dans le texte”) et renvoie le numéro de la position de départ de “texte trouvé” à partir du premier caractère de “texte dans le texte” (en commençant par 1).
Permet de spécifier l’ordre des caractères dans le “texte intérieur” à partir duquel la recherche doit commencer (à partir de 1). Si vous n’indiquez pas le numéro de commande, il est supposé être égal à 1.
Renvoie -1 si “find text” n’est pas trouvé dans “within text”
Syntaxe : SEARCH(“find text”, “within text”, order_number)
SPLIT
Divise une chaîne donnée en un tableau de sous-chaînes en fonction d’un délimiteur spécifié. Cette fonction peut être utilisée comme paramètre des fonctions JOINARRAY ou ELEMENTOFARRAY puisque la valeur de sortie doit être une chaîne de caractères.
Syntaxe : SPLIT(“string_to_split”, “_”)
SUBSTITUTE
Remplace l'”ancien texte” par le “nouveau texte” dans une chaîne de texte.
Permet de spécifier l’occurrence de l'”ancien texte” à remplacer. Si vous spécifiez le numéro d’occurrence, seule cette occurrence de l'”ancien texte” est remplacée. Dans le cas contraire, chaque occurrence de “ancien texte” dans le texte est remplacée par “nouveau texte”
Syntaxe : SUBSTITUTE(“texte”, “ancien texte”, “nouveau texte”, numéro d’occurrence)
SUBSTR
Renvoie une partie d’une chaîne de texte à partir du premier caractère de la chaîne et jusqu’au nombre de caractères spécifié (à partir de 1).
Syntaxe : SUBSTR(“texte”, numéro de commande)
TITLECASE
Met en majuscule la première lettre de chaque mot d’une chaîne de texte.
Syntaxe : TITLECASE(“texte”)
TEXTTODATE
Convertit une chaîne de date en un champ de date au format suivant : AAAA-MM-DDTh:mm:ssZ.
Syntaxe : TEXTTODATE(“date”, “format de date”)
TEXTTONUMBER
Convertit le texte en nombre.
Syntaxe : TEXTTONUMBER(texte)
TRADUCTION
Traduit les données entrantes.
Syntaxe : TRANSLATE (“code de la langue source”, “code de la langue cible”, “texte”).
Notes :
- Cette fonction n’est disponible que pour les comptes disposant d’informations d’identification pour l’API Google Translate
- Pour obtenir la liste complète des codes de langue pris en charge, consultez la documentation de Google Cloud Translation.
TRIMLEFT
Supprime les espaces à l’extrémité gauche d’une chaîne de texte.
Syntaxe : TRIMLEFT(“texte”)
TRIMRIGHT
Supprime les espaces à l’extrémité droite d’une chaîne de texte.
Syntaxe : TRIMRIGHT(“texte”)
SUPÉRIEUR
Convertit le texte en majuscules.
Syntaxe : UPPER(“texte”)
Opérateurs
Vous pouvez utiliser les opérateurs arithmétiques et de comparaison énumérés dans les tableaux suivants.
Opérateurs arithmétiques
Opérateur | Description |
+ | Ajouter |
– | Soustraire ou annuler |
* | Multiplier |
/ | Diviser |
Par exemple, l’expression suivante renvoie la moyenne des deux valeurs numériques.
(NOTE1 + NOTE2) / 2
Opérateurs de comparaison
Opérateur | Description |
== | Égal à |
> ; | Supérieur à |
< ; | Inférieur à |
>= | Supérieur ou égal à |
<= | Inférieur ou égal à |
!= | N’est pas égal à |
Par exemple, l’expression suivante renverra “mauvaise note” lorsque la note est inférieure ou égale à 3, et “bonne note” lorsque la note est supérieure à 3.
IF(RATING <= 3, “mauvaise note”, “bonne note”)
Opérateurs logiques
Utilisez des opérateurs logiques pour spécifier des conditions multiples lorsque vous utilisez la fonction IF ou des filtres de travail.
Opérateur | Description |
et | La condition est vraie si toutes les conditions séparées par “et” sont vraies. |
dans | La condition est vraie s’il existe une correspondance avec l’une des valeurs de la liste.
Syntaxe : in[“valeur 1”, “valeur 2”, “valeur 3”] Astuce : Utilisez cette option au lieu de plusieurs opérateurs “ou”.
|
ou | La condition est vraie si l’une des conditions séparées par “ou” est vraie. |
Par exemple, l’expression suivante renverra “Mediterranean” si le champ COUNTRY contient l’une des valeurs spécifiées. Dans le cas contraire, la technologie de l’information renvoie la mention “non méditerranéen”
IF(LOWER(COUNTRY) in [“france”, “portugal”, “italy”, “spain”, “greece”, “malta”, “cyprus”], “Mediterranean”, “Non-Mediterranean”)
Conseils de syntaxe
Suivez ces conseils pour éviter les expressions non valides :
- Lorsque vous combinez plusieurs fonctions dans une même expression, veillez à ce que le nombre de parenthèses ouvrantes et fermantes corresponde.
Exemple : IF(GETDAYSBETWEEN(feedback_date, response_date) > ; 3, “retardé”, “non retardé”).
- Pour chaque fonction utilisée dans l’expression, tous les arguments requis doivent être présents. Par exemple, la fonction TODATE nécessite à la fois les arguments date et format de date pour fonctionner correctement.
- Veillez à utiliser le bon type de données pris en charge par une fonction ou une opération arithmétique ou de comparaison. Par exemple, la fonction ABS a besoin d’un nombre pour fonctionner correctement et ne fonctionnera pas dans un champ de texte ou de date.
- S’il y a des points (“.”) dans votre expression, entourez-les de la fonction FIELD et de guillemets (simples ou doubles). Par exemple, si vous avez un champ nommé “agentParticipants.0.agentLoginName”, voici comment l’envelopper dans une transformation potentielle :
IF(CONTAINS(LOWER(FIELD(“agentParticipants.0.agentLoginName”)), “bot”), “YES”, “NO”).