Fonctions de mappage de la préparation des données
Les fonctions de préparation de données peuvent être utilisées pour calculer les valeurs en fonction de ce qui est entré dans les champs sources.
Champs
Un nom de champ peut être n’importe quel identifiant légal : une séquence de lettres et de chiffres Unicode à longueur illimitée, commençant par une lettre, le symbole du dollar ($
) ou le caractère de soulignement (_
). Les noms de variables sont également sensibles à la casse.
Si un nom de champ ne respecte pas cette convention, il doit être encapsulé avec ${}
. Ainsi, par exemple, si le nom du champ est "Prénom" ou "Prénom", le nom doit être enveloppé comme ${First Name}
ou ${First\.Name}
, respectivement.
.
), vous devez utiliser une barre oblique inverse (\
) pour échapper les caractères spéciaux. Pour plus d’informations, consultez le guide sur l’ échappement des caractères spéciaux.Si un nom de champ est n’importe lequel des mots-clés réservés suivants, il doit être encapsulé avec ${}{}
:
new, mod, or, break, var, lt, for, false, while, eq, gt, div, not, null, continue, else, and, ne, true, le, if, ge, return, _errors, do, function, empty, size
En outre, les mots-clés réservés incluent également l’une des fonctions du mappeur répertoriées sur cette page.
Les données des sous-champs sont accessibles à l’aide de la notation par points. Par exemple, si un objet name
a été présent, utilisez name.firstName
pour accéder au champ firstName
.
Liste des fonctions
Les tableaux suivants répertorient toutes les fonctions de mappage prises en charge, y compris les exemples d’expressions et les sorties qui en résultent.
Fonctions de chaîne string
- STRING : chaînes qui seront concaténées.
"Hi, there!"
\
: +, ?, ^, |, ., [, (, {, ), *, $, \
Si vous incluez plusieurs caractères comme délimiteur, le délimiteur sera traité comme un délimiteur à plusieurs caractères.- STRING : Required Chaîne devant être partagée.
- REGEX : Optional Expression régulière pouvant être utilisée pour fractionner la chaîne.
["Hi,", "there"]
- INPUT : Obligatoire Chaîne recherchée.
- SUBSTRING : Required La sous-chaîne recherchée dans la chaîne.
- START_POSITION : Facultatif Emplacement où commencer la recherche dans la chaîne.
- OCCURRENCE : Facultatif La nième occurrence à rechercher à partir de la position de départ. Par défaut, elle est définie sur 1.
- INPUT : Obligatoire Chaîne d’entrée.
- TO_FIND : Obligatoire Chaîne à rechercher dans l’entrée.
- TO_REPLACE : Required Chaîne qui remplacera la valeur dans "TO_FIND".
- INPUT : Obligatoire Chaîne d’entrée.
- START_INDEX : Required Index de la chaîne d’entrée où la sous-chaîne commence.
- LONGUEUR : Obligatoire Longueur de la sous-chaîne.
lcase
- INPUT : Obligatoire Chaîne qui sera convertie en minuscules.
lcase("HeLLo")
ucase
- INPUT : Obligatoire Chaîne qui sera convertie en majuscules.
ucase("HeLLo")
\
: \
. Si vous incluez plusieurs délimiteurs, la chaîne sera fractionnée sur n’importe lequel des délimiteurs présents dans la chaîne. Remarque : Cette fonction renvoie uniquement des index non nuls de la chaîne, indépendamment de la présence du séparateur. Si tous les index, y compris les valeurs nulles, sont requis dans le tableau obtenu, utilisez plutôt la fonction "explode".- INPUT : Obligatoire Chaîne d’entrée qui va être fractionnée.
- SÉPARATEUR : Obligatoire Chaîne utilisée pour fractionner l’entrée.
["Hello", "world"]
- SÉPARATEUR : Obligatoire Chaîne qui sera utilisée pour joindre les objets.
- OBJETS : Obligatoire Tableau de chaînes qui seront jointes.
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- INPUT : Obligatoire Chaîne qui va être complétée. Cette chaîne peut être nulle.
- COUNT : Obligatoire Taille de la chaîne à ajouter.
- PADDING : Obligatoire Chaîne avec laquelle remplir l’entrée. S’il est nul ou vide, il est traité comme un espace unique.
- INPUT : Obligatoire Chaîne qui va être complétée. Cette chaîne peut être nulle.
- COUNT : Obligatoire Taille de la chaîne à ajouter.
- PADDING : Obligatoire Chaîne avec laquelle remplir l’entrée. S’il est nul ou vide, il est traité comme un espace unique.
- STRING : Required Chaîne pour laquelle vous obtenez les premiers caractères "n".
- COUNT : Obligatoire Les n caractères que vous souhaitez obtenir de la chaîne.
- STRING : Required Chaîne pour laquelle vous obtenez les derniers caractères "n".
- COUNT : Obligatoire Les n caractères que vous souhaitez obtenir de la chaîne.
- STRING : Required Chaîne dont vous souhaitez supprimer l’espace blanc.
- STRING : Required Chaîne dont vous souhaitez supprimer l’espace blanc.
- STRING : Required Chaîne dont vous souhaitez supprimer l’espace blanc.
- STRING1 : Obligatoire Première chaîne à comparer.
- STRING2 : Obligatoire La deuxième chaîne que vous souhaitez comparer.
- STRING1 : Obligatoire Première chaîne à comparer.
- STRING2 : Obligatoire La deuxième chaîne que vous souhaitez comparer.
Fonctions d’expressions régulières
- STRING : Required Chaîne à partir de laquelle vous extrayez les groupes.
- REGEX : Obligatoire Expression régulière que vous souhaitez que le groupe corresponde.
- STRING : Required La chaîne que vous cochez correspond à l’expression régulière.
- REGEX : Obligatoire Expression régulière par rapport à laquelle vous effectuez une comparaison.
Fonctions de hachage hashing
- INPUT : Obligatoire Texte brut à hacher.
- CHARSET : Facultatif Nom du jeu de caractères. Les valeurs possibles sont UTF-8, UTF-16, ISO-8859-1 et US-ASCII.
- INPUT : Obligatoire Texte brut à hacher.
- CHARSET : Facultatif Nom du jeu de caractères. Les valeurs possibles sont UTF-8, UTF-16, ISO-8859-1 et US-ASCII.
- INPUT : Obligatoire Texte brut à hacher.
- CHARSET : Facultatif Nom du jeu de caractères. Les valeurs possibles sont UTF-8, UTF-16, ISO-8859-1 et US-ASCII.
- INPUT : Obligatoire Texte brut à hacher.
- CHARSET : Facultatif Nom du jeu de caractères. Les valeurs possibles sont UTF-8, UTF-16, ISO-8859-1 et US-ASCII.
- INPUT : Obligatoire Texte brut à hacher.
- CHARSET : Facultatif Nom du jeu de caractères. Les valeurs possibles sont UTF-8, UTF-16, ISO-8859-1 et US-ASCII.
Fonctions d’URL url
- URL : Obligatoire URL à partir de laquelle le protocole doit être extrait.
- URL : Obligatoire URL à partir de laquelle l’hôte doit être extrait.
- URL : Obligatoire URL à partir de laquelle le port doit être extrait.
- URL : Obligatoire URL à partir de laquelle le chemin d’accès doit être extrait.
- FULL_PATH : Facultatif Une valeur booléenne qui détermine si le chemin d’accès complet est renvoyé. S’il est défini sur false, seule la fin du chemin est renvoyée.
- URL : Obligatoire URL à partir de laquelle vous essayez d’obtenir la chaîne de requête.
- ANCHOR : Obligatoire : détermine ce qui sera fait avec l’ancre dans la chaîne de requête. Il peut s’agir de l’une des trois valeurs suivantes : "keep" (conserver), "remove" (supprimer) ou "append" (ajouter).
Si la valeur est "keep" (conserver), l’ancre est associée à la valeur renvoyée.
Si la valeur est "remove", l’ancre est supprimée de la valeur renvoyée.
Si la valeur est "append", l’ancre est renvoyée sous la forme d’une valeur distincte.
get_url_query_str("foo://example.com:8042 /over/here?name= furet#nose", "remove")
get_url_query_str("foo://example.com :8042/over/here?name nose", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
- URL : Obligatoire URL d’entrée avec des caractères spéciaux que vous souhaitez remplacer ou coder avec des caractères ASCII.
- URL : Obligatoire L’URL d’entrée avec des caractères ASCII que vous souhaitez décoder en caractères spéciaux.
Fonctions de date et d’heure date-and-time
date
dans la section des dates du guide de gestion du format de données.2021-10-26T10:10:24Z
- DATE : Obligatoire La date d’entrée, en tant qu’objet ZonedDateTime, que vous souhaitez mettre en forme.
- FORMAT : Obligatoire Format dans lequel vous souhaitez que la date soit modifiée.
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- TIMESTAMP : Obligatoire Horodatage que vous souhaitez mettre en forme. Il est écrit en millisecondes.
- FORMAT : Obligatoire Format que vous souhaitez que l’horodatage devienne.
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- DATE : Obligatoire Chaîne représentant la date.
- FORMAT : Obligatoire Chaîne représentant le format de la date source.Remarque : Cela ne représente pas le format dans lequel vous souhaitez convertir la chaîne de date.
- DEFAULT_DATE : Required La date par défaut renvoyée, si la date fournie est nulle.
2019-10-23T11:24:00Z
- DATE : Obligatoire Chaîne représentant la date.
- FORMAT : Obligatoire Chaîne représentant le format de la date source.Remarque : Cela ne représente pas le format dans lequel vous souhaitez convertir la chaîne de date.
2019-10-23T11:24:00Z
- DATE : Obligatoire Chaîne représentant la date.
"year"
"yyy"
"yy"
"quart"
"qq"
"q"
"month"
"mm"
"m"
"dayofyear"
"dy"
"y"
"day" 3}"dd"
"d"
"week"
"www"
"w"
"week-end"
"dw"
"w"
"hour"
"hh"
"hh24"
"hh12"
"minute"
"mi"
"n"
"seconde"
"ss"
"s"
"milliseconde"
"SSS"
- COMPOSANT : Obligatoire Chaîne représentant la partie de la date.
- DATE : Obligatoire Date, dans un format standard.
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- COMPOSANT : Obligatoire Chaîne représentant la partie de la date.
- VALEUR : Obligatoire Valeur à définir pour le composant pour une date donnée.
- DATE : Obligatoire Date, dans un format standard.
- ANNÉE : Obligatoire L’année, écrite à quatre chiffres.
- MOIS : Obligatoire Mois. Les valeurs autorisées sont comprises entre 1 et 12.
- JOUR : Obligatoire Le jour. Les valeurs autorisées sont comprises entre 1 et 31.
- HEURE : Obligatoire Heure. Les valeurs autorisées sont comprises entre 0 et 23.
- MINUTE : Obligatoire La minute. Les valeurs autorisées sont comprises entre 0 et 59.
- NANOSECOND : Obligatoire Valeurs nanosecondes. Les valeurs autorisées sont 0 à 999999999.
- TIMEZONE : Obligatoire Fuseau horaire de la date et de l’heure.
2019-10-17T11:55:12Z
- DATE : Obligatoire Date à laquelle vous essayez de convertir.
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- DATE : Obligatoire Date à laquelle vous essayez de convertir.
- ZONE : Obligatoire Fuseau horaire auquel vous essayez de convertir la date.
zone_date_to_zone(now(), "Europe/Paris")
2021-10-26T15:43:59Z
Hiérarchies - Objets objects
- INPUT : Obligatoire L’objet que vous essayez de vérifier est vide.
is_empty([1, null, 2, 3])
- INPUT : Obligatoire Groupe de paires clé-tableau.
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- INPUT : Obligatoire Une liste plate de paires clé/valeur.
{"firstName": "John", "lastName": "Doe"}
- STRING : Required Chaîne analysée pour créer un objet.
- VALUE_DELIMITER : Facultatif Délimiteur qui sépare un champ de la valeur. Le délimiteur par défaut est
:
. - FIELD_DELIMITER : Facultatif Délimiteur qui sépare les paires valeur de champ. Le délimiteur par défaut est
,
.
get()
avec str_to_object()
pour récupérer les valeurs des clés dans la chaîne.- Exemple #1 : str_to_object("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- Exemple #2 : str_to_object("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get("firstName")
- Exemple #1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- Exemple #2 : "John"
is_set()
obsolète.- INPUT : Obligatoire Chemin à vérifier s’il existe dans les données source.
null
. Vous devez l’utiliser lorsque vous ne souhaitez pas copier le champ dans le schéma cible.null
- OBJET : Obligatoire Objet duquel les clés seront extraites.
["book1", "book2"]
- STRING : Required Chaîne que vous souhaitez analyser.
- KEY : Obligatoire Clé pour laquelle la valeur doit être extraite.
- VALUE_DELIMITER : Required Délimiteur qui sépare le champ et la valeur. Si une chaîne
null
ou vide est fournie, cette valeur est:
. - FIELD_DELIMITER : Facultatif Délimiteur qui sépare les paires champ/valeur. Si une chaîne
null
ou vide est fournie, cette valeur est,
.
- MAP : Obligatoire Données de mappage d’entrée.
- CLÉ : Obligatoire La clé peut être une chaîne unique ou un tableau de chaîne. Si un autre type primitif (données/nombre) est fourni, il est traité comme une chaîne.
- MAP : Obligatoire Les données de carte d’entrée
- CLÉ : Obligatoire La clé peut être une chaîne unique ou un tableau de chaîne. Si un autre type primitif (données/nombre) est fourni, il est traité comme une chaîne.
- CLÉ : Obligatoire Les clés doivent être une chaîne. Si d’autres valeurs primitives, telles que des nombres entiers ou des dates, sont fournies, elles sont automatiquement converties en chaînes et sont traitées comme des chaînes.
- ANY_TYPE : Obligatoire Fait référence à tout type de données XDM pris en charge, à l’exception des cartes.
- OBJET : Obligatoire Vous pouvez fournir un objet ou un tableau d’objets entrant et pointer vers un attribut à l’intérieur de l’objet comme clé.
- OBJET : Obligatoire Vous pouvez fournir un objet ou un tableau d’objets entrant et pointer vers un attribut à l’intérieur de l’objet comme clé.
Pour plus d’informations sur la fonctionnalité de copie d’objet, reportez-vous à la section ci-dessous.
Hiérarchies - Tableaux arrays
- INPUT : Obligatoire Tableau dont vous souhaitez trouver le premier objet non nul.
- INPUT : Obligatoire Tableau dont vous souhaitez trouver le premier élément.
- INPUT : Obligatoire Tableau dont vous souhaitez trouver le dernier élément.
- ARRAY : Obligatoire Tableau auquel vous ajoutez des éléments.
- VALEURS : éléments que vous souhaitez ajouter au tableau.
- ARRAY : Obligatoire Tableau auquel vous ajoutez des éléments.
- VALEURS : tableau(s) que vous souhaitez ajouter au tableau parent.
- INCLUDE_NULLS : Required Une valeur booléenne pour indiquer s’il faut inclure ou non des valeurs nulles dans le tableau de réponse.
- VALEURS : Obligatoire Les éléments à convertir en tableau.
[1, 2, 3]
- INPUT : Obligatoire Objet dont vous essayez de trouver la taille.
size_of([1, 2, 3, 4])
- ARRAY : Obligatoire Tableau à ajouter au tableau dans le profil.
upsert_array_append([123, 456])
- ARRAY : Obligatoire Le tableau pour remplacer le tableau dans le profil.
upsert_array_replace([123, 456], 1)
Hiérarchies - Carte map
- INPUT : Obligatoire Le tableau d’objets dont vous souhaitez trouver le premier objet non nul.
- CLÉ : Obligatoire La clé doit être un nom de champ dans le tableau d’objets et l’objet comme valeur.
- INPUT : Obligatoire Le tableau d’objets dont vous souhaitez trouver le premier objet non nul.
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
Opérateurs logiques logical-operators
- CLÉ : Obligatoire Clé à associer.
- OPTIONS : Obligatoire Un tableau aplati de paires clé/valeur. Vous pouvez éventuellement placer une valeur par défaut à la fin.
Si le code d'état donné est "pa", "Pennsylvania".
Si stateCode ne correspond pas à ce qui suit, "S.O."
- EXPRESSION : Obligatoire Expression booléenne en cours d’évaluation.
- TRUE_VALUE : Required La valeur renvoyée si l’expression renvoie true (vrai).
- FALSE_VALUE : Required La valeur renvoyée si l’expression est évaluée comme false.
Agrégation aggregation
- OPTIONS : Obligatoire Un ou plusieurs objets pouvant être comparés les uns aux autres.
- OPTIONS : Obligatoire Un ou plusieurs objets pouvant être comparés les uns aux autres.
Conversions de type type-conversions
- STRING : Required Chaîne à convertir en BigInteger.
- STRING : Required Chaîne à convertir en double.
- STRING : Required Chaîne à convertir en flottante.
- STRING : Required Chaîne à convertir en entier.
Fonctions JSON json
- STRING : Required Chaîne JSON à désérialiser.
Opérations spéciales special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- STRING : Required Chaîne FPID à convertir en ECID.
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
Fonctions de l’agent utilisateur user-agent
Toutes les fonctions de l’agent utilisateur contenues dans le tableau ci-dessous peuvent renvoyer l’une des valeurs suivantes :
- Phone : appareil mobile avec un petit écran (généralement < 7").
- Mobile : périphérique mobile qui n’est pas encore identifié. Ce périphérique mobile peut être un lecteur électronique, une tablette, un téléphone, une montre, etc.
Pour plus d’informations sur les valeurs de champ de périphérique, consultez la liste des valeurs de champ de périphérique de l’annexe de ce document.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
- USER_AGENT : Obligatoire Chaîne de l’agent utilisateur.
Fonctions Analytics analytics
- EVENT_STRING : Required Chaîne d’événement Analytics séparée par des virgules.
- EVENT_NAME : Required Nom de l’événement à partir duquel extraire et ID.
- EVENT_STRING : Required Chaîne d’événement Analytics séparée par des virgules.
- EVENT_NAME : Required Nom de l’événement duquel extraire une valeur.
- PRODUCTS_STRING : Obligatoire Chaîne de produits Analytics.
- PRODUCTS_STRING : Obligatoire Chaîne de produits Analytics.
- PRODUCTS_STRING : Obligatoire Chaîne de produits Analytics.
- PRODUCTS_STRING : Obligatoire Chaîne de produits Analytics.
- PRODUCTS_STRING : Obligatoire Chaîne de produits Analytics.
- EVENT_NAME : Required Nom de l’événement duquel extraire des valeurs.
- PRODUCTS_STRING : Obligatoire Chaîne de produits Analytics.
- EVAR_NAME : Obligatoire Nom de l’eVar à extraire.
Copie d’objet object-copy
Vous pouvez utiliser la fonction de copie d’objet pour copier automatiquement les attributs d’un objet sans apporter de modifications au mappage. Par exemple, si vos données source ont une structure de :
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
et une structure XDM de :
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
Ensuite, le mappage devient :
address -> addr
address.line1 -> addr.addrLine1
Dans l’exemple ci-dessus, les attributs city
et state
sont également ingérés automatiquement au moment de l’exécution car l’objet address
est mappé sur addr
. Si vous deviez créer un attribut line2
dans la structure XDM et que vos données d’entrée contiennent également un line2
dans l’objet address
, il sera également ingéré automatiquement sans avoir à modifier manuellement le mappage.
Pour que le mappage automatique fonctionne, les conditions préalables suivantes doivent être remplies :
- Les objets de niveau parent doivent être mappés ;
- De nouveaux attributs doivent avoir été créés dans le schéma XDM ;
- Les nouveaux attributs doivent avoir des noms correspondants dans le schéma source et le schéma XDM.
Si aucune des conditions préalables n’est remplie, vous devez mapper manuellement le schéma source au schéma XDM à l’aide de la préparation des données.
Annexe
Vous trouverez ci-dessous des informations supplémentaires sur l’utilisation des fonctions de mappage de la préparation de données
Caractères spéciaux special-characters
Le tableau ci-dessous présente une liste de caractères réservés et les caractères codés correspondants.
Valeurs de champ du périphérique device-field-values
Le tableau ci-dessous présente une liste des valeurs de champ d’appareil et leurs descriptions correspondantes.
useragents
qui ont été modifiés par un logiciel d’anonymisation.useragents
qui ne contiennent aucune information sur l’appareil.useragent
.Exemples de code code-samples
map_get_values map-get-values
code language-json |
---|
|
map_has_keys map_has_keys
code language-json |
---|
|
add_to_map add_to_map
code language-json |
---|
|
object_to_map object_to_map
Syntaxe 1
code language-json |
---|
|
Syntaxe 2
code language-json |
---|
|
Syntaxe 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|