データ準備のマッピング機能
データ準備関数を使用すると、ソースフィールドに入力された内容に基づいて値を計算および計算できます。
フィールド
フィールド名には、任意の法的識別子(文字、ドル記号($)、アンダースコア文字(_)で始まるUnicode文字と数字の無制限の長さのシーケンス)を指定できます。 変数名でも大文字と小文字が区別されます。
フィールド名がこの規則に従わない場合、フィールド名は${}で囲む必要があります。 例えば、フィールド名が「First Name」または「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"]- INPUT: Required検索中の文字列。
- 部分文字列:必須文字列内で検索される部分文字列。
- START_POSITION: オプション文字列の検索を開始する場所。
- 発生件数:オプション開始位置から検索する発生件数は9件です。 デフォルトの重み付けは 1 です。
- 入力:必須入力文字列。
- TO_FIND: 必須入力内で検索する文字列。
- TO_REPLACE: 必須 「TO_FIND」内の値を置き換える文字列。
- 入力:必須入力文字列。
- START_INDEX: 必須 サブストリングが開始する入力文字列のインデックス。
- LENGTH: Required サブストリングの長さ。
lcase
- INPUT: Required小文字に変換される文字列。
lcase("HeLLo")
ucase
- INPUT: 必須大文字に変換される文字列。
ucase("HeLLo")
\。 \複数の区切り文字を含める場合、文字列は、文字列内に存在する区切り文字のうち any に分割されます。 注意:この関数は、区切り記号の有無に関係なく、文字列からnull以外のインデックスのみを返します。 結果の配列にヌルを含むすべてのインデックスが必要な場合は、代わりに「explode」関数を使用します。- INPUT: Required分割する入力文字列。
- 区切り記号:必須入力を分割するために使用される文字列。
["Hello", "world"]- 区切り記号:必須 オブジェクトの結合に使用される文字列。
- オブジェクト : 必須結合される文字列の配列。
join(SEPARATOR, [OBJECTS])join(" ", to_array(true, "Hello", "world"))- INPUT: Required パディングされる文字列。 この文字列はnullにできます。
- COUNT: 必須 パディングする文字列のサイズ。
- PADDING: Required入力を入力する文字列。 nullまたは空の場合は、1つのスペースとして扱われます。
- INPUT: Required パディングされる文字列。 この文字列はnullにできます。
- COUNT: 必須 パディングする文字列のサイズ。
- PADDING: Required入力を入力する文字列。 nullまたは空の場合は、1つのスペースとして扱われます。
- 文字列:必須の最初の「n」文字を取得する文字列。
- COUNT: 必須文字列から取得する「n」文字。
- 文字列:必須の最後の「n」文字を取得する文字列。
- COUNT: 必須文字列から取得する「n」文字。
- 文字列:必須空白を削除する文字列。
- 文字列:必須空白を削除する文字列。
- 文字列:必須空白を削除する文字列。
- STRING1: 必須最初の文字列を比較します。
- STRING2: 必須比較する2番目の文字列。
- STRING1: 必須最初の文字列を比較します。
- STRING2: 必須比較する2番目の文字列。
正規表現関数
- STRING: Required グループを抽出する文字列。
- REGEX: 必須 グループを一致させる正規表現。
- STRING: 必須 チェックする文字列は、正規表現と一致します。
- REGEX: 必須比較対象の正規表現。
ハッシュ関数 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。
- アンカー:必須 クエリ文字列内のアンカーで何が行われるかを決定します。 「retain」、「remove」、「append」の3つの値のいずれかを指定できます。
値が「retain」の場合、アンカーは返された値に添付されます。
値が「remove」の場合、アンカーは返された値から削除されます。
値が「append」の場合、アンカーは別の値として返されます。
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: 必須入力URLは、ASCII文字で置き換えたり、エンコードしたりする特殊文字を含みます。
- URL: 必須 ASCII文字を使用して特殊文字にデコードする入力URL。
日付および時間関数 date-and-time
date関数の詳細については、 データ形式処理ガイド の日付セクションを参照してください。2021-10-26T10:10:24Z- 日付:必須 ZonedDateTime オブジェクトとして書式設定する入力日。
- 書式:必須日付を変更する書式。
yyyy-MM-dd HH:mm:ss")2019-10-23 11:24:35- TIMESTAMP: 必須書式設定するタイムスタンプ。 ミリ秒単位で記述されます。
- 書式:必須 タイムスタンプを設定する書式。
yyyy-MM-dd'T'HH:mm:ss.SSSX")2019-10-23T11:24:35.000Z- 日付:必須日付を表す文字列。
- FORMAT: Required ソース日付の形式を表す文字列。注:これは not が、日付文字列を変換する形式を表しています。
- DEFAULT_DATE: 必須指定された日付がnullの場合に返されるデフォルトの日付。
2019-10-23T11:24:00Z- 日付:必須日付を表す文字列。
- FORMAT: Required ソース日付の形式を表す文字列。注:これは not が、日付文字列を変換する形式を表しています。
2019-10-23T11:24:00Z- 日付:必須日付を表す文字列。
"year"
"yyyy"
"yy"
"quarter"
"qq"
"q"
"month"
"mm"
"m"
"dayofyear"
"dy"
"y"
"day"
"dd"
"d"
"week"
"ww"
"weekday"
"w"
- コンポーネント : 必須日付の一部を表す文字列。
- 日付:必須日付(標準形式)。
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- コンポーネント : 必須日付の一部を表す文字列。
- 値:必須特定の日付のコンポーネントに設定する値。
- 日付:必須日付(標準形式)。
- 年:必須年。4桁で書きます。
- 月:必須月 許可される値は1 ~ 12です。
- 日:必須 許可される値は1 ~ 31です。
- 時間:必要時間。 許可される値は0 ~ 23です。
- 分:必須分。 許可される値は0 ~ 59です。
- NANOSECOND: 必須 ナノ秒の値。 許可される値は0 ~ 999999999です。
- TIMEZONE: 必須日時のタイムゾーン。
2019-10-17T11:55:12Z- 日付:必須変換しようとしている日付。
zone_date_to_utc​(2019-10-17T11:55:​12 PST2019-10-17T19:55:12Z- 日付:必須変換しようとしている日付。
- ゾーン:必須日付を変換しようとしているタイムゾーン。
zone_date_to_zone(now(), "Europe/Paris")2021-10-26T15:43:59Z階層 – オブジェクト objects
- INPUT: Required チェックしようとしているオブジェクトが空です。
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()関数に置き換わります。- INPUT: 必須 ソースデータ内に存在するかどうかを確認するパス。
nullに設定します。 フィールドをターゲットスキーマにコピーしない場合に使用します。null- オブジェクト : 必須 キーが抽出されるオブジェクト。
["book1", "book2"]- 文字列:必須解析する文字列。
- キー:必須値を抽出するキー。
- VALUE_DELIMITER: 必須 フィールドと値を区切る区切り文字。
nullまたは空の文字列が指定されている場合、この値は:です。 - FIELD_DELIMITER: オプション フィールドと値のペアを区切る区切り文字。
nullまたは空の文字列が指定されている場合、この値は,です。
- MAP: 必須入力マップデータ。
- キー:必須 キーは、単一の文字列または文字列配列にすることができます。 他のプリミティブ型(データ/数値)が指定されている場合、それは文字列として扱われます。
- MAP: 必須入力マップデータ
- キー:必須 キーは、単一の文字列または文字列配列にすることができます。 他のプリミティブ型(データ/数値)が指定されている場合、それは文字列として扱われます。
- キー:必須 キーは文字列である必要があります。 整数や日付などの他のプリミティブ値が指定されている場合、それらは文字列に自動変換され、文字列として扱われます。
- ANY_TYPE: 必須 マップ以外でサポートされているXDM データタイプを指します。
- オブジェクト : 必須着信オブジェクトまたはオブジェクト配列を指定し、オブジェクト内の属性をキーとしてポイントできます。
- オブジェクト : 必須着信オブジェクトまたはオブジェクト配列を指定し、オブジェクト内の属性をキーとしてポイントできます。
オブジェクトコピー機能について詳しくは、以下の節を参照してください。
階層 – 配列 arrays
- INPUT: 必須最初のnull以外のオブジェクトを検索する配列。
- INPUT: 必須最初の要素を検索する配列。
- INPUT: 必須の最後の要素を検索する配列。
- 配列:必須要素を追加する配列。
- 値:配列に追加する要素。
- 配列:必須要素を追加する配列。
- 値:親配列に追加する配列。
- INCLUDE_NULLS: 必須応答配列にNULLSを含めるかどうかを示すブール値。
- 値:必須配列に変換する要素。
[1, 2, 3]- INPUT: Required サイズを検索しようとしているオブジェクト。
size_of([1, 2, 3, 4])- 配列:必須 プロファイルに配列を追加する配列。
upsert_array_append([123, 456])- 配列:必須 プロファイル内の配列を置き換える配列。
upsert_array_replace([123, 456], 1)- 区切り記号:必須配列内の要素の結合に使用する区切り記号。
- 配列:必須結合する配列(フラット化後)。
array_to_string(";", ["Hello", "world"])- 配列:必須 フィルターする配列
- 述語:必須指定された配列の各要素に適用される述語。
filterArray([5, -6, 0, 7], x -> x > 0)- 配列:必須変換する配列。
- 述語:必須指定された配列の各要素に適用される述語。
transformArray([5, 6, 7], x -> x + 1)- 配列:必須 フラット化する配列。
階層 – マップ map
- INPUT: 必須最初のnull以外のオブジェクトを検索するオブジェクト配列。
- KEY: 必須 キーは、オブジェクト配列のフィールド名で、値としてオブジェクトである必要があります。
- INPUT: 必須最初のnull以外のオブジェクトを検索するオブジェクト配列。
"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}""{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"論理演算子 logical-operators
- キー:必須一致するキー。
- OPTIONS: 必須 キーと値のペアのフラット化された配列。 オプションで、デフォルト値を最後に設定できます。
指定されたstateCodeが「pa」の場合、「Pennsylvania」です。
stateCodeが次の「N/A」と一致しない場合。
- 式:必須評価中のブール式。
- TRUE_VALUE: 必須式がtrueと評価された場合に返される値。
- FALSE_VALUE: 必須式がfalseと評価された場合に返される値。
集計 aggregation
- OPTIONS: 必須互いに比較できる1つ以上のオブジェクト。
- OPTIONS: 必須互いに比較できる1つ以上のオブジェクト。
文字コンバージョン type-conversions
- STRING: Required BigIntegerに変換する文字列。
- STRING: Required Doubleに変換する文字列。
- STRING: Required浮動小数点に変換する文字列。
- STRING: Required整数に変換する文字列。
JSON関数 json
- 文字列:必須 シリアル化解除するJSON文字列。
json_to_object​({"info":{"firstName":"John","lastName": "Doe"}})特殊作戦 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_NAME: 必須抽出する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
上記の例では、city オブジェクトがstateにマッピングされているため、address属性とaddr属性も実行時に自動的に取り込まれます。 XDM構造にline2属性を作成し、入力データにline2 オブジェクトにaddressも含まれている場合、マッピングを手動で変更することなく自動的に取り込まれます。
自動マッピングを確実に機能させるには、次の前提条件を満たす必要があります。
- 親レベルのオブジェクトはマッピングする必要があります。
- 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 |
|---|
|