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 :
Par exemple, si votre champ est 3h: #{OpenWeather.weatherData.rain.'3h'} > 0
// event field
@{<event name>.<XDM path to the field>}
@{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).
Il est possible d’associer une valeur par défaut à un nom de champ. La syntaxe se présente comme suit :
// event field
@{<event name>.<XDM path to the field>, defaultValue: <default value expression>}
@{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"}
Le type du champ et la valeur par défaut doivent être identiques. Par exemple, @{LobbyBeacon.endUserIDs._experience.emailid.id, defaultValue : 2} ne sera 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:
- @{OrderEvent.orderId} -> "12345"
- @{OrderEvent.producdId, defaultValue : "not specified" } -> "not specified" // default value, productId is not a field present in the payload
- @{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")
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 :
@{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all()
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.
@{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.
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.
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()
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.
Lorsque vous définissez les valeurs de paramètre dans l’expression, l’onglet de droite disparaît.
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: @{Profile.address.localisation}}}
#{Weather.main.temperature, params: {localisation: #{GPSLocalisation.main.coordinates, params: {city: @{Profile.address.city}}}}}