データ準備のマッピング機能
データ準備関数を使用すると、ソースフィールドに入力された値に基づいて値を計算および計算できます。
フィールド
フィールド名には、任意の法的識別子(Unicode 文字と数字の無制限のシーケンス、文字で始まる、ドル記号)を使用できます$
)、またはアンダースコア(_
)に設定します。 変数名でも大文字と小文字が区別されます。
フィールド名がこの規則に従わない場合は、フィールド名をでラップする必要があります ${}
. 例えば、フィールド名が「名」または「First.Name」の場合、名前はのようにラップされる必要があります。 ${First Name}
または ${First\.Name}
それぞれ。
フィールド名が いずれか 次の予約キーワードのうち、でラップする必要があります ${}{}
:
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!"
\
: +, ?, ^, |, ., [, (, {, ), *, $, \
区切り文字として複数の文字を含めた場合、区切り文字は複数の文字の区切り文字として扱われます。- 文字列: 必須 分割する必要がある文字列。
- 正規表現: オプション 文字列の分割に使用できる正規表現。
["Hi,", "there"]
- 必要情報: 必須 検索される文字列。
- 部分文字列: 必須 文字列内で検索される部分文字列。
- START_POSITION: オプション 文字列内で検索を開始する場所。
- 発生件数: オプション 開始位置から検索する n 番目のオカレンス。 デフォルトは 1 です。
- 必要情報: 必須 入力文字列。
- TO_FIND: 必須 入力内で検索する文字列。
- TO_REPLACE: 必須 「TO_FIND」内の値を置換する文字列。
- 必要情報: 必須 入力文字列。
- START_INDEX: 必須 部分文字列が開始する入力文字列のインデックス。
- 長さ: 必須 部分文字列の長さ。
lcase
- 必要情報: 必須 小文字に変換される文字列。
lcase("HeLLo")
ucase
- 必要情報: 必須 大文字に変換される文字列。
ucase("HeLLo")
\
: \
. 複数の区切り文字を含めると、文字列はで分割されます いずれか の区切り文字が文字列に存在します。 注意: この関数は、区切り文字の存在に関係なく、文字列から null 以外のインデックスのみを返します。 結果の配列ですべてのインデックス(null を含む)が必要な場合は、「explode」関数を使用します。- 必要情報: 必須 分割される入力文字列。
- 区切り記号: 必須 入力を分割するために使用される文字列。
["Hello", "world"]
- 区切り記号: 必須 オブジェクトの結合に使用する文字列。
- オブジェクト: 必須 結合される文字列の配列。
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
- 必要情報: 必須 パディングされる文字列。 この文字列は null にできます。
- カウント: 必須 パドアウトする文字列のサイズ。
- パディング: 必須 入力を埋め込む文字列。 null または空の場合は、1 つのスペースとして扱われます。
- 必要情報: 必須 パディングされる文字列。 この文字列は null にできます。
- カウント: 必須 パドアウトする文字列のサイズ。
- パディング: 必須 入力を埋め込む文字列。 null または空の場合は、1 つのスペースとして扱われます。
- 文字列: 必須 最初の「n」文字を取得する文字列。
- カウント: 必須 文字列から取得する「n」文字。
- 文字列: 必須 最後の「n」文字を取得する文字列。
- カウント: 必須 文字列から取得する「n」文字。
- 文字列: 必須 空白を削除する文字列。
- 文字列: 必須 空白を削除する文字列。
- 文字列: 必須 空白を削除する文字列。
- STRING1: 必須 比較する最初の文字列。
- STRING2: 必須 比較する 2 番目の文字列。
- STRING1: 必須 比較する最初の文字列。
- STRING2: 必須 比較する 2 番目の文字列。
正規表現関数
- 文字列: 必須 グループを抽出する文字列。
- 正規表現: 必須 グループと照合する正規表現。
- 文字列: 必須 チェックする文字列は正規表現と一致します。
- 正規表現: 必須 比較する正規表現。
ハッシュ関数 hashing
- 必要情報: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 必要情報: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 必要情報: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 必要情報: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 使用可能な値は、UTF-8、UTF-16、ISO-8859-1、US-ASCII です。
- 必要情報: 必須 ハッシュ化するプレーンテキスト。
- 文字セット: オプション 文字セットの名前。 使用可能な値は、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」の場合、アンカーは返された値に添付されます。
値が「削除」の場合、アンカーは戻り値から削除されます。
値が「追加」の場合、アンカーは別の値として返されます。
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
- 日付: 必須 書式設定する日付を 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
- 日付: 必須 日付を表す文字列。
- 形式: 必須 ソースの日付の形式を表す文字列。注意: これが実行する ではない は、日付文字列の変換先の形式を表します。
- DEFAULT_DATE: 必須 指定した日付が null の場合は、デフォルトの日付が返されます。
2019-10-23T11:24:00Z
- 日付: 必須 日付を表す文字列。
- 形式: 必須 ソースの日付の形式を表す文字列。注意: これが実行する ではない は、日付文字列の変換先の形式を表します。
2019-10-23T11:24:00Z
- 日付: 必須 日付を表す文字列。
「年」
"yyyy"
"yy"
"quarter"
"qq"
「q」
「月」
「mm」
「m」
"dayofyear"
"dy"
"y"
「日」
"dd"
"d"
「週間」
"ww"
"w"
"平日"
"dw"
"w"
「時間」
「hh」
「hh24」
「hh12」
「分」
"mi"
"n"
「秒」
"ss"
"s"
「ミリ秒」
"SSS"
- コンポーネント: 必須 日付の一部を表す文字列。
- 日付: 必須 標準形式の日付。
"year"
"yyyy"
"yy"
"month"
"mm"
"m"
"day"
"dd"
"d"
"hour"
"hh"
"minute"
"mi"
"n"
"second"
"ss"
"s"
- コンポーネント: 必須 日付の一部を表す文字列。
- 値: 必須 指定された日付にコンポーネントに対して設定される値。
- 日付: 必須 標準形式の日付。
- 年: 必須 年を 4 桁で表します。
- 月: 必須 月。 使用できる値は 1~12 です。
- DAY: 必須 その日。 使用できる値は 1~31 です。
- 時間: 必須 時間。 使用できる値は 0~23 です。
- 分: 必須 分。 使用できる値は 0~59 です。
- ナノ秒: 必須 ナノ秒の値。 使用できる値は 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_utc​(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
- オブジェクト: 必須 キーの抽出元となるオブジェクト。
["book1", "book2"]
- 文字列: 必須 解析する文字列。
- キー: 必須 値を抽出する必要があるキー。
- VALUE_DELIMITER: 必須 フィールドと値を区切る区切り文字。 次のいずれかの場合:
null
または、空の文字列が指定された場合、この値はです:
. - FIELD_DELIMITER: オプション フィールドと値のペアを区切る区切り文字。 次のいずれかの場合:
null
または、空の文字列が指定された場合、この値はです,
.
- マップ: 必須 入力マップデータ。
- キー: 必須 キーは、単一の文字列または文字列配列にすることができます。 他のプリミティブ型(data / number)が指定された場合は、文字列として扱われます。
- マップ: 必須 入力マップデータ
- キー: 必須 キーは、単一の文字列または文字列配列にすることができます。 他のプリミティブ型(data / number)が指定された場合は、文字列として扱われます。
- キー: 必須 キーは文字列である必要があります。 整数や日付などの他のプリミティブ値が指定されている場合、それらは文字列に自動変換され、文字列として扱われます。
- ANY_TYPE: 必須 マップを除く、サポートされる XDM データタイプを参照します。
- オブジェクト: 必須 受信オブジェクトまたはオブジェクト配列を指定し、キーとしてオブジェクト内の属性を指すことができます。
- オブジェクト: 必須 受信オブジェクトまたはオブジェクト配列を指定し、キーとしてオブジェクト内の属性を指すことができます。
オブジェクトのコピーフィーチャーについては、の節を参照してください 下.
階層 – 配列 arrays
- 必要情報: 必須 最初の null 以外のオブジェクトを検索する配列。
- 必要情報: 必須 最初の要素を検索する配列。
- 必要情報: 必須 最後の要素を検索する配列。
- 配列: 必須 要素を追加する配列。
- VALUES:配列に追加する要素。
- 配列: 必須 要素を追加する配列。
- VALUES:親配列に追加する配列。
- INCLUDE_NULLS: 必須 応答配列に null を含めるかどうかを示すブール値。
- 値: 必須 配列に変換される要素。
[1, 2, 3]
- 必要情報: 必須 サイズを検索しようとしているオブジェクト。
size_of([1, 2, 3, 4])
- 配列: 必須 プロファイルに配列を追加する配列。
upsert_array_append([123, 456])
- 配列: 必須 プロファイル内の配列を置き換える配列。
upsert_array_replace([123, 456], 1)
階層 – マップ map
- 必要情報: 必須 最初の null 以外のオブジェクトを検索するオブジェクト配列。
- キー: 必須 キーは、オブジェクト配列内のフィールド名で、オブジェクトを値とする必要があります。
- 必要情報: 必須 最初の 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
- 文字列: 必須 BigInteger に変換する文字列を指定します。
- 文字列: 必須 Double 型に変換する文字列を指定します。
- 文字列: 必須 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 イベント文字列。
- イベント名: 必須 抽出するイベント名と ID。
- EVENT_STRING: 必須 コンマ区切りの Analytics イベント文字列。
- イベント名: 必須 値を抽出するイベント名。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- PRODUCTS_STRING: 必須 Analytics 製品文字列。
- イベント名: 必須 値を抽出するイベント名。
- 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
上記の例では、 city
および state
属性も、次の理由により実行時に自動的に取り込まれます。 address
オブジェクトのマッピング先 addr
. を作成する場合 line2
xdm 構造の属性と入力データにも、が含まれています 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 |
---|
|