資料準備對應函式

「資料準備」函式可用於根據來源欄位中輸入的內容計算值。

欄位

欄位名稱可以是任何合法識別碼 — 由字母和數字構成的長度不受限制的Unicode字母和數字序列,開頭為字母、美元符號($)或底線字元(_)。 變數名稱也區分大小寫。

如果欄位名稱不遵循此慣例,則必須將欄位名稱括起來 ${}. 因此,舉例來說,如果欄位名稱為「First Name」或「First.Name」,則名稱必須包裝如下 ${First Name}${First\.Name} (分別)。

TIP
與階層互動時,如果子屬性有句點(.),則必須使用反斜線(\)以逸出特殊字元。 如需詳細資訊,請閱讀以下指南: 逸出特殊字元.

此外,如果欄位名稱為 任何 保留關鍵字中,必須以 ${}

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.

函式清單

下表列出所有支援的對映函式,包括範例運算式及其產生的輸出。

字串函式 string

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
concat
串連指定的字串。
  • STRING:要串連的字串。
concat(STRING_1, STRING_2)
concat("Hi, ", "there", "!")
"Hi, there!"
爆炸
根據規則運算式分割字串並傳回部分陣列。 可選擇加入規則運算式以分割字串。 依預設,分割會解析為「,」。 下列分隔符號 需要 將逸出 \+, ?, ^, |, ., [, (, {, ), *, $, \ 如果您包含多個字元做為分隔字元,則會將分隔字元視為多字元分隔字元。
  • 字串: 必填 需要分割的字串。
  • 規則運算式: 可選 可用來分割字串的規則運算式。
explode(STRING, REGEX)
explode("Hi, there!", ")
["Hi,", "there"]
instr
傳回子字串的位置/索引。
  • 輸入: 必填 正在搜尋的字串。
  • 子字串: 必填 在字串中搜尋的子字串。
  • START_POSITION: 可選 在字串中開始檢視的位置。
  • 發生次數: 可選 從起始位置開始尋找的第n個專案。 預設為1。
instr(INPUT, SUBSTRING, START_POSITION, OCCURRENCE)
instr(「adobe.com」, 「com」)
6
取代者
取代搜尋字串(如果存在於原始字串中)。
  • 輸入: 必填 輸入字串。
  • TO_FIND: 必填 在輸入中查詢的字串。
  • TO_REPLACE: 必填 取代「TO_FIND」內值的字串。
取代器(INPUT, TO_FIND, TO_REPLACE)
replacestr("this is a string re test", "re", "replace")
「這是字串取代測試」
substr
傳回指定長度的子字串。
  • 輸入: 必填 輸入字串。
  • START_INDEX: 必填 子字串開始的輸入字串索引。
  • 長度: 必填 子字串的長度。
substr(INPUT, START_INDEX, LENGTH)
substr(「這是子字串測試」,7、8)
「一個子集」
lower /
lcase
將字串轉換為小寫。
  • 輸入: 必填 將轉換為小寫的字串。
lower(INPUT)
lower("HeLow")
lcase(「HeLo」)
"hello"
upper /
ucase
將字串轉換為大寫。
  • 輸入: 必填 將轉換為大寫的字串。
upper(INPUT)
upper(「HeLor」)
Ucase(「HeLlO」)
"HELLO"
split
在分隔符號上分割輸入字串。 下列分隔符號 需要 將逸出 \\. 如果您包含多個分隔字元,該字串將會分割為 任何 字串中存在的分隔字元數量。 注意: 此函式只會從字串傳回非Null的索引,無論是否有分隔符號。 如果產生的陣列中需要所有索引(包括null),請改用「爆炸」函式。
  • 輸入: 必填 要分割的輸入字串。
  • 分隔符號: 必填 用來分割輸入的字串。
split(INPUT, SEPARATOR)
split(「Hello world」,「 」)
["Hello", "world"]
加入
使用分隔符號聯結物件清單。
  • 分隔符號: 必填 用來加入物件的字串。
  • 物件: 必填 要聯結的字串陣列。
join(SEPARATOR, [OBJECTS])
join(" ", to_array(true, "Hello", "world"))
「Hello world」
lpad
將字串的左側與其他指定字串貼齊。
  • 輸入: 必填 即將填補的字串。 此字串可以是Null。
  • 計數: 必填 要填補的字串大小。
  • 內距: 必填 用來填補輸入的字串。 如果為Null或空白,則會視為單一空格。
lpad(INPUT, COUNT, PADDING)
lpad("bat", 8, "yz")
"yzybat"
rpad
將字串的右側與其他指定字串貼齊。
  • 輸入: 必填 即將填補的字串。 此字串可以是Null。
  • 計數: 必填 要填補的字串大小。
  • 內距: 必填 用來填補輸入的字串。 如果為Null或空白,則會視為單一空格。
rpad(輸入、計數、內距)
rpad("bat", 8, "yz")
"batyzyzy"
左側
取得指定字串的前「n」個字元。
  • 字串: 必填 您要取得前「n」個字元的字串。
  • 計數: 必填 ​您要從字串取得的「n」個字元。
left(STRING, COUNT)
left("abcde", 2)
"ab"
取得指定字串的最後「n」個字元。
  • 字串: 必填 要取得最後「n」個字元的字串。
  • 計數: 必填 ​您要從字串取得的「n」個字元。
right(STRING, COUNT)
right("abcde", 2)
"de"
ltrim
移除字串開頭的空格。
  • 字串: 必填 您要移除空白字元的字串。
ltrim(STRING)
ltrim(" hello")
"hello"
rtrim
移除字串結尾的空格。
  • 字串: 必填 您要移除空白字元的字串。
rtrim(STRING)
rtrim(「hello 」)
"hello"
trim
移除字串開頭和結尾的空格。
  • 字串: 必填 您要移除空白字元的字串。
trim(STRING)
trim(" hello ")
"hello"
等於
比較兩個字串以確認是否相等。 此函式區分大小寫。
  • STRING1: 必填 您要比較的第一個字串。
  • STRING2: 必填 您要比較的第二個字串。
STRING1​。equals(​STRING2)
"string1"。 ​equals​("STRING1")
false
equalsIgnoreCase
比較兩個字串以確認是否相等。 此函式為 區分大小寫。
  • STRING1: 必填 您要比較的第一個字串。
  • STRING2: 必填 您要比較的第二個字串。
STRING1​。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

雜湊函式 hashing

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
sha1
接受輸入並使用安全雜湊演演算法1 (SHA-1)產生雜湊值。
  • 輸入: 必填 要雜湊的純文字。
  • 字元集: 可選 字元集的名稱。 可能的值包括UTF-8、UTF-16、ISO-8859-1和US-ASCII。
sha1(INPUT, CHARSET)
sha1(「我的文字」、「UTF-8」)
c3599c11e47719df18a24​48690840c5dfcce3c80
sha256
接受輸入並使用安全雜湊演演算法256 (SHA-256)產生雜湊值。
  • 輸入: 必填 要雜湊的純文字。
  • 字元集: 可選 字元集的名稱。 可能的值包括UTF-8、UTF-16、ISO-8859-1和US-ASCII。
sha256(輸入,字元集)
sha256(「我的文字」、「UTF-8」)
7330d2b39ca35eaf4cb95fc846c21​ee6a39af698154a83a586ee270a0d372104
sha512
接受輸入並使用安全雜湊演演算法512 (SHA-512)產生雜湊值。
  • 輸入: 必填 要雜湊的純文字。
  • 字元集: 可選 字元集的名稱。 可能的值包括UTF-8、UTF-16、ISO-8859-1和US-ASCII。
sha512(輸入,字元集)
sha512(「我的文字」、「UTF-8」)
a3d7e45a0d9be5fd4e4b9a3b8c9c2163c21ef​708bf11b4232bb21d2a8704ada2cdcd7b367dd0788a89​a5c908cfe377aceb1072a7b386d4fd2ff68a fd24d16
md5
接受輸入並使用MD5產生雜湊值。
  • 輸入: 必填 要雜湊的純文字。
  • 字元集: 可選 字元集的名稱。 可能的值包括UTF-8、UTF-16、ISO-8859-1和US-ASCII。
md5(輸入,字元集)
md5(「我的文字」、「UTF-8」)
d3b96ce8c9fb4​e9bd0198d03ba6852c7
crc32
取得輸入使用循環冗餘檢查(CRC)演演算法來產生32位元循環代碼。
  • 輸入: 必填 要雜湊的純文字。
  • 字元集: 可選 字元集的名稱。 可能的值包括UTF-8、UTF-16、ISO-8859-1和US-ASCII。
crc32(INPUT, CHARSET)
crc32(「我的文字」,「UTF-8」)
8df92e80

URL函式 url

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
get_url_protocol
從指定的URL傳回通訊協定。 如果輸入無效,則會傳回null。
  • URL: 必填 需要從中擷取通訊協定的URL。
get_url_protocol​(URL)
get_url_protocol("https://platform​.adobe.com/home")
https
get_url_host
傳回指定URL的主機。 如果輸入無效,則會傳回null。
  • URL: 必填 需要從中擷取主機的URL。
get_url_host​(URL)
get_url_host​("https://platform​.adobe.com/home")
platform.adobe.com
get_url_port
傳回指定URL的連線埠。 如果輸入無效,則會傳回null。
  • URL: 必填 需要從中擷取連線埠的URL。
get_url_port(URL)
get_url_port​("sftp://example.com//home/​joe/employee.csv")
22
get_url_path
傳回指定URL的路徑。 依預設,會傳回完整路徑。
  • URL: 必填 需要從中擷取路徑的URL。
  • 完整路徑: 可選 布林值,決定是否傳回完整路徑。 若設為false,則僅傳迴路徑的結尾。
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的查詢字串,作為查詢字串名稱和查詢字串值的對應。
  • URL: 必填 您嘗試從中取得查詢字串的URL。
  • 錨點: 必填 決定查詢字串中的錨點要如何處理。 可以是下列三個值之一:「保留」、「移除」或「附加」。

    如果值為「保留」,則錨點會附加至傳回的值。
    如果值為「remove」,則會從傳回的值中移除錨點。
    如果值為「附加」,則錨點會以個別值的形式傳回。
get_url_query_str​(URL, ANCHOR)
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/there​?name=ferret#nose", "append")
{"name": "ferret#nose"}
{"name": "ferret"}
{"name": "ferret", "_anchor_": "nose"}
get_url_encoded
此函式以URL作為輸入,並使用ASCII字元取代或編碼特殊字元。 如需特殊字元的詳細資訊,請參閱 特殊字元清單 於本檔案的附錄中。
  • URL: 必填 您要取代或編碼為ASCII字元的具有特殊字元的輸入URL。
get_url_encoded(URL)
get_url_encoded("https"://example.com/partneralliance_asia-pacific_2022")
https%3A%2F%2Fexample.com%2Fpartneralliance_asia-pacific_2022
get_url_decoded
此函式以URL作為輸入,並將ASCII字元解碼為特殊字元。 如需特殊字元的詳細資訊,請參閱 特殊字元清單 於本檔案的附錄中。
  • URL: 必填 包含ASCII字元的輸入URL,您要將其解碼成特殊字元。
get_url_decoded(URL)
get_url_decoded("https%3A%2F%2Fexample.com%2Fpartneralliance_asia-pacific_2022")
https://example.com/partneralliance_asia-pacific_2022

日期和時間函式 date-and-time

NOTE
請向左/向右捲動以檢視表格的完整內容。 關於的更多資訊 date 函式的dates區段中 資料格式處理指南.
函數
說明
參數
語法
運算式
範例輸出
now
擷取目前時間。
now()
now()
2021-10-26T10:10:24Z
時間戳記
擷取目前的Unix時間。
timestamp()
timestamp()
1571850624571
格式
根據指定的格式設定輸入日期的格式。
  • 日期: 必填 要格式化的輸入日期(ZonedDateTime物件)。
  • 格式: 必填 您希望將日期變更為的格式。
format(日期,格式)
format(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'T'HH:mm:ss.SSSX")
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(DATE)
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"

"毫秒"
"SSS"
  • 元件: 必填 代表日期組成部分的字串。
  • 日期: 必填 日期,採用標準格式。
date_part​(COMPONENT, DATE)
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​(COMPONENT, VALUE, DATE)
set_date_part("m", 4, date("2016-11-09T11:44:44.797英吋)
「2016-04-09T11:44:44Z英吋
make_date_time
從零件建立日期。 此函式也可以使用make_timestamp感生。
  • 年: 必填 以四位數字表示的年份。
  • 月: 必填 月份。 允許的值為1到12。
  • 日: 必填 日子。 允許的值為1到31。
  • 小時: 必填 小時。 允許的值為0到23。
  • 分鐘: 必填 分鐘。 允許值為0到59。
  • 納秒: 必填 納秒的值。 允許的值為0到999999999。
  • 時區: 必填 日期時間的時區。
make_date_time​(年、月、日、小時、分鐘、秒、納秒、時區)
make_date_time​(2019, 10, 17, 11, 55, 12, 999, "美洲/洛杉磯")
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

階層 — 物件 objects

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
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
從輸入字串建立物件。
  • 字串: 必填 正在剖析以建立物件的字串。
  • VALUE_DELIMITER: 可選 分隔欄位與值的分隔字元。 預設分隔字元為 :.
  • FIELD_DELIMITER: 可選 分隔欄位值配對的分隔字元。 預設分隔字元為 ,.
str_to_object​(STRING, 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"
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": "Pride and Impance", "book2": "1984"})
["book1", "book2"]
get_values
根據指定的索引鍵,剖析索引鍵/值配對並傳回字串的值。
  • 字串: 必填 您要剖析的字串。
  • 索引鍵: 必填 必須為其擷取值的索引鍵。
  • VALUE_DELIMITER: 必填 分隔欄位和值的分隔字元。 若為 null 或提供了空字串,則此值為 :.
  • FIELD_DELIMITER: 可選 分隔欄位和值配對的分隔字元。 若為 null 或提供了空字串,則此值為 ,.
get_values(STRING, KEY, VALUE_DELIMITER, FIELD_DELIMITER)
get_values("firstName - John , lastName - Cena , phone - 555 420 8692", "firstName", "-", ",")
John
map_get_values
接受地圖和按鍵輸入。 如果輸入是單一索引鍵,則函式會傳回與該索引鍵相關聯的值。 如果輸入為字串陣列,則函式會傳回與所提供索引鍵對應的所有值。 如果傳入的對應有重複的索引鍵,則傳回值必須刪除重複的索引鍵並傳回唯一值。
  • 對應: 必填 輸入地圖資料。
  • 索引鍵: 必填 索引鍵可以是單一字串或字串陣列。 如果提供任何其他基本型別(資料/數字),則會將其視為字串。
get_values(MAP, KEY)
請參閱 附錄 以取得程式碼範例。
map_has_keys
如果提供一個或多個輸入鍵,則函式傳回true。 如果提供字串陣列作為輸入,則函式在找到的第一個鍵上傳回true。
  • 對應: 必填 輸入地圖資料
  • 索引鍵: 必填 索引鍵可以是單一字串或字串陣列。 如果提供任何其他基本型別(資料/數字),則會將其視為字串。
map_has_keys(MAP, KEY)
請參閱 附錄 以取得程式碼範例。
add_to_map
接受至少兩個輸入。 可提供任意數量的地圖作為輸入。 「資料準備」會傳回單一對應,其中包含來自所有輸入的所有索引鍵/值組。 如果一個或多個索引鍵重複(在相同對應中或跨對應),資料準備會去除重複的索引鍵,因此第一個索引鍵/值組會按照它們在輸入中傳遞的順序持續存在。
對應: 必填 輸入地圖資料。
add_to_map(MAP 1, MAP 2, MAP 3, …)
請參閱 附錄 以取得程式碼範例。
object_to_map (語法1)
使用此函式來建立對應資料型別。
  • 索引鍵: 必填 金鑰必須是字串。 如果提供其他任何基本值(例如整數或日期),則會自動轉換為字串並視為字串。
  • ANY_TYPE: 必填 請參閱任何支援的XDM資料型別,但Map除外。
object_to_map(KEY, ANY_TYPE, KEY, ANY_TYPE, … )
請參閱 附錄 以取得程式碼範例。
object_to_map (語法2)
使用此函式來建立對應資料型別。
  • 物件: 必填 您可以提供內送物件或物件陣列,並以索引鍵指向物件內的屬性。
object_to_map(OBJECT)
請參閱 附錄 以取得程式碼範例。
object_to_map (語法3)
使用此函式來建立對應資料型別。
  • 物件: 必填 您可以提供內送物件或物件陣列,並以索引鍵指向物件內的屬性。
object_to_map(OBJECT_ARRAY, ATTRIBUTE_IN_OBJECT_TO_BE_USED_AS_A_KEY)
請參閱 附錄 以取得程式碼範例。

如需物件複製功能的詳細資訊,請參閱區段 以下.

階層 — 陣列 arrays

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
合併
傳回給定陣列中的第一個非null物件。
  • 輸入: 必填 您要尋找的第一個非null物件的陣列。
coalesce(INPUT)
coalesce(null, null, null, first, null, second)
"first"
第一
擷取給定陣列的第一個元素。
  • 輸入: 必填 您要尋找其第一個元素的陣列。
first(INPUT)
first("1", "2", "3")
"1"
上次
擷取給定陣列的最後一個元素。
  • 輸入: 必填 您要尋找其最後一個元素的陣列。
last(INPUT)
last("1", "2", "3")
「3」
add_to_array
將元素新增至陣列結尾。
  • 陣列: 必填 您要新增元素的陣列。
  • VALUES:您要附加至陣列的元素。
add_to_array​(ARRAY, VALUES)
add_to_array​(['a', 'b'], 'c', 'd')
['a'、'b'、'c'、'd']
join_array
將陣列彼此結合。
  • 陣列: 必填 您要新增元素的陣列。
  • VALUES:您要附加至父陣列的陣列。
join_arrays​(ARRAY, VALUES)
join_arrays​(['a', 'b'], ['c'], ['d', 'e'])
['a'、'b'、'c'、'd'、'e']
to_array
採用輸入清單並將其轉換為陣列。
  • INCLUDE_NULLS: 必填 表示是否要在回應陣列中包含null的布林值。
  • 值: 必填 要轉換為陣列的元素。
to_array​(INCLUDE_NULLS, VALUES)
to_array(false, 1, null, 2, 3)
[1, 2, 3]
大小_of
傳回輸入的大小。
  • 輸入: 必填 您嘗試尋找大小的物件。
size_of(INPUT)
size_of([1, 2, 3, 4])
4
upsert_array_append
此函式用於將整個輸入陣列中的所有元素附加到Profile中陣列的結尾。 此函式為 僅限 適用於更新期間。 如果在插入內容中使用,此函式會依原樣傳回輸入。
  • 陣列: 必填 在設定檔中附加陣列的陣列。
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]

階層 — 對應 map

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
array_to_map
此函式以物件陣列和索引鍵作為輸入,並傳回索引鍵欄位的對應,其中值為索引鍵,而陣列元素為值。
  • 輸入: 必填 您要尋找的第一個非null物件的物件陣列。
  • 索引鍵: 必填 索引鍵必須是物件陣列中的欄位名稱,而且物件必須是值。
array_to_map(OBJECT[] 輸入,鍵)
閱讀 附錄 以取得程式碼範例。
object_to_map
此函式將物件當作引數,並傳回機碼值組的對應。
  • 輸入: 必填 您要尋找的第一個非null物件的物件陣列。
object_to_map(OBJECT_INPUT)
"object_to_map(address),其中輸入為" + "address: {line1 : "345 park ave",line2: "bldg 2",City : "san jose",State : "CA",type: "office"}"
傳回具有給定欄位名稱和值配對的對應,如果輸入為null,則傳回null。 例如︰"{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"
to_map
此函式接受索引鍵值配對清單並傳回索引鍵值配對的對應。
to_map(OBJECT_INPUT)
"to_map("firstName", "John", "lastName", "Doe")"
傳回具有給定欄位名稱和值配對的對應,如果輸入為null,則傳回null。 例如︰"{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"

邏輯運運算元 logical-operators

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
解碼
指定將索引鍵和索引鍵值配對清單平面化為陣列時,若找到索引鍵,此函式會傳回值,若陣列中存在索引鍵,則會傳回預設值。
  • 索引鍵: 必填 要比對的金鑰。
  • OPTIONS: 必填 鍵/值組的平面化陣列。 您可以選擇將預設值放在結尾。
decode(KEY, OPTIONS)
decode(stateCode, "ca", "California", "pa", "Pennsylvania", "N/A")
如果指定的stateCode為"ca"、"California"。
如果指定的stateCode為「pa」,「Pennsylvania」。
如果stateCode不符合下列內容,「不適用」。
iif
評估給定的布林運算式,並根據結果傳回指定的值。
  • 運算式: 必填 正在評估的布林運算式。
  • TRUE_VALUE: 必填 如果運算式的運算結果為true,則傳回的值。
  • FALSE_VALUE: 必填 運算式評估為false時會傳回的值。
iif(運算式, TRUE_VALUE, FALSE_VALUE)
iif("s"。equalsIgnoreCase("S"), "True", "False")
"True"

彙總 aggregation

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
min
傳回給定引數的最小值。 使用自然排序。
  • OPTIONS: 必填 可以相互比較的一或多個物件。
min(OPTIONS)
min(3, 1, 4)
1
max
傳回給定引數的最大值。 使用自然排序。
  • OPTIONS: 必填 可以相互比較的一或多個物件。
最大(OPTIONS)
max(3, 1, 4)
4

型別轉換 type-conversions

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
to_bigint
將字串轉換為BigInteger。
  • 字串: 必填 要轉換為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函式 json

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
json_to_object
從給定的字串將JSON內容還原序列化。
  • 字串: 必填 要還原序列化的JSON字串。
json_to_object​(STRING)
​ json_to_object({"info":{"firstName":"John","lastName": "Doe"}})
代表JSON的物件。

特殊操作 special-operations

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
uuid /
guid
產生偽隨機識別碼。
uuid()
guid()
uuid()
guid()
7c0267d2-bb74-4e1a-9275-3bf4fccda5f4
c7016dc7-3163-43f7-afc7-2e1c9c206333
fpid_to_ecid
此函式接受FPID字串並將其轉換為ECID,以便用於Adobe Experience Platform和Adobe Experience Cloud應用程式。
  • 字串: 必填 要轉換為ECID的FPID字串。
fpid_to_ecid(STRING)
fpid_to_ecid("4ed70bee-b654-420a-a3fd-b58b6b65e991")
"28880788470263023831040523038280731744"

使用者代理程式功能 user-agent

下表包含的任何使用者代理程式函式都可以傳回下列任一值:

  • 電話 — 具有小熒幕(通常< 7英吋)的行動裝置
  • 行動 — 尚未識別的行動裝置。 此行動裝置可以是電子閱讀器、平板電腦、手機、手錶等。

如需裝置欄位值的詳細資訊,請參閱 裝置欄位值清單 於本檔案的附錄中。

NOTE
請向左/向右捲動以檢視表格的完整內容。
函數
說明
參數
語法
運算式
範例輸出
ua_os_name
從使用者代理字串中擷取作業系統名稱。
  • USER_AGENT: 必填 使用者代理字串。
ua_os_name​(USER_AGENT)
ua_os_name​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
iOS
ua_os_version_major
從使用者代理程式字串中擷取作業系統的主要版本。
  • USER_AGENT: 必填 使用者代理字串。
ua_os_version_major​(USER_AGENT)
ua_os_version_major​s("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
iOS 5
ua_os_version
從使用者代理程式字串中擷取作業系統的版本。
  • USER_AGENT: 必填 使用者代理字串。
ua_os_version​(USER_AGENT)
ua_os_version​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
5.1.1
ua_os_name_version
從使用者代理字串中擷取作業系統的名稱和版本。
  • USER_AGENT: 必填 使用者代理字串。
ua_os_name_version​(USER_AGENT)
ua_os_name_version​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
iOS 5.1.1
ua_agent_version
從使用者代理字串中擷取代理程式版本。
  • USER_AGENT: 必填 使用者代理字串。
ua_agent_version​(USER_AGENT)
ua_agent_version​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
5.1
ua_agent_version_major
從使用者代理字串中擷取代理名稱和主要版本。
  • USER_AGENT: 必填 使用者代理字串。
ua_agent_version_major​(USER_AGENT)
ua_agent_version_major​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
Safari 5
ua_agent_name
從使用者代理字串中擷取代理名稱。
  • USER_AGENT: 必填 使用者代理字串。
ua_agent_name​(USER_AGENT)
ua_agent_name​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
Safari
ua_device_class
從使用者代理程式字串中擷取裝置類別。
  • USER_AGENT: 必填 使用者代理字串。
ua_device_class​(USER_AGENT)
ua_device_class​("Mozilla/5.0 (iPhone;CPU iPhone OS 5_1_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML like Gecko)版本/5.1 Mobile/9B206 Safari/7534.48.3")
電話

Analytics函式 analytics

NOTE
您只能對WebSDK和Adobe Analytics流程使用下列分析函式。
函數
說明
參數
語法
運算式
範例輸出
aa_get_event_id
從Analytics事件字串中擷取事件ID。
  • EVENT_STRING: 必填 逗號分隔的Analytics事件字串。
  • 事件名稱: 必填 要擷取的事件名稱和ID。
aa_get_event_id(EVENT_STRING, EVENT_NAME)
aa_get_event_id("event101=5:123456,scOpen", "event101")
123456
aa_get_event_value
從Analytics事件字串中擷取事件值。 如果未指定事件值,則會傳回1。
  • EVENT_STRING: 必填 逗號分隔的Analytics事件字串。
  • 事件名稱: 必填 要從中擷取值的事件名稱。
aa_get_event_value(EVENT_STRING, EVENT_NAME)
aa_get_event_value("event101=5:123456,scOpen", "event101")
5
aa_get_product_categories
從Analytics產品字串中擷取產品類別。
  • PRODUCTS_STRING: 必填 Analytics產品字串。
aa_get_product_categories(PRODUCTS_STRING)
aa_get_product_categories(";範例產品1;1;3.50,範例類別2;範例產品2;1;5.99")
[null,「範例category 2」]
aa_get_product_names
從Analytics產品字串中擷取產品名稱。
  • PRODUCTS_STRING: 必填 Analytics產品字串。
aa_get_product_names(PRODUCTS_STRING)
aa_get_product_names(";範例產品1;1;3.50,範例類別2;範例產品2;1;5.99")
["Example product 1","Example product 2"]
aa_get_product_quantities
從Analytics產品字串中擷取數量。
  • PRODUCTS_STRING: 必填 Analytics產品字串。
aa_get_product_quantices(PRODUCTS_STRING)
aa_get_product_quantices(";範例產品1;1;3.50,範例類別2;範例產品2")
["1",空]
aa_get_product_prices
從Analytics產品字串中擷取價格。
  • PRODUCTS_STRING: 必填 Analytics產品字串。
aa_get_product_prices(PRODUCTS_STRING)
aa_get_product_prices(";範例產品1;1;3.50,範例類別2;範例產品2")
["3.50",空]
aa_get_product_event_values
從產品字串中擷取已命名事件的值,做為字串陣列。
  • PRODUCTS_STRING: 必填 Analytics產品字串。
  • 事件名稱: 必填 要從中擷取值的事件名稱。
aa_get_product_event_values(PRODUCTS_STRING, EVENT_NAME)
aa_get_product_event_values(";範例產品1;1;4.20;event1=2.3|event2=5:1,;範例產品2;1;4.20;event1=3|event2=2:2", "event1")
[「2.3」、「3」]
aa_get_product_evars
從產品字串中擷取已命名事件的evar值,做為字串陣列。
  • PRODUCTS_STRING: 必填 Analytics產品字串。
  • eVar名稱: 必填 要擷取的eVar名稱。
aa_get_product_evars(PRODUCTS_STRING, EVENT_NAME)
aa_get_product_evars(";範例產品;1;6.69;;eVar1=銷售值", "eVar1")
[「銷售值」]

物件複製 object-copy

TIP
當來源中的物件對應至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

在上述範例中, citystate 屬性也會在執行階段自動擷取,因為 address 物件已對應至 addr. 如果您要建立 line2 XDM結構中的屬性,而您的輸入資料也包含 line2address 物件,則也會自動擷取,而不需要手動變更對應。

若要確保自動對應能夠運作,必須符合下列先決條件:

  • 父級物件應進行對應;
  • 必須在XDM結構描述中建立新屬性;
  • 新屬性在來源結構描述和XDM結構描述中應該有相符的名稱。

如果不滿足任何先決條件,則必須使用資料準備手動將來源結構描述對應到XDM結構描述。

附錄

以下提供使用「資料準備」對應函式的其他資訊

特殊字元 special-characters

下表概述保留字元及其對應的編碼字元清單。

保留字元
編碼字元
空格
%20
%21
%22
#
%23
$
%24
%
%25
&
%26
%27
(
%28
)
%29
*
%2A
+
%2B
%2C
/
%2F
%3A
%3B
<
%3C
=
%3D
>
%3E
?
%3F
@
%40
[
%5B
]
%5D
^
%5E
%60
~
%7E

裝置欄位值 device-field-values

下表概述裝置欄位值清單及其對應說明。

裝置
說明
桌面
桌上型電腦或筆記型電腦型別的裝置。
匿名
匿名裝置。 在某些情況下,這些類別包括 useragents 已遭匿名化軟體變更的專案。
未知
未知的裝置。 這些通常是 useragents 未包含裝置相關資訊的資訊。
行動
尚未識別的行動裝置。 此行動裝置可以是電子閱讀器、平板電腦、手機、手錶等。
平板電腦
具備大熒幕(通常> 7英吋)的行動裝置。
電話
小熒幕(通常< 7英吋)的行動裝置。
觀看
具有小熒幕(通常小於2英吋)的行動裝置。 這些裝置通常可作為手機/平板電腦型別裝置的額外畫面。
增強現實
具有AR功能的行動裝置。
Virtual Reality
具備VR功能的行動裝置。
電子閱讀器
類似於平板電腦的裝置,但通常具有 eInk 畫面。
機上盒
連線裝置,允許透過電視大小的熒幕進行互動。
TV
類似機頂盒的裝置,但內建於電視中。
家用電器
(通常為大型)家用電器,例如冰箱。
遊戲主機
固定式遊戲系統,例如 Playstation 或 XBox.
手持式遊戲機
行動遊戲系統,例如 Nintendo Switch.
語音
語音導向裝置,例如 Amazon Alexa 或 Google Home.
汽車
車輛瀏覽器。
自動機制
造訪網站的機器人。
機器人行動裝置
造訪網站但表示希望被視為行動訪客的機器人。
自動機制模擬器
造訪網站的機器人,假扮成機器人 Google,但事實並非如此。 注意:在大多數情況下,機器人模仿者確實是機器人。
雲端
雲端型應用程式。 這些不是機器人或駭客,而是需要連線的應用程式。 其中包括 Mastodon 伺服器。
駭客
若在中偵測到指令碼,則會使用此裝置值。 useragent 字串。

程式碼範例 code-samples

map_get_values map-get-values

選取以檢視範例
code language-json
 example = "map_get_values(book_details,\"author\") where input is : {\n" +
        "    \"book_details\":\n" +
        "    {\n" +
        "        \"author\": \"George R. R. Martin\",\n" +
        "        \"price\": 17.99,\n" +
        "        \"ISBN\": \"ISBN-978-0553801477\"\n" +
        "    }\n" +
        "}",
      result = "{\"author\": \"George R. R. Martin\"}"

map_has_keys map_has_keys

選取以檢視範例
code language-json
 example = "map_has_keys(book_details,\"author\")where input is : {\n" +
        "    \"book_details\":\n" +
        "    {\n" +
        "        \"author\": \"George R. R. Martin\",\n" +
        "        \"price\": 17.99,\n" +
        "        \"ISBN\": \"ISBN-978-0553801477\"\n" +
        "    }\n" +
        "}",
      result = "true"

add_to_map add_to_map

選取以檢視範例
code language-json
example = "add_to_map(book_details, book_details2) where input is {\n" +
        "    \"book_details\":\n" +
        "    {\n" +
        "        \"author\": \"George R. R. Martin\",\n" +
        "        \"price\": 17.99,\n" +
        "        \"ISBN\": \"ISBN-978-0553801477\"\n" +
        "    }\n" +
        "}" +
        "{\n" +
        "    \"book_details2\":\n" +
        "    {\n" +
        "        \"author\": \"Neil Gaiman\",\n" +
        "        \"price\": 17.99,\n" +
        "        \"ISBN\": \"ISBN-0-380-97365-0\"\n" +
        "        \"publisher\": \"William Morrow\"\n" +
        "    }\n" +
        "}",
      result = "{\n" +
        "    \"book_details\":\n" +
        "    {\n" +
        "        \"author\": \"George R. R. Martin\",\n" +
        "        \"price\": 17.99,\n" +
        "        \"ISBN\": \"ISBN-978-0553801477\"\n" +
        "        \"publisher\": \"William Morrow\"\n" +
        "    }\n" +
        "}",
      returns = "A new map with all elements from map and addends"

object_to_map object_to_map

語法1

選取以檢視範例
code language-json
example = "object_to_map(\"firstName\", \"John\", \"lastName\", \"Doe\")",
result = "{\"firstName\" : \"John\", \"lastName\": \"Doe\"}"

語法2

選取以檢視範例
code language-json
example = "object_to_map(address) where input is " +
  "address: {line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}",
result = "{line1 : \"345 park ave\",line2: \"bldg 2\",City : \"san jose\",State : \"CA\",type: \"office\"}"

語法3

選取以檢視範例
code language-json
example = "object_to_map(addresses,type)" +
        "\n" +
        "[\n" +
        "    {\n" +
        "        \"line1\": \"345 park ave\",\n" +
        "        \"line2\": \"bldg 2\",\n" +
        "        \"City\": \"san jose\",\n" +
        "        \"State\": \"CA\",\n" +
        "        \"type\": \"home\"\n" +
        "    },\n" +
        "    {\n" +
        "        \"line1\": \"345 park ave\",\n" +
        "        \"line2\": \"bldg 2\",\n" +
        "        \"City \": \"san jose\",\n" +
        "        \"State\": \"CA\",\n" +
        "        \"type\": \"work\"\n" +
        "    },\n" +
        "    {\n" +
        "        \"line1\": \"345 park ave\",\n" +
        "        \"line2\": \"bldg 2\",\n" +
        "        \"City \": \"san jose\",\n" +
        "        \"State\": \"CA\",\n" +
        "        \"type\": \"office\"\n" +
        "    }\n" +
        "]" ,
result = "{\n" +
        "    \"home\":\n" +
        "    {\n" +
        "        \"line1\": \"345 park ave\",\n" +
        "        \"line2\": \"bldg 2\",\n" +
        "        \"City\": \"san jose\",\n" +
        "        \"State\": \"CA\",\n" +
        "        \"type\": \"home\"\n" +
        "    },\n" +
        "    \"work\":\n" +
        "    {\n" +
        "        \"line1\": \"345 park ave\",\n" +
        "        \"line2\": \"bldg 2\",\n" +
        "        \"City \": \"san jose\",\n" +
        "        \"State\": \"CA\",\n" +
        "        \"type\": \"work\"\n" +
        "    },\n" +
        "    \"office\":\n" +
        "    {\n" +
        "        \"line1\": \"345 park ave\",\n" +
        "        \"line2\": \"bldg 2\",\n" +
        "        \"City \": \"san jose\",\n" +
        "        \"State\": \"CA\",\n" +
        "        \"type\": \"office\"\n" +
        "    }\n" +
        "}"

array_to_map array_to_map

選取以檢視範例
code language-json
example = "array_to_map(addresses, \"type\") where addresses is\n" +
  "\n" +
  "[\n" +
  "    {\n" +
  "        \"line1\": \"345 park ave\",\n" +
  "        \"line2\": \"bldg 2\",\n" +
  "        \"City\": \"san jose\",\n" +
  "        \"State\": \"CA\",\n" +
  "        \"type\": \"home\"\n" +
  "    },\n" +
  "    {\n" +
  "        \"line1\": \"345 park ave\",\n" +
  "        \"line2\": \"bldg 2\",\n" +
  "        \"City \": \"san jose\",\n" +
  "        \"State\": \"CA\",\n" +
  "        \"type\": \"work\"\n" +
  "    },\n" +
  "    {\n" +
  "        \"line1\": \"345 park ave\",\n" +
  "        \"line2\": \"bldg 2\",\n" +
  "        \"City \": \"san jose\",\n" +
  "        \"State\": \"CA\",\n" +
  "        \"type\": \"office\"\n" +
  "    }\n" +
  "]" ,
result = "{\n" +
  "    \"home\":\n" +
  "    {\n" +
  "        \"line1\": \"345 park ave\",\n" +
  "        \"line2\": \"bldg 2\",\n" +
  "        \"City\": \"san jose\",\n" +
  "        \"State\": \"CA\",\n" +
  "        \"type\": \"home\"\n" +
  "    },\n" +
  "    \"work\":\n" +
  "    {\n" +
  "        \"line1\": \"345 park ave\",\n" +
  "        \"line2\": \"bldg 2\",\n" +
  "        \"City \": \"san jose\",\n" +
  "        \"State\": \"CA\",\n" +
  "        \"type\": \"work\"\n" +
  "    },\n" +
  "    \"office\":\n" +
  "    {\n" +
  "        \"line1\": \"345 park ave\",\n" +
  "        \"line2\": \"bldg 2\",\n" +
  "        \"City \": \"san jose\",\n" +
  "        \"State\": \"CA\",\n" +
  "        \"type\": \"office\"\n" +
  "    }\n" +
  "}",
returns = "Returns a map with given field name and value pairs or null if input is null"
recommendation-more-help
461cc884-c234-4a0c-ac75-6efbaafc1394