フィールド参照 field-references
フィールド参照は、イベントまたはフィールドグループに添付できます。意味のある情報は、フィールドの名前とパスだけです。
フィールドに特殊文字を使用する場合は、二重または一重の引用符を使用する必要があります。次のような場合には引用符が必要です。
- フィールドが数字で始まる
- フィールドが「-」文字で始まる
- フィールドに a_~_z、A_~_Z、0_~_9、、-_ 以外の文字が含まれる
例えば、フィールドが 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}
式では、イベントフィールドは「@」で参照され、データソースフィールドは「#」で参照されます。
構文の色を使用して、イベントフィールド(緑)とフィールドグループ(青)を視覚的に区別します。
フィールド参照のデフォルト値 default-value
デフォルト値をフィールド名に関連付けることができます。構文は以下のとおりです。
// 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}
は無効になります。例:
// for an event 'OrderEvent' having the following payload:
{
"orderId": "12345"
}
expression example:
- @event{OrderEvent.orderId} -> "12345"
- @event{OrderEvent.producdId, 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
任意の種類の式をデフォルト値として追加できます。唯一の制約は、期待されるデータ型を、式が返す必要があるということです。関数を使用する場合は、() で関数をカプセル化する必要があります。
#{ExperiencePlatform.Subscriptions.profile.consents.marketing.any.time, defaultValue : (now())}
== date("2022-02-10T00:00:00Z")
コレクション内のフィールドへの参照
コレクション内で定義された要素は、特定の関数 all
、first
および last
を使用して参照します。詳しくは、このページを参照してください。
例:
@event{LobbyBeacon._experience.campaign.message.profile.pushNotificationTokens.all()
マップ内で定義されたフィールドへの参照
entry
関数
マップ内の要素を取得するには、指定のキーで entry 関数を使用します。例えば、イベントのキーを定義する際に、選択した名前空間に応じて使用します。詳しくは、このページを参照してください。
@event{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: @event{Profile.address.localisation}}}
#{Weather.main.temperature, params: {localisation: #{GPSLocalisation.main.coordinates, params: {city: @event{Profile.address.city}}}}}