データ準備のマッピング機能
データ準備関数を使用すると、ソースフィールドに入力された値に基づいて値を計算および計算できます。
フィールド
フィールド名には、任意の法的識別子(Unicode 文字および数字の無制限のシーケンス、文字、ドル記号($
)、アンダースコア文字(_
)を使用できます。 変数名でも大文字と小文字が区別されます。
フィールド名がこの規則に従わない場合は、フィールド名を ${}
でラップする必要があります。 例えば、フィールド名が「名」または「First.Name」の場合、名前をそれぞれ ${First Name}
または ${First\.Name}
のようにラップする必要があります。
フィールド名が次の予約キーワードの any である場合、${}{}
でラップする必要があります。
new, mod, or, break, var, lt, for, false, while, eq, gt, div, not, null, continue, else, and, ne, true, le, if, ge, return, _errors, do, function, empty, size
また、予約済みキーワードには、このページにリストされているマッパー関数も含まれます。
サブフィールド内のデータには、ドット表記を使用してアクセスできます。 例えば、name
オブジェクトがある場合、firstName
フィールドにアクセスするには、name.firstName
を使用します。
関数のリスト
次の表に、サンプル式とその結果の出力を含む、サポートされるすべてのマッピング関数を示します。
文字列関数 string
- STRING:連結される文字列。
"Hi, there!"
\
でエスケープする必要があります 必須。+, ?, ^, |, ., [, (, {, ), *, $, \
区切り文字として複数の文字を含めると、区切り文字は複数の文字の区切り文字として扱われます。- 文字列:必須 分割する必要がある文字列。
- REGEX: オプション 文字列の分割に使用できる正規表現。
["Hi,", "there"]
- 入力:必須 検索する文字列。
- 部分文字列:必須 文字列内で検索される部分文字列。
- START_POSITION: オプション 文字列内で検索を開始する場所です。
- OCCURRENCE: オプション 開始位置から検索する n 番目のオカレンスです。 デフォルトの重み付けは 1 です。
- 入力:必須 入力文字列。
- TO_FIND: 必須 入力内で検索する文字列。
- TO_REPLACE: 必須 「TO_FIND」内の値を置換する文字列。
- 入力:必須 入力文字列。
- START_INDEX: 必須 部分文字列が開始する入力文字列のインデックス。
- LENGTH: 必須 部分文字列の長さです。
lcase
- 入力:必須 小文字に変換される文字列。
lcase("HeLLo")
ucase
- 入力:必須 大文字に変換される文字列。
ucase("HeLLo")
\
でエスケープする必要があります:\
。 複数の区切り文字を含めると、文字列は文字列に存在する区切り文字の 任意 に分割されます。 注意: この関数は、区切り文字の存在に関係なく、文字列から null 以外のインデックスのみを返します。 結果の配列ですべてのインデックス(null を含む)が必要な場合は、「explode」関数を使用します。- 入力:必須 分割される入力文字列。
- SEPARATOR: 必須 入力を分割するために使用される文字列。
["Hello", "world"]
- SEPARATOR: 必須 オブジェクトの結合に使用される文字列。
- OBJECTS: 必須 結合する文字列の配列。
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- 入力:必須 パディングされる文字列。 この文字列は null にできます。
- COUNT: 必須 埋め込む文字列のサイズです。
- PADDING: 必須 入力を埋め込む文字列。 null または空の場合は、1 つのスペースとして扱われます。
- 入力:必須 パディングされる文字列。 この文字列は null にできます。
- COUNT: 必須 埋め込む文字列のサイズです。
- PADDING: 必須 入力を埋め込む文字列。 null または空の場合は、1 つのスペースとして扱われます。
- 文字列:必須 最初の「n」文字を取得する文字列。
- COUNT: 必須 文字列から取得する「n」文字。
- 文字列:必須 最後の「n」文字を取得する文字列。
- COUNT: 必須 文字列から取得する「n」文字。
- STRING: 必須 空白を削除する文字列。
- STRING: 必須 空白を削除する文字列。
- STRING: 必須 空白を削除する文字列。
- STRING1: 必須 比較する最初の文字列。
- STRING2: 必須 比較する 2 番目の文字列。
- STRING1: 必須 比較する最初の文字列。
- STRING2: 必須 比較する 2 番目の文字列。
正規表現関数
- STRING: 必須 グループを抽出する文字列。
- 正規表現:必須 グループを照合する正規表現。
- 文字列:必須 確認する文字列が正規表現と一致します。
- 正規表現:必須 比較する正規表現。
ハッシュ関数 hashing
- 入力:必須 ハッシュ化されるプレーンテキスト。
- CHARSET: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 入力:必須 ハッシュ化されるプレーンテキスト。
- CHARSET: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 入力:必須 ハッシュ化されるプレーンテキスト。
- CHARSET: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 入力:必須 ハッシュ化されるプレーンテキスト。
- CHARSET: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 入力:必須 ハッシュ化されるプレーンテキスト。
- CHARSET: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
URL 関数 url
- URL: 必須 プロトコルを抽出する必要がある URL です。
- URL: 必須 ホストを抽出する必要がある URL です。
- URL: 必須 ポートを抽出する必要がある URL です。
- URL: 必須 パスを抽出する必要がある URL です。
- FULL_PATH: 任意 フルパスを返すかどうかを決定するブール値。 false に設定した場合は、パスの末尾のみが返されます。
- URL: 必須 クエリ文字列の取得元の URL。
- ANCHOR: 必須 クエリ文字列内のアンカーでの処理を決定します。 「retain」、「remove」、「append」の 3 つの値のいずれかです。
値が「retain」の場合、アンカーは返された値に添付されます。
値が「削除」の場合、アンカーは返された値から削除されます。
値が「追加」の場合、アンカーは別の値として返されます。
get_url_query_str("foo://example.com:8042/over/there?name=ferret#nose", "remove")
get_url_query_str ("foo://example.comは:8042/over/there で?name=ferret#nose", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
- URL: 必須 ASCII 文字で置き換えるかエンコードする特殊文字を含む入力 URL。
- URL: 必須 特殊文字にデコードする ASCII 文字を含む入力 URL。
日付および時間関数 date-and-time
date
関数の詳細については、『 データ形式処理ガイドの日付の節を参照してください。2021-10-26T10:10:24Z
- DATE: 必須 書式設定する ZonedDateTime オブジェクトとしての入力日付。
- 形式:必須 日付の変更先となる形式。
yyyy-MM-dd HH:mm:ss
")2019-10-23 11:24:35
- TIMESTAMP: 必須 書式設定するタイムスタンプ。 これはミリ秒単位で記述されます。
- FORMAT: 必須 タイムスタンプを作成する形式。
yyyy-MM-dd'T'HH:mm:ss.SSSX
")2019-10-23T11:24:35.000Z
- DATE: 必須 日付を表す文字列。
- FORMAT: 必須 ソースの日付の形式を表す文字列。メモ: これは 日付文字列の変換先の形式を表 ていません。
- DEFAULT_DATE: 必須 指定した日付が null の場合に返されるデフォルトの日付。
2019-10-23T11:24:00Z
- DATE: 必須 日付を表す文字列。
- FORMAT: 必須 ソースの日付の形式を表す文字列。メモ: これは 日付文字列の変換先の形式を表 ていません。
2019-10-23T11:24:00Z
- DATE: 必須 日付を表す文字列。
"year"
"yyyy"
"yy"
"quarter"
"qq"
"q"
"month"
"mm"
"
"dayofyear"
"dy"
"y"
"day"
"dd"
"d"
"week"
"ww"
"w"
"weekday"
"dw"w"w"w"w"w"s 「ミリ秒」 SSS
- COMPONENT: 必須 日付の一部を表す文字列。
- 日付:必須 標準形式の日付。
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- COMPONENT: 必須 日付の一部を表す文字列。
- 値:必須 指定された日付にコンポーネントに対して設定する値。
- 日付:必須 標準形式の日付。
- YEAR: 必須 年(4 桁で記述)。
- 月:必須 月。 使用できる値は 1~12 です。
- DAY: 必須 その日。 使用できる値は 1~31 です。
- 時間:必須 時間。 使用できる値は 0~23 です。
- MINUTE: 必須 分。 使用できる値は 0~59 です。
- NANOSECOND: 必須 ナノ秒の値です。 使用できる値は 0~999999999 です。
- TIMEZONE: 必須 日時のタイムゾーン。
2019-10-17T11:55:12Z
- 日付:必須 変換しようとしている日付。
zone_date_to_utc​(2019-10-17T11:55:​12 PST
2019-10-17T19:55:12Z
- 日付:必須 変換しようとしている日付。
- ゾーン:必須 日付の変換先のタイムゾーン。
zone_date_to_zone(now(), "Europe/Paris")
2021-10-26T15:43:59Z
階層 – オブジェクト objects
- 入力:必須 確認しようとしているオブジェクトが空です。
is_empty([1, null, 2, 3])
- 入力:必須 キーと配列のペアのグループ。
arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35])
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }]
- 入力:必須 キーと値のペアのフラットリスト。
{"firstName": "John", "lastName": "Doe"}
- 文字列:必須 オブジェクトを作成するために解析される文字列。
- VALUE_DELIMITER: 任意 フィールドを値から区切る区切り文字です。 デフォルトの区切り文字は
:
です。 - FIELD_DELIMITER: 任意 フィールド値のペアを区切る区切り文字です。 デフォルトの区切り文字は
,
です。
get()
関数と str_to_object()
を使用して、文字列内のキーの値を取得できます。- 例#1: str_to_object ("firstName - John ; lastName - ; - 123 345 7890", "-", ";")
- 例#2: str_to_object ("firstName - John ; lastName - ; phone - 123 456 7890", "-", ";").get ("firstName")
- 例#1:
{"firstName": "John", "lastName": "Doe", "phone": "123 456 7890"}
- 例#2: 「John」
is_set()
関数に代わるものです。- 入力:必須 ソースデータ内に存在する場合にチェックされるパス。
null
に設定します。 これは、フィールドをターゲットスキーマにコピーしない場合に使用する必要があります。null
- OBJECT: 必須 キーの抽出元のオブジェクト。
["book1", "book2"]
- STRING: 必須 解析する文字列。
- KEY: 必須 値を抽出する必要があるキー。
- VALUE_DELIMITER: 必須 フィールドと値を区切る区切り文字です。
null
または空の文字列を指定した場合、この値は:
になります。 - FIELD_DELIMITER: 任意 フィールドと値のペアを区切る区切り文字です。
null
または空の文字列を指定した場合、この値は,
になります。
- MAP: 必須 入力マップデータ。
- KEY: 必須 キーは、単一の文字列または文字列配列にすることができます。 他のプリミティブ型(data / number)が指定された場合は、文字列として扱われます。
- MAP: 必須 入力マップデータ
- KEY: 必須 キーは、単一の文字列または文字列配列にすることができます。 他のプリミティブ型(data / number)が指定された場合は、文字列として扱われます。
- KEY: 必須 キーは文字列である必要があります。 整数や日付などの他のプリミティブ値が指定されている場合、それらは文字列に自動変換され、文字列として扱われます。
- ANY_TYPE: 必須 マップを除く、サポートされる任意の XDM データタイプを参照します。
- OBJECT: 必須 受信オブジェクトまたはオブジェクト配列を指定し、オブジェクト内の属性をキーとして指すことができます。
- OBJECT: 必須 受信オブジェクトまたはオブジェクト配列を指定し、オブジェクト内の属性をキーとして指すことができます。
オブジェクトのコピーフィーチャーについては、以下の 節を参照してください。
階層 – 配列 arrays
- 入力:必須 最初の null 以外のオブジェクトを検索する配列。
- 入力:必須 最初の要素を検索する配列。
- 入力:必須 最後の要素を検索する配列。
- 配列:必須 要素を追加する配列。
- VALUES:配列に追加する要素。
- 配列:必須 要素を追加する配列。
- VALUES:親配列に追加する配列。
- INCLUDE_NULLS: 必須 応答配列に NULLS を含めるかどうかを示すブール値。
- 値:必須 配列に変換される要素。
[1, 2, 3]
- 入力:必須 サイズの検索しようとしているオブジェクト。
size_of([1, 2, 3, 4])
- 配列:必須 プロファイルに配列を追加する配列。
upsert_array_append([123, 456])
- 配列:必須 プロファイル内の配列を置き換える配列。
upsert_array_replace([123, 456], 1)
階層 – マップ map
- 入力:必須 最初の null 以外のオブジェクトを検索するオブジェクト配列
- KEY: 必須 キーは、オブジェクト配列内のフィールド名で、値としてオブジェクトである必要があります。
- 入力:必須 最初の null 以外のオブジェクトを検索するオブジェクト配列
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"
論理演算子 logical-operators
- KEY: 必須 照合するキー。
- OPTIONS: 必須 キーと値のペアをフラット化した配列。 オプションで、最後にデフォルト値を付けることができます。
指定された stateCode が「pa」の場合は、「Pennsylvania」です。
stateCode が次と一致しない場合、「なし」。
- EXPRESSION: 必須 評価されるブール式。
- TRUE_VALUE: 必須 式が true と評価された場合に返される値。
- FALSE_VALUE: 必須 式が false と評価された場合に返される値。
集計 aggregation
- OPTIONS: 必須 相互に比較できる 1 つ以上のオブジェクト。
- OPTIONS: 必須 相互に比較できる 1 つ以上のオブジェクト。
タイプ変換 type-conversions
- STRING: 必須 BigInteger に変換される文字列。
- STRING: 必須 Double に変換する文字列。
- STRING: 必須 Float に変換される文字列。
- 文字列:必須 整数に変換される文字列。
JSON 関数 json
- 文字列:必須 シリアル化を解除する JSON 文字列。
特別業務 special-operations
guid
guid()
guid()
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
- 文字列:必須 ECID に変換される FPID 文字列。
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"
ユーザーエージェント関数 user-agent
次の表に示すユーザーエージェント関数は、次のいずれかの値を返します。
- 電話 – 画面が小さいモバイルデバイス(通常は 7"未満)
- モバイル – まだ識別されていないモバイルデバイス。 このモバイルデバイスは、eReader、タブレット、電話、時計などであり得る。
デバイスフィールド値について詳しくは、このドキュメントの付録の デバイスフィールド値のリストを参照してください。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
- USER_AGENT: 必須 ユーザーエージェント文字列。
Analytics 関数 analytics
- EVENT_STRING: 必須 Analytics イベント文字列のコンマ区切りです。
- EVENT_NAME: 必須 抽出するイベント名と ID。
- EVENT_STRING: 必須 Analytics イベント文字列のコンマ区切りです。
- EVENT_NAME: 必須 値を抽出するイベント名。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- EVENT_NAME: 必須 値の抽出元のイベント名。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- EVAR名:必須 抽出するeVar名。
オブジェクトのコピー object-copy
オブジェクトのコピー機能を使用すると、マッピングを変更せずにオブジェクトの属性を自動的にコピーできます。 例えば、ソースデータの構造が次のような場合:
address{
line1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
および次の XDM 構造:
addr{
addrLine1: 4191 Ridgebrook Way,
city: San Jose,
state: California
}
その後、マッピングは次のようになります。
address -> addr
address.line1 -> addr.addrLine1
上記の例では、address
オブジェクトが addr
にマッピングされているので、city
属性と state
属性も実行時に自動的に取り込まれます。 XDM 構造で line2
属性を作成し、入力データにも address
オブジェクトの line2
が含まれている場合、マッピングを手動で変更しなくても、入力データも自動的に取り込まれます。
自動マッピングが機能するには、次の前提条件を満たす必要があります。
- 親レベルオブジェクトはマッピングする必要があります。
- XDM スキーマに新しい属性が作成されている必要があります。
- 新しい属性は、ソーススキーマと XDM スキーマで名前が一致している必要があります。
前提条件のいずれかが満たされない場合は、データ準備を使用して、ソーススキーマを XDM スキーマに手動でマッピングする必要があります。
付録
次に、データ準備のマッピング機能の使用に関する追加情報を示します
特殊文字 special-characters
予約文字とそれらに対応するエンコードされた文字のリストを次の表に示します。
デバイスフィールドの値 device-field-values
次の表に、デバイスフィールド値のリストと対応する説明を示します。
useragents
です。useragents
です。useragent
文字列でスクリプトが検出された場合に使用されます。コードサンプル code-samples
map_get_values map-get-values
code language-json |
---|
|
map_has_keys map_has_keys
code language-json |
---|
|
add_to_map add_to_map
code language-json |
---|
|
object_to_map object_to_map
構文 1
code language-json |
---|
|
構文 2
code language-json |
---|
|
構文 3
code language-json |
---|
|
array_to_map array_to_map
code language-json |
---|
|