Referencias del campo field-references
Se puede adjuntar una referencia de campo a un evento o a un grupo de campos. La única información significativa es el nombre del campo y su ruta.
Si utiliza caracteres especiales en un campo, debe utilizar comillas dobles o simples. Estos son los casos en los que se necesitan comillas:
- el campo comienza con caracteres numéricos
- el campo comienza con el carácter “-”
- el campo contiene cualquier cosa que no sea: a-z, A-Z, 0-9, ,-_
Por ejemplo, si el campo es 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}
En la expresión, se hace referencia a los campos de evento con “@” y a los campos de fuente de datos con “#”.
Se utiliza un color de sintaxis para distinguir visualmente campos de eventos (verde) de grupos de campos (azul).
Valores predeterminados para referencias de campo default-value
Se puede asociar un valor predeterminado con un nombre de campo. La sintaxis es la siguiente:
// 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} no es válido porque el valor predeterminado es un entero, mientras que el valor esperado debe ser una cadena.Ejemplos:
// 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
Puede agregar cualquier tipo de expresión como valor predeterminado. La única restricción es que la expresión debe devolver el tipo de datos esperado. Cuando se utiliza una función, es necesario encapsular la función con ().
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.any.time, defaultValue : (now())}
== date("2022-02-10T00:00:00Z")
Referencia a un campo dentro de colecciones
Se hace referencia a los elementos definidos dentro de las colecciones mediante las funciones específicas all, first y last. Para obtener más información, consulte esta página.
Ejemplo :
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all()
Referencia a un campo definido en un mapa
Función entry
Para recuperar un elemento en un mapa, utilizamos la función de entrada con una clave determinada. Por ejemplo, se utiliza al definir la clave de un evento, según el área de nombres seleccionada. Para obtener más información, vea esta página.
@event{MyEvent.identityMap.entry('Email').first().id}
En esta expresión, se obtiene la entrada para la clave “Email” del campo “IdentityMap” de un evento. La entrada “Email” es una colección, de la cual tomamos el “id” en el primer elemento usando “first()”. Para obtener más información, vea esta página.
Función firstEntryKey
Para recuperar la primera clave de entrada de un mapa, utilice la función firstEntryKey.
Este ejemplo muestra cómo recuperar la primera dirección de correo electrónico de los suscriptores de una lista específica:
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-email').subscribers.firstEntryKey()}
En este ejemplo, la lista de suscripción se denomina daily-email. Las direcciones de correo electrónico se definen como claves en el mapa subscribers, que está vinculado al mapa de la lista de suscripción.
Función keys
Para recuperar todas las claves de un mapa, utilice la función keys.
Este ejemplo muestra cómo recuperar, para un perfil específico, todas las direcciones de correo electrónico asociadas a los suscriptores de una lista específica:
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-mail').subscribers.keys()
Valores de parámetro de una fuente de datos (valores dinámicos de la fuente de datos)
Si selecciona un campo de una fuente de datos externa que requiere que se llame a un parámetro, aparecerá una nueva pestaña a la derecha para que pueda especificar este parámetro. Consulte esta página.
Para casos de uso más complejos, si desea incluir los parámetros del origen de datos en la expresión principal, puede definir sus valores con la palabra clave params. Un parámetro puede ser cualquier expresión válida incluso desde otra fuente de datos que también incluya otro parámetro.
Utilice la siguiente sintaxis:
#{<datasource>.<field group>.fieldName, params: {<params-1-name>: <params-1-value>, <params-2-name>: <params-2-value>}}
<params-1-name>: nombre exacto del primer parámetro del origen de datos.<params-1-value>: valor del primer parámetro. Puede ser cualquier expresión válida.
Ejemplo:
#{Weather.main.temperature, params: {localisation: @event{Profile.address.localisation}}}
#{Weather.main.temperature, params: {localisation: #{GPSLocalisation.main.coordinates, params: {city: @event{Profile.address.city}}}}}
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page explains how to reference event fields and data source field groups in journey expressions, including default value syntax, map access functions (
entry,firstEntryKey,keys), and inline data source parameter passing with theparamskeyword.
Intents:
- Reference an event field in an expression using the
@event{eventName.fieldPath}syntax - Reference a data source field group using the
#{dataSourceName.fieldGroupName.fieldPath}syntax - Assign a fallback default value to a field reference so expressions do not return null
- Retrieve a specific entry from an identity map or subscription map using the
entry()function - Retrieve all keys from a map field using the
keys()function - Pass parameter values to an external data source inline using the
paramskeyword
Glossary:
- Field reference: An expression syntax that points to a named field within an event payload or data source field group (product-specific)
- defaultValue: An optional fallback expression appended to a field reference that is returned when the field is absent or null (product-specific)
- entry(key): A map function that retrieves the collection entry associated with the given key (product-specific)
- firstEntryKey(): A map function that returns the first key of a map field (product-specific)
- keys(): A map function that returns all keys of a map field (product-specific)
- params keyword: Inline syntax for specifying parameter values for external data source fields within the main expression (product-specific)
Guardrails:
- Field names containing special characters (starting with a digit, containing
-, or characters outsidea-z A-Z 0-9 _) must be wrapped in single or double quotes - The default value expression must return the same data type as the field — mismatched types are invalid
- When the
paramskeyword is used to define parameter values inline, the separate parameter tab on the right of the editor disappears - Functions used as default values must be encapsulated in parentheses
Terminology:
- Canonical name: Field References — Acronym: none — variants: field path, field expression
- Synonyms:
@event{...}= “event field reference”;#{...}= “data source field reference” - Do not confuse: event fields (prefixed
@) ≠ data source fields (prefixed#)
FAQ:
- Q: How do I reference a field whose name starts with a number? — Wrap the field name in single or double quotes, e.g.
#{OpenWeather.weatherData.rain.'3h'}. - Q: What happens when a referenced field is missing from the event payload and no default value is set? — The expression returns
null. - Q: How do I set a dynamic default value using a function? — Wrap the function call in parentheses, e.g.
defaultValue: (now()). - Q: How do I retrieve the email address stored as the first key in a subscriber map? — Use the
firstEntryKey()function on the subscribers map field. - Q: How do I pass a parameter to an external data source without using the right-side tab? — Use the
paramskeyword inline:#{DataSource.group.field, params: {paramName: value}}.