Références de champ field-references
Il est possible d’associer une référence de champ à un événement ou à un groupe de champs. Les seules informations significatives sont le nom du champ et son chemin d’accès.
Si vous utilisez des caractères spéciaux dans un champ, vous devez avoir recours à des guillemets doubles ou à des guillemets simples. Voici les cas où les guillemets sont nécessaires :
- Le champ commence par des caractères numériques.
- Le champ commence par le caractère « - ».
- Le champ contient d’autres caractères que : a-z, A-Z, 0-9, ,-_
Par exemple, si votre champ est 3h : #{OpenWeather.weatherData.rain.‘3h’} > 0
// event field
@event{<event name>.<XDM path to the field>}
@event{LobbyBeacon.endUserIDs._experience.emailid.id}
// field group
#{<data source name>.<field group name>.<path to the field>}
#{ExperiencePlatform.ProfileFieldGroup.profile.personalEmail.address}
Dans l’expression, les champs d’événement sont référencés par « @ » et les champs de source de données par « # ».
Une couleur de syntaxe permet de distinguer visuellement les champs d’événements (vert) des groupes de champs (bleu).
Valeurs par défaut des références de champ default-value
Il est possible d’associer une valeur par défaut à un nom de champ. La syntaxe se présente comme suit :
// event field
@event{<event name>.<XDM path to the field>, defaultValue: <default value expression>}
@event{LobbyBeacon.endUserIDs._experience.emailid.id, defaultValue: "example@adobe.com"}
// field group
#{<data source name>.<field group name>.<path to the field>, defaultValue: <default value expression>}
#{ExperiencePlatform.ProfileFieldGroup.profile.personalEmail.address, defaultValue: "example@adobe.com"}
@event{LobbyBeacon.endUserIDs._experience.emailid.id, defaultValue : 2} n’est pas valide, car la valeur par défaut est un entier alors que la valeur attendue doit être une chaîne.Exemples :
// for an event 'OrderEvent' having the following payload:
{
"orderId": "12345"
}
expression example:
- @event{OrderEvent.orderId} -> "12345"
- @event{OrderEvent.productId, defaultValue : "not specified" } -> "not specified" // default value, productId is not a field present in the payload
- @event{OrderEvent.productId} -> null
// for an entity 'Profile' on datasource 'ACP' having fields person/lastName, with fetched data such as:
{
"person": {
"lastName":"Snow"
},
"emails": [
{ "email":"john.snow@winterfell.westeros" },
{ "email":"snow@thewall.westeros" }
]
}
expression examples:
- #{ACP.Profile.person.lastName} -> "Snow"
- #{ACP.Profile.emails.at(1).email} -> "snow@thewall.westeros"
- #{ACP.Profile.person.age, defaultValue : -1} -> -1 // default value, age is not a field present in the payload
- #{ACP.Profile.person.age} -> null
Vous pouvez ajouter n’importe quel type d’expression comme valeur par défaut. La seule contrainte est que l’expression doit renvoyer le type de données attendu. Lors de l’utilisation d’une fonction, l’encapsulation de la fonction avec () est requise.
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.any.time, defaultValue : (now())}
== date("2022-02-10T00:00:00Z")
Référence à un champ dans les collections
Les éléments définis dans les collections sont référencés à l’aide des fonctions spécifiques all, first et last. Pour plus d’informations, consultez cette page.
Exemple :
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all()
Référence à un champ défini dans un mapping
Fonction entry
Pour récupérer un élément dans un mapping, il faut utiliser la fonction d’entrée avec une clé donnée. Elle est par exemple utilisée lors de la définition de la clé d’un événement, selon l’espace de noms sélectionné. Pour plus d’informations, consultez cette page.
@event{MyEvent.identityMap.entry('Email').first().id}
Dans cette expression, nous obtenons l’entrée correspondant à la clé « E-mail » du champ « IdentityMap » d’un événement. L’entrée « E-mail » est une collection, dans laquelle nous obtenons l’« id » dans le premier élément en utilisant « first() ». Pour plus d’informations, consultez cette page.
Fonction firstEntryKey
Pour récupérer la première clé d’entrée d’un mappage, utilisez la fonction firstEntryKey.
Cet exemple montre comment récupérer la première adresse e-mail des abonnés d’une liste spécifique :
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-email').subscribers.firstEntryKey()}
Dans cet exemple, la liste d’abonnements est nommée daily-email. Les adresses e-mail sont définies comme des clés dans le mappage subscribers, qui est lié au mappage de la liste d’abonnements.
Fonction keys
Pour récupérer toutes les clés d’un mapping, utilisez la fonction keys.
Cet exemple montre comment récupérer, pour un profil spécifique, toutes les adresses e-mail associées aux abonnés d’une liste spécifique :
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-mail').subscribers.keys()
Valeurs de paramètre d’une source de données (valeurs dynamiques de la source de données)
Si vous sélectionnez un champ d’une source de données externe qui nécessite l’appel d’un paramètre, un nouvel onglet s’affiche à droite pour vous permettre de spécifier ce paramètre. Consultez cette page.
Dans les cas d’utilisation plus complexes, si vous souhaitez inclure les paramètres de la source de données dans l’expression principale, vous pouvez définir leurs valeurs à l’aide du mot-clé params. Un paramètre peut être constitué de n’importe quelle expression valide, même provenant d’une autre source de données contenant également un autre paramètre.
Utilisez la syntaxe suivante :
#{<datasource>.<field group>.fieldName, params: {<params-1-name>: <params-1-value>, <params-2-name>: <params-2-value>}}
<params-1-name>: nom exact du premier paramètre de la source de données.<params-1-value>: valeur du premier paramètre. Il peut s’agir de n’importe quelle expression valide.
Exemple:
#{Weather.main.temperature, params: {localisation: @event{Profile.address.localisation}}}
#{Weather.main.temperature, params: {localisation: #{GPSLocalisation.main.coordinates, params: {city: @event{Profile.address.city}}}}}
Cette section contient des connaissances structurées destinées à soutenir l’interprétation, la récupération et la réponse aux questions liées à ce sujet.
Pour une compréhension totale, ces informations doivent être combinées avec la documentation de cette page. Aucune des sources n’est conçue pour être autonome. La page décrit la fonctionnalité, tandis que cette section fournit un contexte supplémentaire qui permet de clarifier la terminologie, l’intention, l’applicabilité et les contraintes.
- TL;DR: Cette page explique comment référencer des champs d’événement et des groupes de champs de source de données dans des expressions de parcours, y compris la syntaxe de valeur par défaut, les fonctions d’accès au mappage (
entry,firstEntryKey,keys) et le paramètre de source de données intégré transmis avec le mot-cléparams.
Intentions:
- Référencer un champ d’événement dans une expression à l’aide de la syntaxe
@event{eventName.fieldPath} - Référencer un groupe de champs de source de données à l’aide de la syntaxe
#{dataSourceName.fieldGroupName.fieldPath} - Attribuez une valeur par défaut de secours à une référence de champ pour que les expressions ne renvoient pas la valeur null.
- Récupérez une entrée spécifique d’un mappage d’identités ou d’abonnements à l’aide de la fonction
entry() - Récupérez toutes les clés d’un champ de mappage à l’aide de la fonction
keys() - Transmettez les valeurs de paramètre à une source de données externe en ligne à l’aide du mot-clé
params
Glossaire:
- Référence du champ : syntaxe d’expression qui pointe vers un champ nommé dans une payload d’événement ou un groupe de champs de source de données (spécifique au produit)
- defaultValue : expression de secours facultative ajoutée à une référence de champ qui est renvoyée lorsque le champ est absent ou nul (spécifique au produit)
- entry(key) : fonction map qui récupère l’entrée de collection associée à la clé donnée (product-specific)
- firstEntryKey() : fonction de mappage qui renvoie la première clé d’un champ de mappage (spécifique au produit)
- keys() : fonction de mappage qui renvoie toutes les clés d’un champ de mappage (spécifique au produit)
- params keyword : syntaxe intégrée pour la spécification des valeurs de paramètre pour les champs de source de données externes dans l’expression principale (spécifique au produit)
Mécanismes de sécurisation :
- Les noms de champ contenant des caractères spéciaux (commençant par un chiffre, contenant des
-ou des caractères en dehors dea-z A-Z 0-9 _) doivent être placés entre guillemets simples ou doubles - L’expression de valeur par défaut doit renvoyer le même type de données que le champ ; les types non concordants ne sont pas valides
- Lorsque le mot-clé
paramsest utilisé pour définir des valeurs de paramètre en ligne, l’onglet de paramètre distinct situé à droite de l’éditeur disparaît - Les fonctions utilisées comme valeurs par défaut doivent être encapsulées entre parenthèses
Terminologie:
- Nom canonique : Références de champ — Acronyme : none — variantes : chemin du champ, expression du champ
- Synonymes :
@event{...}= « référence du champ d’événement » ;#{...}= « référence du champ de source de données » - Ne les confondez pas : champs d’événement (
@préfixé) ≠ champs de source de données (#préfixé)
FAQ:
- Q : Comment référencer un champ dont le nom commence par un nombre ? — Placez le nom du champ entre guillemets simples ou doubles, par exemple
#{OpenWeather.weatherData.rain.'3h'}. - Q : Que se passe-t-il lorsqu’un champ référencé est absent de la payload de l’événement et qu’aucune valeur par défaut n’est définie ? — L’expression renvoie
null. - Q : Comment définir une valeur dynamique par défaut à l’aide d’une fonction ? — Placez l’appel de fonction entre parenthèses, par exemple
defaultValue: (now()). - Q : Comment récupérer l’adresse e-mail stockée comme première clé dans un mappage des abonnés ? — Utilisez la fonction
firstEntryKey()dans le champ de mappage des abonnés. - Q : Comment transmettre un paramètre à une source de données externe sans utiliser l’onglet de droite ? — Utilisez le mot-clé
paramsen ligne :#{DataSource.group.field, params: {paramName: value}}.