Uma referência de campo pode ser anexada a um evento ou grupo de campos. As únicas informações relevantes são o nome do campo e seu caminho.
Se estiver usando caracteres especiais em um campo, você precisará usar aspas duplas ou aspas simples. Estes são os casos em que as aspas são necessárias:
Por exemplo, se o campo for 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}
Na expressão, os campos de evento são referenciados com "@" e os campos da fonte de dados com "#".
Uma cor de sintaxe é usada para distinguir visualmente campos de eventos (verde) de grupos de campos (azul).
Um valor padrão pode ser associado a um nome de campo. A sintaxe é a seguinte:
// 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"}
O tipo de campo e o valor padrão devem ser iguais. Por exemplo, @{LobbyBeacon.endUserIDs._experience.emailid.id, defaultValue : 2} será inválido porque o valor padrão é um inteiro, enquanto o valor esperado deve ser uma cadeia de caracteres.
Exemplos:
// 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
Você pode adicionar qualquer tipo de expressão como valor padrão. A única restrição é que a expressão deve retornar o tipo de dados esperado. Ao usar uma função, é necessário encapsulá-la com ().
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.any.time, defaultValue : (now())}
== date("2022-02-10T00:00:00Z")
Os elementos definidos nas coleções são referenciados usando as funções específicas all
, first
e last
. Para obter mais informações, consulte esta página.
Exemplo :
@{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all()
entry
Para recuperar um elemento em um mapa, usamos a função de entrada com uma determinada chave. Por exemplo, ele é usado ao definir a chave de um evento, de acordo com o namespace selecionado. Consulte Seleção do namespace. Para obter mais informações, consulte esta página.
@{MyEvent.identityMap.entry('Email').first().id}
Nesta expressão, estamos obtendo a entrada da chave "Email" do campo "IdentityMap" de um evento. A entrada "Email" é uma coleção, da qual obtemos a "id" no primeiro elemento usando "first()". Para obter mais informações, consulte esta página.
firstEntryKey
Para recuperar a primeira chave de entrada de um mapa, use o firstEntryKey
função.
Este exemplo mostra como recuperar o primeiro endereço de email dos assinantes de uma lista específica:
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-email').subscribers.firstEntryKey()}
Neste exemplo, a lista de assinaturas é nomeada daily-email
. Os endereços de email são definidos como chaves na variável subscribers
que é vinculado ao mapa da lista de assinaturas.
keys
Para recuperar todas as chaves de um mapa, use o keys
função.
Esse exemplo mostra como recuperar, para um perfil específico, todos os endereços de email associados aos assinantes de uma lista específica:
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-mail').subscribers.keys()
Se você selecionar um campo de uma fonte externa de dados que requer um parâmetro para ser chamado, uma nova guia será exibida à direita para permitir a especificação desse parâmetro. Consulte esta página.
Para casos de uso mais complexos, se quiser incluir os parâmetros da fonte de dados na expressão principal, você poderá definir os valores usando a palavra-chave params. Um parâmetro pode ser qualquer expressão válida mesmo de outra fonte de dados que também inclua outro parâmetro.
Ao definir os valores de parâmetro na expressão, a guia à direita desaparece.
Use a seguinte sintaxe:
#{<datasource>.<field group>.fieldName, params: {<params-1-name>: <params-1-value>, <params-2-name>: <params-2-value>}}
<params-1-name>
: nome exato do primeiro parâmetro da fonte de dados.<params-1-value>
: o valor do primeiro parâmetro. Pode ser qualquer expressão válida.Exemplo:
#{Weather.main.temperature, params: {localisation: @{Profile.address.localisation}}}
#{Weather.main.temperature, params: {localisation: #{GPSLocalisation.main.coordinates, params: {city: @{Profile.address.city}}}}}