欄位參考可附加至事件或欄位群組。 唯一有意義的資訊是欄位名稱及其路徑。
如果您在欄位中使用特殊字元,則需要使用雙引號或簡單引號。 需要引號的情況如下:
例如,如果欄位為 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}
在運算式中,事件欄位被「@」引用,資料源欄位被「#」引用。
語法顏色可以視覺上區分事件欄位(綠色)和欄位群組(藍色)。
預設值可與欄位名稱關聯。 語法如下:
// 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"}
欄位的類型和預設值必須相同。 例如, @{LobbyBeacon.endUserIDs。_experience.emailid.id, defaultValue :2}將無效,因為預設值為整數,而預期值應為字串。
範例:
// 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
您可以新增任何類型的運算式作為預設值。 唯一的限制是運算式必須傳回預期的資料類型。 使用函式時,需要使用()封裝函式。
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.any.time, defaultValue : (now())}
== date("2022-02-10T00:00:00Z")
系列中定義的元素會使用特定函式來參照 all
, first
和 last
. 如需詳細資訊,請參閱本頁面。
範例:
@{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all()
entry
函數為了擷取地圖中的元素,我們使用包含指定鍵的登入函式。 例如,根據選取的命名空間定義事件的索引鍵時,會使用它。 如需詳細資訊,請參閱 本頁.
@{MyEvent.identityMap.entry('Email').first().id}
在此運算式中,我們會取得事件「IdentityMap」欄位中「Email」索引鍵的項目。 「Email」項目是集合,我們會從中使用「first()」取得第一個元素中的「id」。 如需詳細資訊,請參閱 本頁.
firstEntryKey
函數若要擷取地圖的第一個項目索引鍵,請使用 firstEntryKey
函式。
此範例顯示如何擷取特定清單訂閱者的第一個電子郵件地址:
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-email').subscribers.firstEntryKey()}
在此範例中,訂閱清單的名稱為 daily-email
. 電子郵件地址定義為 subscribers
地圖,連結至訂閱清單地圖。
keys
函數若要擷取地圖的所有索引鍵,請使用 keys
函式。
此範例顯示如何針對特定設定檔擷取與特定清單訂閱者相關聯的所有電子郵件地址:
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.email.subscriptions.entry('daily-mail').subscribers.keys()
如果您從外部資料來源選取欄位,需要呼叫參數,右側會出現新索引標籤,讓您指定此參數。 請參閱此頁面。
對於更複雜的使用案例,如果您想將資料來源的參數納入主運算式中,則可以使用關鍵字定義其值 params. 參數可以是任何有效的運算式,即使來自另一個資料來源(也包含另一個參數)也是如此。
當您在運算式中定義參數值時,右側的索引標籤會消失。
使用下列語法:
#{<datasource>.<field group>.fieldName, params: {<params-1-name>: <params-1-value>, <params-2-name>: <params-2-value>}}
<params-1-name>
:資料來源中第一個參數的確切名稱。<params-1-value>
:第一個參數的值。 它可以是任何有效的運算式。範例:
#{Weather.main.temperature, params: {localisation: @{Profile.address.localisation}}}
#{Weather.main.temperature, params: {localisation: #{GPSLocalisation.main.coordinates, params: {city: @{Profile.address.city}}}}}