フィールド参照 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.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
任意の種類の式をデフォルト値として追加できます。 唯一の制約は、期待されるデータタイプを、式が返す必要があるということです。 関数を使用する場合は、() で関数をカプセル化する必要があります。
#{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}}}}}
このセクションには、このトピックに関連する解釈、検索、質問への回答をサポートすることを目的とした構造化された知識が含まれています。
理解を深めるには、この情報をこのページのドキュメントと組み合わせる必要があります。 どちらのソースも単独で使用することを意図していません。このページでは、機能について説明しますが、この節では、用語、意図、適用可能性、および制約の曖昧さを解消するのに役立つ追加のコンテキストを提供します。
- TL;DR:このページでは、ジャーニー式でイベントフィールドとデータソースフィールドグループを参照する方法について説明します。これには、デフォルト値の構文、マップアクセス関数(
entry,firstEntryKey,keys)、paramsキーワードで渡されるインラインデータソースパラメーターが含まれます。
インテント:
@event{eventName.fieldPath}構文を使用して式のイベントフィールドを参照します#{dataSourceName.fieldGroupName.fieldPath}構文を使用したデータソースフィールドグループの参照- フォールバックデフォルト値をフィールド参照に割り当てて、式がnullを返さないようにします
entry()関数を使用して、ID マップまたはサブスクリプションマップから特定のエントリを取得しますkeys()関数を使用して、マップフィールドからすべてのキーを取得しますparamsキーワードを使用して、パラメーター値を外部データソースにインラインで渡します
用語集:
- フィールド参照: イベントペイロードまたはデータソースフィールドグループ (製品固有)内の名前付きフィールドを指す式の構文
- defaultValue: フィールドが存在しない場合またはnullの場合に返されるフィールド参照に追加されるオプションのフォールバック式(製品固有)
- entry (key):指定されたキー (製品固有) に関連付けられたコレクションエントリを取得するマップ関数
- firstEntryKey (): マップフィールド (製品固有)の最初のキーを返すマップ関数
- keys (): マップフィールド (製品固有)のすべてのキーを返すマップ関数
- params キーワード: メイン式 (製品固有) 内の外部データソースフィールドのパラメーター値を指定するためのインライン構文
ガードレール:
- 特殊文字(
-を含む数字で始まる、またはa-z A-Z 0-9 _外の文字)を含むフィールド名は、一重引用符または二重引用符で囲む必要があります - デフォルト値の式は、フィールドと同じデータタイプを返す必要があります。一致しないタイプは無効です
paramsキーワードを使用してパラメーター値をインラインで定義すると、エディターの右側の「個別パラメーター」タブが表示されなくなります- デフォルト値として使用される関数は、括弧で囲む必要があります
用語:
- 正規名:フィールド参照 – Acronym: none — バリアント:フィールドパス、フィールド式
- 同義語:
@event{...}= “イベントフィールド参照”;#{...}= “データソースフィールド参照” - 混同しないでください:イベントフィールド(接頭辞
@)≠データソースフィールド(接頭辞#)
FAQ:
- Q:名前が数字で始まるフィールドを参照するにはどうすればよいですか? — フィールド名を一重引用符または二重引用符で囲みます(例:
#{OpenWeather.weatherData.rain.'3h'})。 - Q:参照されたフィールドがイベントペイロードに見つからず、デフォルト値が設定されていない場合、どうなりますか? – 式は
nullを返します。 - Q:関数を使用して動的なデフォルト値を設定するにはどうすればよいですか? – 関数呼び出しを括弧で囲みます(例:
defaultValue: (now()))。 - Q:購読者マップの最初のキーとして保存されている電子メールアドレスを取得するにはどうすればよいですか? – 購読者マップフィールドで
firstEntryKey()関数を使用します。 - Q:右側のタブを使用せずに外部データソースにパラメーターを渡すにはどうすればよいですか? —
paramsキーワードをインラインで使用:#{DataSource.group.field, params: {paramName: value}}。