資料準備函式可用於根據在源欄位中輸入的內容計算和計算值。
欄位名稱可以是任何法律識別碼 — Unicode字母和數字的無限長序列,以字母開頭,貨幣符號($
)或底線字元(_
)。 變數名稱也區分大小寫。
如果欄位名稱未遵循此慣例,則欄位名稱必須以包住 ${}
. 因此,例如,如果欄位名稱為「名字」或「名字」,則名稱必須包裝如下 ${First Name}
或 ${First\.Name}
分別為5個。
與階層互動時,如果子屬性具有句點(.
),您必須使用反斜線(\
)以逸出特殊字元。 如需詳細資訊,請參閱 逸出特殊字元.
此外,如果欄位名稱為 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
子欄位內的資料可使用點記號來存取。 例如,如果 name
對象,訪問 firstName
欄位,使用 name.firstName
.
下表列出所有支援的映射函式,包括示例表達式及其產生的輸出。
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
concat | 串連指定的字串。 |
|
concat(STRING_1, STRING_2) | concat("Hi, ", "there", "!") | "Hi, there!" |
爆炸 | 根據規則運算式分割字串,並傳回一組部分。 可選擇包含分割字串的規則運算式。 依預設,拆分解析為「,」。 下列分隔字元 需要 被逸出 \ : +, ?, ^, |, ., [, (, {, ), *, $, \ 如果您包含多個字元作為分隔字元,分隔字元將視為多字元分隔字元。 |
|
explode(字串, REGEX) | explode("嗨,那兒!", " ") | ["Hi,", "there"] |
instr | 傳回子字串的位置/索引。 |
|
instr(INPUT,子字串, START_POSITION, OCCURRENCE) | instr("adobe.com", "com") | 6 |
replacestr | 如果原始字串中存在,則替換搜索字串。 |
|
replacestr(INPUT, TO_FIND, TO_REPLACE) | replacestr("這是字串re test"、"re"、"replace") | "這是字串替換測試" |
substr | 傳回指定長度的子字串。 |
|
substr(INPUT, START_INDEX, LENGTH) | substr("這是子字串測試", 7, 8) | " a subst" |
lower / lcase |
將字串轉換為小寫。 |
|
lower(INPUT) | lower("HeLo") lcase("HeLo") |
"hello" |
upper / ucase |
將字串轉換為大寫。 |
|
upper(INPUT) | upper("HeLo") ucase("HeLo") |
"HELLO" |
split | 在分隔符上分割輸入字串。 下列分隔符號 需求 被逸出 \ : \ . 如果您包含多個分隔字元,字串將依 any 字串中顯示的分隔字元。 |
|
拆分(輸入,分隔符) | split("Hello world", " ") | ["Hello", "world"] |
加入 | 使用分隔符聯接對象清單。 |
|
join(SEPARATOR, [OBJECTS]) |
join(" ", to_array(true, "Hello", "world")) |
「你好世界」 |
lpad | 將字串的左側與另一個指定字串固定。 |
|
lpad(輸入,計數,填充) | lpad("bat", 8, "yz") | "yzyzybat" |
rpad | 將字串的右側與另一個指定字串固定。 |
|
rpad(輸入,計數,填充) | rpad("bat", 8, "yz") | "batyzyzy" |
lef | 取得指定字串的第一個"n"字元。 |
|
left(字串,計數) | left("abcde", 2) | "ab" |
右 | 取得指定字串的最後"n"個字元。 |
|
right(字串,計數) | right("abcde", 2) | "de" |
ltrim | 從字串的開頭移除空白字元。 |
|
ltrim(STRING) | ltrim("hello") | "hello" |
rtrim | 移除字串結尾的空白字元。 |
|
rtrim(STRING) | rtrim("hello ") | "hello" |
trim | 從字串的開頭和結尾移除空白字元。 |
|
trim(STRING) | trim(" hello ") | "hello" |
等於 | 比較兩個字串以確認其是否相等。 此函式區分大小寫。 |
|
字串1.equals(STRING2) | "string1"。等於("STRING1") | false |
equalsIgnoreCase | 比較兩個字串以確認其是否相等。 此函式為 not 區分大小寫。 |
|
字串1.equalsIgnoreCase(STRING2) | "string1"。equalsIgnoreCase("STRING1) | true |
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
extract_regex | 根據規則運算式從輸入字串中擷取群組。 |
|
extract_regex(STRING, REGEX) | extract_regex("E259,E259B_009,1_1" , "([,]+),[,]*,([^,]+)」) | ["E259,E259B_009,1_1", "E259", "1_1"] |
matches_regex | 檢查字串是否與輸入的規則運算式相符。 |
|
matches_regex(STRING, REGEX) | matches_regex("E259,E259B_009,1_1", "([,]+),[,]*,([^,]+)」) | true |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
sha1 | 使用安全雜湊演算法1(SHA-1)取用輸入並產生雜湊值。 |
|
sha1(INPUT, CHARSET) | sha1("my text", "UTF-8") | c3599c11e47719df18a24 48690840c5dfcce3c80 |
sha256 | 使用安全雜湊演算法256(SHA-256)取用輸入並產生雜湊值。 |
|
sha256(輸入,字元集) | sha256("my text", "UTF-8") | 7330d2b39ca35eaf4cb95fc846c21 ee6a39af698154a83a586ee270a0d372104 |
sha512 | 使用安全雜湊演算法512(SHA-512)取用輸入並產生雜湊值。 |
|
sha512(輸入,字元集) | sha512("my text", "UTF-8") | a3d7e45a0d9be5fd4e4b9a3b8c9c2163c21ef 708bf11b4232bb21d2a8704ada2cdd7b367dd0788a89a5c908cfe377b1072a7ff7b36d8a8fd24d16 |
md5 | 取用輸入,並使用MD5產生雜湊值。 |
|
md5(輸入,字元集) | md5("my text", "UTF-8") | d3b96ce8c9fb4 e9bd0198d03ba6852c7 |
crc32 | 取用輸入使用循環冗餘校驗(CRC)算法來產生32位循環碼。 |
|
crc32(INPUT, CHARSET) | crc32("my text", "UTF-8") | 8df92e80 |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
get_url_protocol | 從指定URL傳回通訊協定。 如果輸入無效,則返回null。 |
|
get_url_protocol(URL) | get_url_protocol("https://platform .adobe.com/home") | https |
get_url_host | 傳回指定URL的主機。 如果輸入無效,則返回null。 |
|
get_url_host(URL) | get_url_host("https://platform .adobe.com/home") | platform.adobe.com |
get_url_port | 傳回指定URL的連接埠。 如果輸入無效,則返回null。 |
|
get_url_port(URL) | get_url_port("sftp://example.com//home/ joe/employee.csv") | 22 |
get_url_path | 傳回指定URL的路徑。 依預設,會傳回完整路徑。 |
|
get_url_path(URL, FULL_PATH) | get_url_path("sftp://example.com// home/joe/employee.csv") | "/home/joe/ employee.csv" |
get_url_query_str | 傳回指定URL的查詢字串,作為查詢字串名稱和查詢字串值的映射。 |
|
get_url_query_str(URL,錨點) | get_url_query_str("foo://example.com:8042 /over/there?name= ferret#nose", "retain" get_url_query_str("foo://example.com:8042 /over/there?name= ferret#nose", "remove" get_url_query_str("foo://example.com :8042/over/thre ?name=ferret#nose", "append") |
{"name": "ferret#nose"} {"name": "ferret"} {"name": "ferret", "_anchor_": "nose"} |
請向左/向右滾動以查看表的完整內容。 有關 date
函式,可在 資料格式處理指南.
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
now | 擷取目前時間。 | now() | now() | 2021-10-26T10:10:24Z |
|
timestamp | 檢索當前Unix時間。 | timestamp() | timestamp() | 1571850624571 | |
格式 | 根據指定的格式設定輸入日期的格式。 |
|
格式(日期,格式) | 格式(2019-10-23T11:24:00+00:00, "yyyy-MM-dd HH:mm:ss") | 2019-10-23 11:24:35 |
dformat | 根據指定格式將時間戳轉換為日期字串。 |
|
dformat(TIMESTAMP, FORMAT) | dformat(1571829875000, "yyyy-MM-dd'THH:mm:ss.SSX」) | 2019-10-23T11:24:35.000Z |
日期 | 將日期字串轉換為ZonedDateTime對象(ISO 8601格式)。 |
|
date(DATE, FORMAT, DEFAULT_DATE) | date("2019-10-23 11:24", "yyyy-MM-dd HH:mm", now()) | 2019-10-23T11:24:00Z |
日期 | 將日期字串轉換為ZonedDateTime對象(ISO 8601格式)。 |
|
日期(日期,格式) | date("2019-10-23 11:24", "yyyy-MM-dd HH:mm") | 2019-10-23T11:24:00Z |
日期 | 將日期字串轉換為ZonedDateTime對象(ISO 8601格式)。 |
|
日期(日期) | date("2019-10-23 11:24") | "2019-10-23T11":24:00Z」 |
date_part | 擷取日期的部分。 支援下列元件值: "year" "yyyy" "yy" "quarter" "qq" "q" "month" "mm" "m" "dayofyear" "dy" "y" "day" "dd" "d" "week" "ww" "w" "weekday" "dw" "w" "hour" "hh" "hh24" "hh12" "minute" "mi" "n" "second" "ss" "s" "毫秒" "ms" |
|
date_part(元件,日期) | date_part("MM", date("2019-10-17 11:55:12英吋) | 10 |
set_date_part | 在指定日期中取代元件。 接受下列元件: "year" "yyyy" "yy" "month" "mm" "m" "day" "dd" "d" "hour" "hh" "minute" "mi" "n" "second" "ss" "s" |
|
set_date_part(元件,值,日期) | set_date_part("m", 4, date("2016-11-09T11:44:44.797″) | "2016-04-09T11":44:44Z」 |
make_date_time | 從零件建立日期。 您也可以使用make_timestamp來誘導此函式。 |
|
make_date_time(年、月、日、小時、分鐘、秒、納秒、時區) | make_date_time(2019, 10, 17, 11, 55, 12, 999, "America/Los_Angeles") | 2019-10-17T11:55:12Z |
zone_date_to_utc | 將任何時區的日期轉換為UTC的日期。 |
|
zone_date_to_utc(DATE) | zone_date_to_utc​(2019-10-17T11:55:​12 PST |
2019-10-17T19:55:12Z |
zone_date_to_zone | 將日期從一個時區轉換為另一個時區。 |
|
zone_date_to_zone(DATE, ZONE) | zone_date_to_utc​(now(), "Europe/Paris") |
2021-10-26T15:43:59Z |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
is_empty | 檢查對象是否為空。 |
|
is_empty(INPUT) | is_empty([1, null, 2, 3]) |
false |
arrays_to_object | 建立對象清單。 |
|
arrays_to_object(INPUT) | arrays_to_objects('sku', explode("id1|id2", '\\|'), 'price', [22.5,14.35]) |
[{ "sku": "id1", "price": 22.5 }, { "sku": "id2", "price": 14.35 }] |
to_object | 根據給定的平面索引鍵/值配對建立對象。 |
|
to_object(INPUT) | to_object("firstName", "John", "lastName", "Doe") | {"firstName": "John", "lastName": "Doe"} |
str_to_object | 從輸入字串建立物件。 |
|
str_to_object(字串, VALUE_DELIMITER, FIELD_DELIMITER) 附註:您可以使用 get() 函式與 str_to_object() 來擷取字串中索引鍵的值。 |
|
|
contains_key | 檢查對象是否存在於源資料中。 注意: 此函式會取代已棄用的 is_set() 函式。 |
|
contains_key(INPUT) | contains_key("evars.evar.field1") | true |
取消 | 將屬性的值設定為 null . 當您不想將欄位複製到目標架構時,應使用此欄位。 |
nullify() | nullify() | null |
|
get_keys | 剖析索引鍵/值組並傳回所有索引鍵。 |
|
get_keys(OBJECT) | get_keys({"book1"):《傲慢與偏見》、《書2》:《1984年》) | ["book1", "book2"] |
get_values | 分析索引鍵/值配對,並根據指定索引鍵傳回字串的值。 |
|
get_values(STRING, KEY, VALUE_DELIMITER, FIELD_DELIMITER) | get_values("firstName - John , lastName - Cena , phone - 555 420 8692", "firstName", "-", ",") | 約翰 |
有關對象複製功能的資訊,請參閱 low.
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
合併 | 傳回指定陣列中的第一個非空物件。 |
|
合併(輸入) | coalesce(null, null, null, "first", null, "second") | "first" |
first | 擷取指定陣列的第一個元素。 |
|
first(INPUT) | first("1", "2", "3") | "1" |
最近 | 擷取指定陣列的最後一個元素。 |
|
last(INPUT) | last("1", "2", "3") | "3" |
add_to_array | 將元素新增至陣列結尾。 |
|
add_to_array(ARRAY, VALUES) | add_to_array(['a', 'b'], 'c', 'd') | ['a', 'b', 'c', 'd'] |
join_arrays | 將陣列彼此結合。 |
|
join_arrays(陣列,值) | join_arrays(['a', 'b'], ['c'], ['d', 'e']) | ['a', 'b', 'c', 'd', 'e'] |
to_array | 取用輸入清單並將其轉換為陣列。 |
|
to_array(INCLUDE_NULLS, VALUES) | to_array(false, 1, null, 2, 3) | [1, 2, 3] |
size_of | 傳回輸入的大小。 |
|
size_of(INPUT) | size_of([1, 2, 3, 4]) |
4 |
upsert_array_append | 此函式用於將整個輸入陣列中的所有元素附加到配置檔案中陣列的末尾。 此函式為 僅限 適用。 如果用於插入的上下文,則此函式將按原樣返回輸入。 |
|
upsert_array_append(ARRAY) | upsert_array_append([123, 456]) |
[123, 456] |
upsert_array_replace | 此函式可用來取代陣列中的元素。 此函式為 僅限 適用。 如果用於插入的上下文,則此函式將按原樣返回輸入。 |
|
upsert_array_replace(ARRAY) | upsert_array_replace([123, 456], 1) |
[123, 456] |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
解碼 | 在提供以陣列扁平化的索引鍵和索引鍵值配對清單的情況下,如果找到索引鍵,函式會傳回值,如果陣列中存在預設值,則會傳回預設值。 |
|
decode(KEY,OPTIONS) | decode(stateCode, "ca", "California", "pa", "Pennsylvania", "N/A") | 如果提供的stateCode是「ca」、「California」。 如果給定的stateCode是"pa",則為"Pennsylvania"。 如果stateCode不符合下列項目,則為「N/A」。 |
ii | 計算給定的布爾表達式,並根據結果返回指定值。 |
|
iif(EXPRESSION, TRUE_VALUE, FALSE_VALUE) | iif("s"。equalsIgnoreCase("S"), "True", "False") | "True" |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
min | 返回給定參數的最小值。 使用自然排序。 |
|
min(OPTIONS) | min(3, 1, 4) | 1 |
max | 傳回指定引數的最大值。 使用自然排序。 |
|
max(OPTIONS) | max(3, 1, 4) | 4 |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
to_bigint | 將字串轉換為BigInteger。 |
|
to_bigint(STRING) | to_bigint("1000000.34") | 1000000.34 |
to_decimal | 將字串轉換為Double。 |
|
to_decimal(STRING) | to_decimal("20.5") | 20.5 |
to_float | 將字串轉換為浮點數。 |
|
to_float(STRING) | to_float(「12.3456」) | 12.34566 |
to_integer | 將字串轉換為整數。 |
|
to_integer(STRING) | to_integer("12") | 12 |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
json_to_object | 從指定字串反序列化JSON內容。 |
|
json_to_object(STRING) | json_to_object({"info":{"firstName":"John","lastName":"Doe"}) | 代表JSON的物件。 |
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
uuid / guid |
產生偽隨機ID。 | uuid() guid() |
uuid() guid() |
7c0267d2-bb74-4e1a-9275-3bf4fccda5f4 c7016dc7-3163-43f7-afc7-2e1c9c206333 |
下表中包含的任何使用者代理函式都可傳回下列任一值:
請向左/向右滾動以查看表的完整內容。
函數 | 說明 | 參數 | 語法 | 運算式 | 範例輸出 |
---|---|---|---|---|---|
ua_os_name | 從用戶代理字串中提取作業系統名稱。 |
|
ua_os_name(USER_AGENT) | ua_os_name("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | iOS |
ua_os_version_major | 從使用者代理字串中擷取作業系統的主要版本。 |
|
ua_os_version_major(USER_AGENT) | ua_os_version_major s("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | iOS 5 |
ua_os_version | 從使用者代理字串中擷取作業系統的版本。 |
|
ua_os_version(USER_AGENT) | ua_os_version("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | 5.1.1 |
ua_os_name_version | 從用戶代理字串中提取作業系統的名稱和版本。 |
|
ua_os_name_version(USER_AGENT) | ua_os_name_version("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | iOS 5.1.1 |
ua_agent_version | 從用戶代理字串中提取代理版本。 |
|
ua_agent_version(USER_AGENT) | ua_agent_version("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | 5.1 |
ua_agent_version_major | 從用戶代理字串中提取代理名稱和主版本。 |
|
ua_agent_version_major(USER_AGENT) | ua_agent_version_major("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | Safari 5 |
ua_agent_name | 從用戶代理字串中提取代理名。 |
|
ua_agent_name(USER_AGENT) | ua_agent_name("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | Safari |
ua_device_class | 從用戶代理字串中提取設備類。 |
|
ua_device_class(USER_AGENT) | ua_device_class("Mozilla/5.0(iPhone;CPU iPhone OS 5_1_1(如Mac OS X)AppleWebKit/534.46(KHTML如Gecko)Version/5.1 Mobile/9B206 Safari/7534.48.3」) | 電話 |
當來源中的物件對應至XDM中的物件時,會自動套用物件複製功能。 使用者無需執行其他動作。
您可以使用對象複製功能自動複製對象的屬性,而不對映射進行更改。 例如,如果源資料的結構為:
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
屬性,而您的輸入資料也包含 line2
在 address
物件,則也會自動擷取物件,而無需手動變更對應。
為確保自動對應正常運作,必須符合下列必要條件:
如果未滿足任何先決條件,則必須使用資料準備手動將來源架構對應至XDM架構。