協助程式功能

使用個人化編輯器中的協助程式功能,透過操控資料、執行計算和格式化內容,以精確且有效率的方式定義個人化內容體驗。 探索並實驗這些功能、操作員和協助人員,瞭解他們如何合作,以幫助您製作量身打造的資料導向歷程。

彙總函式

使用彙總函式將多個值分組,以形成單一摘要值。 您也可以使用陣列和清單函式,更輕鬆地定義與陣列、清單和字串的互動。

平均 average

使用average函式傳回陣列中所有選取值的算術平均值。

語法
code language-sql
{%= average(array) %}

範例

下列作業會傳回所有訂單的平均價格。

code language-sql
{%=average(orders.order.price)%}

計數 count

使用count函式傳回指定陣列中的元素數目。

語法
code language-sql
{%= count(array) %}

範例

下列作業會傳回陣列中的訂單數。

code language-sql
{%= count(orders) %}

max max

使用max函式傳回陣列中所有選取值的最大值。

語法
code language-sql
{%= max(array) %}

範例

下列作業會傳回所有訂單的最高價格。

code language-sql
{%=max(orders.order.price)%}

min min

使用min函式傳回陣列中所有選取值的最小值。

語法
code language-sql
{%= min(array) %}

範例

下列作業會傳回所有訂單的最低價格。

code language-sql
{%=min(orders.order.price) %}

sum sum

使用sum函式傳回陣列中所有選取值的總和。

語法
code language-sql
{%= sum(array) %}

範例

下列作業會傳回所有訂單價格的總和。

code language-sql
 {%=sum(orders.order.price)%}

算術函式 maths

使用算術函式對值執行基本計算。

新增 add

使用+ (相加)函式來尋找兩個引數運算式的總和。

語法
code language-sql
{%= double + double %}

範例

下列作業會加總兩個不同產品的價格。

code language-sql
{%= product1.price + product2.price %}

乘 multiply

使用* (乘法)函式尋找兩個引數運算式的乘積。

語法
code language-sql
{%= double * double %}

範例

下列作業會尋找存貨的產品與產品價格,以尋找產品的總值。

code language-sql
{%= product.inventory * product.price %}

減 substract

使用- (減法)函式找出兩個引數運算式的差異。

語法
code language-sql
{%= double - double %}

範例

下列作業會找出兩個不同產品之間的價格差異。

code language-sql
{%= product1.price - product2.price %}

除 divide

使用/ (除法)函式尋找兩個引數運算式的商。

語法
code language-sql
{%= double / double %}

範例

下列作業會找出已售出產品總數與已賺取金額總數之間的商數,以檢視每個專案的平均成本。

code language-sql
{%= totalProduct.price / totalProduct.sold %}

餘數 remainder

使用% (餘數)函式找出兩個引數運算式相除後的餘數。

語法
code language-sql
{%= double % double %}

範例

下列作業會檢查個人的年齡是否可被5整除。

code language-sql
{%= person.age % 5 = 0 %}

陣列和清單功能 arrays

使用這些函式可讓與陣列、清單和字串的互動更容易。

countOnlyNull count-only-null

使用countOnlyNull函式計算清單中null值的數目。

語法
code language-sql
{%= countOnlyNull(array) %}

範例

code language-sql
{%= countOnlyNull([4,0,1,6,0,0]) %}

傳回3。

countWithNull count-with-null

使用countWithNull函式計算清單中包含null值的所有元素。

語法
code language-sql
{%= countWithNull(array) %}

範例

code language-sql
{%= countOnlyNull([4,0,1,6,0,0]) %}

傳回6。

distinct distinct

使用distinct函式從移除重複值的陣列或清單中取得值。

語法
code language-sql
{%= distinct(array) %}

範例

下列作業會指定在多個商店下訂單的人員。

code language-sql
{%= distinct(person.orders.storeId).count() > 1 %}

distinctCountWithNull distinct-count-with-null

使用distinctCountWithNull函式計算清單中包含null值的不同值數目。

語法
code language-sql
{%= distinctCountWithNull(array) %}

範例

code language-sql
{%= distinctCountWithNull([10,2,10,null]) %}

傳回3。

head head

使用head函式傳回陣列或清單中的第一個專案。

語法
code language-sql
{%= head(array) %}

範例

下列作業會傳回價格最高的前五個訂單中的第一個。 有關topN函式的詳細資訊可在陣列🔗區段的第一個n中找到。

code language-sql
{%= head(topN(orders,price, 5)) %}

topN first-n

topN函式根據給定的數值運算式以遞減順序排序陣列,並傳回前N個專案。 如果陣列大小小於N,則會傳回整個已排序陣列。

語法
code language-sql
{%= topN(array, value, amount) %}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{ARRAY} 要排序的陣列或清單。
{VALUE} 用來排序陣列或清單的屬性。
{AMOUNT} 要傳回的專案數。

範例

下列作業會傳回價格最低的前五個訂單。

code language-sql
{%= topN(orders,price, 5) %}

在 in

使用in函式來判斷專案是否為陣列或清單的成員。

語法
code language-sql
{%= in(value, array) %}

範例

下列作業會定義3月、6月或9月有生日的人員。

code language-sql
{%= in (person.birthMonth, [3, 6, 9]) %}

包含 includes

使用includes函式來判斷陣列或清單是否包含指定的專案。

語法
code language-sql
{%= includes(array,item) %}

範例

下列作業會定義哪些人最喜愛的顏色包括紅色。

code language-sql
{%= includes(person.favoriteColors,"red") %}

相交 intersects

intersects函式是用來判斷兩個陣列或清單是否至少有一個通用成員。

語法
code language-sql
{%= intersects(array1, array2) %}

範例

下列作業會定義哪些人最喜愛的顏色至少包括紅色、藍色或綠色之一。

code language-sql
{%= intersects(person.favoriteColors,["red", "blue", "green"]) %}

bottomN last-n

bottomN函式根據給定的數值運算式以遞增順序排序陣列,並傳回前N個專案。 如果陣列大小小於N,則會傳回整個已排序陣列。

語法
code language-sql
{%= bottomN(array, value, amount) %}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{ARRAY} 要排序的陣列或清單。
{VALUE} 用來排序陣列或清單的屬性。
{AMOUNT} 要傳回的專案數。

範例

下列作業會傳回價格最高的前5個訂單。

code language-sql
{%= bottomN(orders,price, 5) %}

notIn notin

使用notIn函式來判斷專案是否不是陣列或清單的成員。

NOTE
notIn函式​ 也 ​可確保這兩個值都不等於null。 因此,結果不是in函式的完全否定。
語法
code language-sql
{%= notIn(value, array) %}

範例

下列作業會定義非三月、六月或九月的人員生日。

code language-sql
{%= notIn(person.birthMonth ,[3, 6, 9]) %}

subsetOf subset

使用subsetOf函式來判斷特定陣列(陣列A)是否是另一個陣列(陣列B)的子集。 換句話說,陣列A中的所有元素都是陣列B的元素。

語法
code language-sql
{%= subsetOf(array1, array2) %}

範例

下列作業會定義造訪過其所有最喜愛城市的人。

code language-sql
{%= subsetOf(person.favoriteCities,person.visitedCities) %}

超集Of superset

使用supersetOf函式來判斷特定陣列(陣列A)是否是另一個陣列(陣列B)的超集。 換句話說,該陣列A包含陣列B中的所有元素。

語法
code language-sql
{%= supersetOf(array1, array2) %}

範例

下列作業會定義已吃過至少一次壽司和比薩的人。

code language-sql
{%= supersetOf(person.eatenFoods,["sushi", "pizza"]) %}

日期和時間函式 date-time

使用日期和時間函式對值執行日期和時間作業。

addDays add-days

addDays函式會依指定的天數調整指定日期,使用正值增加值,使用負值減少值。

語法
code language-sql
{%= addDays(date, number) %}

範例

  • 輸入: {%= addDays(stringToDate("2024-11-01T17:19:51Z"),10) %}
  • 輸出: 2024-11-11T17:19:51Z

addHours add-hours

addHours函式會依指定的小時數調整指定日期,使用正值增加值,使用負值減少值。

語法
code language-sql
{%= addHours(date, number) %}

範例

  • 輸入: {%= addHours(stringToDate("2024-11-01T17:19:51Z"),1) %}
  • 輸出: 2024-11-01T18:19:51Z

addMinutes add-minutes

addMinutes函式會以指定的分鐘數調整指定日期,使用正值增加值,使用負值減少值。

語法
code language-sql
{%= addMinutes(date, number) %}

範例

  • 輸入: {%= addMinutes(stringToDate("2024-11-01T17:59:51Z"),10) %}
  • 輸出: 2024-11-01T18:09:51Z

addMonths add-months

addMonths函式會依指定的月數調整指定日期,使用正值增加值,使用負值減少值。

語法
code language-sql
{%= addMonths(date, number) %}

範例

  • 輸入: {%= addMonths(stringToDate("2024-11-01T17:19:51Z"),2) %}
  • 輸出: 2025-01-01T17:19:51Z

addSeconds add-seconds

addSeconds函式會以指定的秒數來調整指定日期,使用正值來遞增,使用負值來遞減。

語法
code language-sql
{%= addSeconds(date, number) %}

範例

  • 輸入: {%= addSeconds(stringToDate("2024-11-01T17:19:51Z"),10) %}
  • 輸出: 2024-11-01T17:20:01Z

addYears add-years

addYears函式會依指定的年數調整指定日期,使用正值增加值,使用負值減少值。

語法
code language-sql
{%= addYears(date, number) %}

範例

  • 輸入: {%= addYears(stringToDate("2024-11-01T17:19:51Z"),2) %}
  • 輸出: 2026-11-01T17:19:51Z

年齡 age

使用age函式從指定日期擷取年齡。

語法
code language-sql
 {%= age(datetime) %}

ageInDays age-days

ageInDays函式會計算指定日期與目前日期之間經過的天數。 未來的日期使用負值,過去的日期使用正值。

語法
code language-sql
{%= ageInDays(date) %}

範例

currentDate = 2025-01-07T12:17:10.720122+05:30 (亞洲/加爾各答)

  • 輸入: {%= ageInDays(stringToDate("2025-01-01T17:19:51Z"))%}
  • 輸出: 5

Agenmonths age-months

ageInMonths函式會計算指定日期與目前日期之間經過的月數。 未來的日期使用負值,過去的日期使用正值。

語法
code language-sql
{%= ageInMonths(date) %}

範例

currentDate = 2025-01-07T12:22:46.993748+05:30(亞洲/加爾各答)

  • 輸入: {%=ageInMonths(stringToDate("2024-01-01T00:00:00Z"))%}
  • 輸出: 12

compareDates compare-dates

compareDates函式會比較第一個輸入日期與另一個輸入日期。 如果date1等於date2,則會傳回0;如果date1在date2之前,則會傳回–1;如果date1在date2之後,則會傳回1。

語法
code language-sql
{%= compareDates(date1, date2) %}

範例

  • 輸入: {%=compareDates(stringToDate("2024-12-02T00:00:00Z"), stringToDate("2024-12-03T00:00:00Z"))%}
  • 輸出: -1

convertZonedDateTime convert-zoned-date-time

convertZonedDateTime函式將日期時間轉換為指定的時區。

語法
code language-sql
{%= convertZonedDateTime(dateTime, timezone) %}

範例

  • 輸入: {%=convertZonedDateTime(stringToDate("2019-02-19T08:09:00Z"), "Asia/Tehran")%}
  • 輸出: 2019-02-19T11:39+03:30[Asia/Tehran]

currentTimeInMillis current-time

使用currentTimeInMillis函式擷取目前時間(以Epoch毫秒為單位)。

語法
code language-sql
{%= currentTimeInMillis() %}

dateDiff date-diff

使用dateDiff函式來擷取兩個日期之間的天數差異。

語法
code language-sql
{%= dateDiff(datetime,datetime) %}

dayOfMonth day-month

dayOfMonth會傳回代表該月某日的數字。

語法
code language-sql
{%= dayOfMonth(datetime) %}

範例

  • 輸入: {%= dayOfMonth(stringToDate("2024-11-05T17:19:51Z")) %}
  • 輸出: 5

DayOfWeek day-week

使用dayOfWeek函式來擷取星期幾。

語法
code language-sql
{%= dayOfWeek(datetime) %}

dayOfYear day-year

使用dayOfYear函式來擷取一年當中的第幾天。

語法
code language-sql
{%= dayOfYear(datetime) %}

diffInSeconds diff-seconds

diffInSeconds函式傳回兩個日期之間的秒數差。

語法
code language-sql
{%= diffInSeconds(endDate, startDate) %}

範例

  • 輸入: {%=diffInSeconds(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-11-01T17:19:01Z"))%}
  • 輸出: 50

extractHours extract-hours

extractHours函式會從指定的時間戳記中擷取時數元件。

語法
code language-sql
{%= extractHours(date) %}

範例

  • 輸入: {%= extractHours(stringToDate("2024-11-01T17:19:51Z"))%}
  • 輸出: 17

extractMinutes extract-minutes

extractMinutes函式會從指定的時間戳記中擷取分鐘元件。

語法
code language-sql
{%= extractMinutes(date) %}

範例

  • 輸入: {%= extractMinutes(stringToDate("2024-11-01T17:19:51Z"))%}
  • 輸出: 19

extractMonths extract-months

extractMonth函式會從指定的時間戳記中擷取月份元件。

語法
code language-sql
{%= extractMonths(date) %}

範例

  • 輸入: {%=extractMonth(stringToDate("2024-11-01T17:19:51Z"))%}
  • 輸出: 11

extractSeconds extract-seconds

extractSeconds函式會從指定的時間戳記中擷取第二個元件。

語法
code language-sql
{%= extractSeconds(date) %}

範例

  • 輸入: {%=extractSeconds(stringToDate("2024-11-01T17:19:51Z"))%}
  • 輸出: 51

formatDate format-date

使用formatDate函式來格式化日期時間值。 格式應為有效的Java DateTimeFormat模式。

語法
code language-sql
{%= formatDate(datetime, format) %}

其中第一個字串是日期屬性,第二個值是您想要轉換及顯示日期的方式。

note
NOTE
如果日期模式無效,日期會回覆為ISO標準格式。
您可以使用Oracle檔案中摘要的Java日期格式函式

範例

下列作業會以下列格式傳回日期:MM/DD/YY。

code language-sql
{%= formatDate(profile.timeSeriesEvents._mobile.hotelBookingDetails.bookingDate, "MM/dd/YY") %}

圖樣字元 pattern-characters

有些樣式字母看起來可能類似,但代表不同的概念。

模式
含義
範例(針對2023-12-31T10:15:30Z)
y
日曆年(標準年)
2023
Y
周基準年(ISO 8601)。 可能會依年份邊界而有所不同。
2024 (2023年12月31日為2024年的第一週)
M
月份(1-12或類似Jan, January的文字)
12或 Dec
m
小時制的分鐘(0-59)
15
d
當月日期(1-31)
31
D
年日(1-366)
365

支援地區設定的日期格式 format-date-locale

您可以使用formatDate函式將日期時間值格式化為對應的語言敏感表示法,例如針對所需的地區設定。 格式應為有效的Java DateTimeFormat模式。

語法
code language-sql
{%= formatDate(datetime, format, locale) %}

其中第一個字串是日期屬性,第二個值是您想要轉換和顯示日期的方式,第三個值代表字串格式的地區設定。

note
NOTE
如果日期模式無效,日期會回覆為ISO標準格式。
您可以使用Oracle檔案中摘要的Java日期格式函式。
您可以使用Oracle檔案和支援的地區設定中概述的格式設定和有效地區設定。

範例

下列作業會以下列格式傳回日期: MM/dd/YY和locale FRANCE。

code language-sql
{%= formatDate(profile.timeSeriesEvents._mobile.hotelBookingDetails.bookingDate, "MM/dd/YY", "fr_FR") %}

getCurrentZonedDateTime get-current-zoned-date-time

getCurrentZonedDateTime函式傳回目前日期和時間,並附上時區資訊。

語法
code language-sql
{%= getCurrentZonedDateTime() %}

範例

  • 輸入: {%= getCurrentZonedDateTime() %}
  • 輸出: 2024-12-06T17:22:02.281067+05:30[Asia/Kolkata]

diffinhours hours-difference

diffInHours函式傳回兩個日期之間的時數差。

語法
code language-sql
{%= diffInHours(endDate, startDate) %}

範例

  • 輸入: {%= diffInHours(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-11-01T07:19:51Z"))%}
  • 輸出: 10

diffinMinutes diff-minutes

diffInMinutes函式傳回兩個日期之間的差異(以分鐘為單位)。

語法
code language-sql
{%= diffInMinutes(endDate, startDate) %}

範例

  • 輸入: {%= diffInMinutes(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-11-01T16:19:51Z"))%}
  • 輸出: 60

diffinMonths months-difference

diffInMonths函式傳回兩個日期之間的月差。

語法
code language-sql
{%= diffInMonths(endDate, startDate) %}

範例

  • 輸入: {%=diffInMonths(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2024-08-01T17:19:51Z"))%}
  • 輸出: 3

setDays set-days

使用setDays函式設定指定日期時間的月份日期。

語法
code language-sql
{%= setDays(datetime, day) %}

setHours set-hours

使用setHours函式設定日期時間的小時。

語法
code language-sql
{%= setHours(datetime, hour) %}

toDateTime string-to-date-time

toDateTime函式將字串轉換為日期。 針對無效輸入會傳回epoch日期作為輸出。

語法
code language-sql
{%= toDateTime(string, string) %}

範例

  • 輸入: {%=toDateTime("2024-11-01T17:19:51Z")%}
  • 輸出: 2024-11-01T17:19:51Z

toUTC to-utc

使用toUTC函式將日期時間轉換為UTC。

語法
code language-sql
{%= toUTC(datetime) %}

truncateToStartOfDay truncate-day

使用truncateToStartOfDay函式,將指定日期時間設定為00:00的當天開始,藉此修改指定的日期時間。

語法
code language-sql
{%= truncateToStartOfDay(date) %}

範例

  • 輸入: {%= truncateToStartOfDay(stringToDate("2024-11-01T17:19:51Z")) %}
  • 輸出: 2024-11-01T00:00Z

truncateToStartOfQuarter truncate-quarter

使用truncateToStartOfQuarter函式可將日期時間截斷為其季度的第一天(例如1月1日、4月1日、7月1日、10月1日),截斷時間為00:00。

語法
code language-sql
{%= truncateToStartOfQuarter(dateTime) %}

範例

  • 輸入: {%=truncateToStartOfQuarter(stringToDate("2024-11-01T17:19:51Z"))%}
  • 輸出: 2024-10-01T00:00Z

truncateToStartOfWeek truncate-week

truncateToStartOfWeek函式將指定日期時間設定為一週的開始(星期一的00:00),以修改指定的日期時間。

語法
code language-sql
{%= truncateToStartOfWeek(dateTime) %}

範例

  • 輸入: {%= truncateToStartOfWeek(stringToDate("2024-11-19T17:19:51Z"))%} // tuesday
  • 輸出: 2024-11-18T00:00Z // monday

truncateToStartOfYear truncate-year

使用truncateToStartOfYear函式來修改指定的日期時間,方法是在00:00將日期時間截斷為一年的第一天(1月1日)。

語法
code language-sql
{%= truncateToStartOfYear(dateTime) %}

範例

  • 輸入: {%=truncateToStartOfYear(stringToDate("2024-11-01T17:19:51Z"))%}
  • 輸出: 2024-01-01T00:00Z

weekOfYear week-of-year

使用weekOfYear函式來擷取該年的周數。

語法
code language-sql
{%= weekOfYear(datetime) %}

diffInYear diff-years

使用diffInYears函式以年為單位傳回兩個日期之間的差異。

語法
code language-sql
{%= diffInYears(endDate, startDate) %}: int

範例

  • 輸入: {%=diffInYears(stringToDate("2024-11-01T17:19:51Z"), stringToDate("2019-10-01T17:19:51Z"))%}
  • 輸出: 5

運運算元函式 operators

使用布林值和比較函式來執行邏輯評估。

和 and

and函式用來建立邏輯結合。

語法
code language-sql
{%= query1 and query2 %}

範例

下列作業會傳回所有具有本國(法國)和出生年(1985)的人。

code language-sql
{%= profile.homeAddress.country = "France" and profile.person.birthYear = 1985 %}

或 or

or函式用來建立邏輯分離。

語法
code language-sql
{%= query1 or query2 %}

範例

下列作業會傳回所有具有本國(法國)或出生年(1985)的人。

code language-sql
{%= profile.homeAddress.country = "France" or profile.person.birthYear = 1985 %}

等於 operator-equals

= (等於)函式檢查一個值或運算式是否等於另一個值或運算式。

語法
code language-sql
{%= expression = value %}

範例

下列作業會檢查住家地址國家/地區是否為法國。

code language-sql
{%= profile.homeAddress.country = "France" %}

不等於 notequal

!= (不等於)函式檢查一個值或運算式是否為​ 不 ​等於另一個值或運算式。

語法
code language-sql
{%= expression != value %}

範例

下列作業會檢查住家地址國家/地區是否不是France。

code language-sql
{%= profile.homeAddress.country != "France" %}

大於 greaterthan

使用> (大於)函式來檢查第一個值是否大於第二個值。

語法
code language-sql
{%= expression1 > expression2 %}

範例

下列作業會嚴格定義1970年後出生的人。

code language-sql
{%= profile.person.birthYear > 1970 %}

大於或等於 greaterthanorequal

使用>= (大於或等於)函式來檢查第一個值是否大於或等於第二個值。

語法
code language-sql
{%= expression1 >= expression2 %}

範例

下列作業定義1970年或之後出生的人。

code language-sql
{%= profile.person.birthYear >= 1970 %}

小於 lessthan

使用< (小於)比較函式來檢查第一個值是否小於第二個值。

語法
code language-sql
{%= expression1 < expression2 %}

範例

下列作業定義2000年以前出生的人。

code language-sql
{%= profile.person.birthYear < 2000 %}

小於或等於 lessthanorequal

使用<= (小於或等於)比較函式來檢查第一個值是否小於或等於第二個值。

語法
code language-sql
{%= expression1 <= expression2 %}

範例

下列作業會定義2000年或之前出生的人。

code language-sql
{%= profile.person.birthYear <= 2000 %}

動態函式 dynamic-helpers

使用動態協助程式函式,針對動態個人化使用條件式評估、反複專案和變數指派。

預設遞補值 default-value

如果屬性為空白或null,則會使用Default Fallback Value協助程式傳回預裝置援值。 此機制適用於設定檔屬性和歷程事件。

語法
code language-sql
Hello {%=profile.personalEmail.name.firstName ?: "there" %}!

在此範例中,如果此設定檔的firstName屬性為空白或Null,則會顯示值there。

if (條件) if-function

if協助程式用於定義條件區塊。
如果運算式評估傳回true,則會轉譯區塊,否則會略過該區塊。

語法
code language-sql
{%#if contains(account.accountOrganization.primaryEmailDomain, ".edu")%}
<a href="https://www.adobe.com/academia">Check out this link</a>

在if協助程式之後,您可以輸入else陳述式,以指定要執行的程式碼區塊(如果相同條件為false)。
elseif陳述式會指定新條件,以測試第一個陳述式是否傳回false。

格式

code language-sql
{
    {
        {%#if condition1%} element_1
        {%else if condition2%} element_2
        {%else%} default_element
        {%/if%}
    }
}

unless unless

使用unless協助程式來定義條件區塊。 藉由與if協助程式相對,如果運算式評估傳回false,則會轉譯區塊。

語法
code language-sql
{%#unless unlessCondition%} element_1 {%else%} default_element {%/unless%}

範例

根據電子郵件地址副檔名轉譯某些內容:

code language-sql
{%#unless endsWith(account.accountOrganization.primaryEmailDomain}, ".edu")%}
Some Normal Content
{%else%}
Some edu specific content
{%/unless%}

每個 each

使用each協助程式來反複處理陣列。

協助程式結構為{{#each ArrayName}} YourContent {{/each}}

您可以在區塊內使用關鍵字this來參照個別陣列專案。 使用{{@index}}呈現陣列專案的索引。

語法
code language-sql
{{#each profile.productsInCart}}
    <li>{{this.name}}</li>
{{/each}}

範例

code language-sql
{{#each profile.homeAddress.city}}
  {{@index}} : {{this}}<br>
{{/each}}

範例

呈現此使用者在購物車中擁有的產品清單:

code language-sql
{{#each profile.products as |product|}}
    <li>{{product.productName}} {{product.productRating}}</li>
{{/each}}

使用 with

使用with協助程式變更範本部分的評估權杖。

語法
code language-sql
{{#with profile.person.name}}
{{this.firstName}} {{this.lastName}}
{{/with}}

with協助程式也可用來定義捷徑變數。

範例

使用with將長變數名稱別名化為短變數名稱:

code language-sql
{{#with profile.person.name as |name|}}
 Hi {{name.firstName}} {{name.lastName}}!
 Checkout our trending products for today!
{{/with}}

let let

let函式允許將運算式儲存為變數,以便稍後在查詢中使用。

語法
code language-sql
{% let variable = expression %} {{variable}}

範例

下列範例可讓您計算購物車中價格介於100到1000之間的產品的總價。

code language-sql
{% let sum = 0%}
    {{#each profile.productsInCart as |p|}}
        {%#if p.price>100 and p.price<1000%}
            {%let sum = sum + p.price %}
        {%/if%}
    {{/each}}
{{snippet-not-found:sum}}

執行中繼資料 execution-metadata

AVAILABILITY
此功能限量提供。 請聯絡您的 Adobe 代表以取得存取權。

使用executionMetadata以動態方式擷取自訂索引鍵/值組並儲存至訊息執行內容。

透過此功能,您可以將內容相關資訊附加至行銷活動或歷程中的任何原生動作。 使用它可將即時傳遞內容資料匯出至外部系統,以供多種用途,例如追蹤、分析、個人化和下游處理。

NOTE
自訂動作不支援executionMetadata函式。

例如,您可以使用executionMetadata協助程式將特定ID附加至傳送給每個設定檔的每個傳遞。 此資訊會在執行階段產生,然後可匯出擴充的執行中繼資料,以供與外部報告平台進行下游調解。

語法
code language-none
{{executionMetadata key="your_key" value="your_value"}}

在此語法中,key參考中繼資料名稱,而value是要儲存的中繼資料。

運作方式

從行銷活動或歷程內的管道內容中選取任何元素,並使用個人化編輯器將executionMetadata協助程式新增至此元素。

note
NOTE
顯示內容本身時,executionMetadata函式不會顯示。

在執行階段中,中繼資料值已新增至現有的​訊息回饋事件資料集,並加入下列結構描述:

code language-none
"_experience": {
  "customerJourneyManagement": {
    "messageExecution": {
      "metadata": {
        "your_key": "your_value"
      }
    }
  }
}
note important
IMPORTANT
每個動作的機碼值組有2kb的上限。 如果超過2Kb限制,訊息仍會傳送,但任何索引鍵值配對都可能遭截斷。

範例

code language-none
{{executionMetadata key="firstName" value=profile.person.name.firstName}}

在此範例中,假設profile.person.name.firstName = “Alex”,則產生的實體為:

code language-none
{
  "key": "firstName",
  "value": "Alex"
}

地圖函式 maps

在個人化中使用地圖功能,讓與地圖的互動更容易。

get get

使用get函式為指定的索引鍵擷取對應值。

語法
code language-sql
{%= get(map, string) %}

範例

下列作業取得索引鍵example@example.com的識別對應值。

code language-sql
{%= get(identityMap,"example@example.com") %}

金鑰 keys

使用keys函式為指定的對應擷取所有索引鍵。

語法
code language-sql
{%= keys(map) %}

範例

下列作業會擷取對應identityMap的所有索引鍵。

code language-sql
{%= keys(identityMap) %}

值 values

values函式用於擷取給定對應的所有值。

語法
code language-sql
{%= values(map) %}

範例

下列作業會擷取對應identityMap的所有值。

code language-sql
{%= values(identityMap) %}

數學函式 math

瞭解如何在個人化編輯器中使用數學函式。

絕對 absolute

使用absolute函式將數字轉換為其絕對值。

語法
code language-sql
{%= absolute(int) %}: int

formatnumber format-number

使用formatNumber函式將任何數字格式化成語言感應式表示。

它接受數字和代表地區設定的字串,並傳回所需地區設定中數字的格式化字串。

語法
code language-sql
{%= formatNumber(number/double,string) %}: string

您可以使用Oracle檔案和支援的語言環境{_blank}中概述的格式設定和有效語言環境

範例

此查詢會傳回對應至123456.789的阿拉伯文字格式字串作為輸入數字。

code language-sql
{%= formatNumber(123456.789, "ar_EG") %}

random random

使用random函式傳回0到1之間的隨機值。

語法
code language-sql
{%= random() %}: double

roundDown round-down

使用roundDown函式向下舍入數字。

語法
code language-sql
{%= roundDown(double) %}: double

綜述 round-up

使用roundUp函式向上舍入數字。

語法
code language-sql
{%= roundUp(double) %}: double

toHexString to-hex-string

toHexString函式將任何數字轉換成其十六進位字串。

語法
code language-sql
{%= toHexString(number) %}: string

範例

此查詢傳回158的十六進位值為9e。

code language-sql
{%= toHexString(158) %}

toInt to-int

使用toInt函式將型別(數字、雙精度浮點數、整數、長整數、浮點數、短整數、位元組、布林值、字串)轉換為整數。

語法
code language-sql
{%= toInt(<valueToConvert>) %}: integer

範例

此查詢傳回42.6的整數值為42。

code language-sql
{%= toInt(42.6) %}: integer

toPercentage to-percentage

使用toPercentage函式將數字轉換為百分比。

語法
code language-sql
{%= toPercentage(double) %}: string

toPrecision to-precision

使用toPrecision函式將數字轉換為所需的精確度。

語法
code language-sql
{%= toPrecision(double,int) %}: string

toString to-string

toString函式將任何數字轉換成其字串表示。

語法
code language-sql
{%= toString(string) %}: string

範例

此查詢傳回"12"。

code language-sql
{%= toString(12) %}

物件函式 objects

查詢物件屬性或屬性的物件函式。

isNull isNull

isNull函式決定物件參考是否不存在。

語法
code language-sql
{%= isNull(object) %}

範例

下列作業會檢查人員的住家地址是否不存在。

code language-sql
{%= isNull(person.homeAddress) %}

isNotNull isNotNull

isNotNull函式決定物件參考是否存在。

語法
code language-sql
{%= isNotNull(object) %}

範例

下列作業會檢查人員的住家地址是否存在。

code language-sql
{%= isNotNull(person.homeAddress) %}

字串函式 string-functions

瞭解如何在個人化編輯器中使用字串功能。

駝峰式大小寫 camelCase

camelCase函式會將字串中每個字的第一個字母大寫。

語法
code language-sql
{%= camelCase(string)%}

範例

下列函式會大寫設定檔街道位址中單詞的第一個字母。

code language-sql
{%= camelCase(profile.homeAddress.street) %}

charCodeAt char-code-at

charCodeAt函式傳回字元的ASCII值,例如JavaScript中的charCodeAt函式。 它以字串和整數(定義字元的位置)作為輸入引數,並傳回其對應的ASCII值。

語法
code language-sql
{%= charCodeAt(string,int) %}: int

範例

下列函式傳回o (111)的ASCII值。

code language-sql
{%= charCodeAt("some", 1)%}

concat concate

concat函式將兩個字串合併為一個。

語法
code language-sql
{%= concat(string,string) %}

範例

下列函式將個人資料城市和國家/地區結合為單一字串。

code language-sql
{%= concat(profile.homeAddress.city,profile.homeAddress.country) %}

包含 contains

使用contains函式來判斷字串是否包含指定的子字串。

語法
code language-sql
{%= contains(STRING_1, STRING_2, CASE_SENSITIVE) %}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
STRING_1 執行檢查的字串。
STRING_2 要在第一個字串中搜尋的字串。
CASE_SENSITIVE 選擇性引數,用來判斷檢查是否區分大小寫。 可能的值: true (預設) / false。

範例

  • 以下函式檢查設定檔名字是否包含字母A (大寫或小寫)。 如果設定檔含有此值,則會傳回true。 如果沒有,則會傳回false。

    code language-sql
    {%= contains(profile.person.name.firstName, "A", false) %}
    
  • 下列查詢會區分大小寫,判斷人員的電子郵件地址是否包含字串2010@gm。

    code language-sql
    {%= contains(profile.person.emailAddress,"2010@gm") %}
    

doesNotContain doesNotContain

使用doesNotContain函式來判斷字串是否不包含指定的子字串。

語法
code language-sql
{%= doesNotContain(STRING_1, STRING_2, CASE_SENSITIVE)%}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
STRING_1 執行檢查的字串。
STRING_2 要在第一個字串中搜尋的字串。
CASE_SENSITIVE 選擇性引數,用來判斷檢查是否區分大小寫。 可能的值: true (預設) / false。

範例

下列查詢會區分大小寫,判斷個人的電子郵件地址是否不包含字串2010@gm。

code language-sql
{%= doesNotContain(profile.person.emailAddress,"2010@gm")%}

doesNotEndWith doesNotEndWith

使用doesNotEndWith函式來判斷字串的結尾是否不是指定的子字串。

語法
code language-sql
{%= doesNotEndWith(STRING_1, STRING_2, CASE_SENSITIVE)%}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要在第一個字串中搜尋的字串。
{CASE_SENSITIVE} 選擇性引數,用來判斷檢查是否區分大小寫。 可能的值: true (預設) / false。

範例

下列查詢會區分大小寫判斷此人的電子郵件地址是否以.com結尾。

code language-sql
doesNotEndWith(person.emailAddress,".com")

doesNotStartWith doesNotStartWith

使用doesNotStartWith函式來判斷字串是否不是以指定的子字串開頭。

語法
code language-sql
{%= doesNotStartWith(STRING_1, STRING_2, CASE_SENSITIVE)%}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要在第一個字串中搜尋的字串。
{CASE_SENSITIVE} 選擇性引數,用來判斷檢查是否區分大小寫。 可能的值: true (預設) / false。

範例

下列查詢會區分大小寫判斷人員名稱是否不是以Joe開頭。

code language-sql
{%= doesNotStartWith(person.name,"Joe")%}

encode64 encode64

使用encode64函式來編碼字串以保留個人資訊(PI),例如包含在URL中。

語法
code language-sql
{%= encode64(string) %}

endsWith endsWith

使用endsWith函式來判斷字串的結尾是否為指定的子字串。

語法
code language-sql
{%= endsWith(STRING_1, STRING_2, CASE_SENSITIVE) %}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要在第一個字串中搜尋的字串。
{CASE_SENSITIVE} 選擇性引數,用來判斷檢查是否區分大小寫。 可能的值: true (預設) / false。

範例

下列查詢會區分大小寫判斷此人的電子郵件地址是否以.com結尾。

code language-sql
{%= endsWith(person.emailAddress,".com") %}

等於 equals

使用equals函式來判斷字串是否等於指定的字串,且區分大小寫。

語法
code language-sql
{%= equals(STRING_1, STRING_2) %}
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要與第一個字串進行比較的字串。

範例

下列查詢會區分大小寫判斷人員名稱是否為John。

code language-sql
{%=equals(profile.person.name,"John") %}

equalsIgnoreCase equalsIgnoreCase

使用equalsIgnoreCase函式來判斷字串是否等於指定的字串,不區分大小寫。

語法
code language-sql
{%= equalsIgnoreCase(STRING_1, STRING_2) %}
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要與第一個字串進行比較的字串。

範例

下列查詢在沒有區分大小寫的情況下決定人員名稱是否為John。

code language-sql
{%= equalsIgnoreCase(profile.person.name,"John") %}

extractEmailDomain extractEmailDomain

使用extractEmailDomain函式來擷取電子郵件地址的網域。

語法
code language-sql
{%= extractEmailDomain(string) %}

範例

以下查詢會擷取個人電子郵件地址的電子郵件網域。

code language-sql
{%= extractEmailDomain(profile.personalEmail.address) %}

formatCurrency format-currency

使用formatCurrency函式,根據第二個引數中作為字串傳遞的區域設定,將任何數字轉換成其對應的語言敏感型貨幣表示法。

語法
code language-sql
{%= formatCurrency(number/double,string) %}: string

範例

此查詢傳回56.00英鎊

code language-sql
{%= formatCurrency(56L,"en_GB") %}

getUrlHost get-url-host

使用getUrlHost函式來擷取URL的主機名稱。

語法
code language-sql
{%= getUrlHost(string) %}: string

範例

code language-sql
{%= getUrlHost("https://www.myurl.com/contact") %}

傳回「www.myurl.com」

getUrlPath get-url-path

使用getUrlPath函式在URL的網域名稱后面擷取路徑。

語法
code language-sql
{%= getUrlPath(string) %}: string

範例

code language-sql
{%= getUrlPath("https://www.myurl.com/contact.html") %}

傳回「/contact.html」

getUrlProtocol get-url-protocol

使用getUrlProtocol函式擷取URL的通訊協定。

語法
code language-sql
{%= getUrlProtocol(string) %}: string

範例

code language-sql
{%= getUrlProtocol("https://www.myurl.com/contact.html") %}

傳回"http"

indexOf index-of

使用indexOf函式傳回第二個引數第一次出現的位置(在第一個引數中)。 如果沒有相符專案,則傳回–1。

語法
code language-sql
{%= indexOf(STRING_1, STRING_2) %}: integer
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要在第一個引數中搜尋的字串

範例

code language-sql
{%= indexOf("hello world","world" ) %}

傳回6。

IsEmpty isEmpty

使用isEmpty函式來判斷字串是否為空白。

語法
code language-sql
{%= isEmpty(string) %}

範例

如果設定檔的行動電話號碼空白,則以下函式會傳回「true」。 否則,它會傳回false。

code language-sql
{%= isEmpty(profile.mobilePhone.number) %}

isNotEmpty is-not-empty

使用isNotEmpty函式來判斷字串是否不是空的。

語法
code language-sql
{= isNotEmpty(string) %}: boolean

範例

如果設定檔的行動電話號碼非空白,則以下函式會傳回「true」。 否則,它會傳回false。

code language-sql
{%= isNotEmpty(profile.mobilePhone.number) %}

lastIndexOf last-index-of

使用lastIndexOf函式傳回第二個引數最後一次出現的位置(在第一個引數中)。 如果沒有相符專案,則傳回–1。

語法
code language-sql
{= lastIndexOf(STRING_1, STRING_2) %}: integer
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要在第一個引數中搜尋的字串

範例

code language-sql
{%= lastIndexOf("hello world","o" ) %}

傳回7。

leftTrim leftTrim

使用leftTrim函式移除字串開頭的空格。

語法
code language-sql
{%= leftTrim(string) %}

length length

使用length函式取得字串或運算式中的字元數。

語法
code language-sql
{%= length(string) %}

範例

下列函式傳回設定檔城市名稱的長度。

code language-sql
{%= length(profile.homeAddress.city) %}

按讚 like

使用like函式來判斷字串是否符合指定的模式。

語法
code language-sql
{%= like(STRING_1, STRING_2) %}
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2}

比對第一個字串的運算式。 建立運算式有兩個支援的特殊字元: %和_。

  • %用於表示零個或多個字元。
  • _只代表一個字元。

範例

下列查詢會擷取設定檔所在且包含模式es的所有城市。

code language-sql
{%= like(profile.homeAddress.city, "%es%")%}

小寫 lower

使用lowerCase函式將字串轉換為小寫字母。

語法
code language-sql
{%= lowerCase(string) %}

範例

此函式將設定檔名字轉換為小寫字母。

code language-sql
{%= lowerCase(profile.person.name.firstName) %}

matches matches

使用matches函式來判斷字串是否符合特定的規則運算式。 如需規則運算式中比對模式的詳細資訊,請參閱Oracle檔案。

語法
code language-sql
{%= matches(STRING_1, STRING_2) %}

範例

下列查詢在沒有區分大小寫的情況下決定人員名稱是否以John開頭。

code language-sql
{%= matches(person.name.,"(?i)^John") %}

遮色片 mask

使用mask函式將字串的一部分取代為「X」字元。

語法
code language-sql
{%= mask(string,integer,integer) %}

範例

下列查詢會將「123456789」字串取代為「X」字元,前兩個字元和最後兩個字元除外。

code language-sql
{%= mask("123456789",1,2) %}

查詢傳回1XXXXXX89。

md5 md5

使用md5函式計算並傳回字串的md5雜湊。

語法
code language-sql
{%= md5(string) %}: string

範例

code language-sql
{%= md5("hello world") %}

傳回「5eb63bbe01eeed093cb22bb8f5acdc3」

notEqualto notEqualTo

使用notEqualTo函式來判斷字串是否不等於指定的字串。

語法
code language-sql
{%= notEqualTo(STRING_1, STRING_2) %}
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要與第一個字串進行比較的字串。

範例

下列查詢會區分大小寫判斷人員名稱是否不是John。

code language-sql
{%= notEqualTo(profile.person.name,"John") %}

notEqualWithIgnoreCase not-equal-with-ignore-case

使用notEqualWithIgnoreCase函式比較兩個字串,忽略大小寫。

語法
code language-sql
{= notEqualWithIgnoreCase(STRING_1,STRING_2) %}: boolean
table 0-row-2 1-row-2 2-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要與第一個字串進行比較的字串。

範例

下列查詢會判斷人員名稱是否不是john,不區分大小寫。

code language-sql
{%= notEqualTo(profile.person.name,"john") %}

regexgroup regexGroup

根據提供的規則運算式,使用regexGroup函式來擷取特定資訊。

語法
code language-sql
{%= regexGroup(STRING, EXPRESSION, GROUP) %}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{STRING} 執行檢查的字串。
{EXPRESSION} 比對第一個字串的規則運算式。
{GROUP} 要比對的運算式群組。

範例

以下查詢會從電子郵件地址中擷取網域名稱。

code language-sql
{%= regexGroup(emailAddress,"@(\\w+)", 1) %}

replace replace

使用replace函式將字串中的指定子字串取代為另一個子字串。

語法
code language-sql
{%= replace(STRING_1,STRING_2,STRING_3) %}:string
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{STRING_1} 必須取代子字串的字串。
{STRING_2} 要取代的子字串。
{STRING_3} 替代子字串。

範例

code language-sql
{%= replace("Hello John, here is your monthly newsletter!","John","Mark") %}

傳回Hello Mark, here is your monthly newsletter!

replaceAll replaceAll

使用replaceAll函式以指定的常值取代字串,取代符合規則運算式之文字的所有子字串。 Regex對\和+有特殊處理,並且所有regex運算式都遵循PQL逸出策略。 取代從字串的開頭到結尾進行,例如,在字串aaa中將aa取代為b會產生ba而非ab。

語法
code language-sql
{%= replaceAll(string,string,string) %}
note
NOTE
當當作第二個引數的運算式是特殊規則運算式字元時,請使用雙反斜線(//)。 特殊規則運算式字元包括:[., +, *, ?, ^, $, (, ), [,], {, }, |, .]
進一步瞭解Oracle檔案。

rightTrim rightTrim

rightTrim函式移除字串結尾的空格。

語法
code language-sql
{%= rightTrim(string) %}

sha256 sha256

sha256函式計算並傳回字串的sha256雜湊。

語法
code language-sql
{%= sha256(string) %} : string

範例

code language-sql
{%= sha256("Eliechxh")%}

傳回0b0b207880b999adaad6231026abf87caa30760b6f326b21727b61139332257d

split split

使用split函式依指定字元分割字串。

語法
code language-sql
{%= split(string,string) %}

startsWith startsWith

使用startsWith函式來判斷字串的開頭是否為指定的子字串。

語法
code language-sql
{%= startsWith(STRING_1, STRING_2, CASE_SENSITIVE) %}
table 0-row-2 1-row-2 2-row-2 3-row-2
引數 說明
{STRING_1} 執行檢查的字串。
{STRING_2} 要在第一個字串中搜尋的字串。
{CASE_SENSITIVE} 選擇性引數,用來判斷檢查是否區分大小寫。 預設為true。

範例

下列查詢會區分大小寫判斷人員名稱是否以Joe開頭。

code language-sql
{%= startsWith(person.name,"Joe") %}

stringToDate string-to-date

stringToDate函式將字串值轉換為日期時間值。 它需要兩個引數:日期時間的字串表示和格式化程式的字串表示。

語法
code language-sql
{= stringToDate("date-time value","formatter" %}

範例

code language-sql
{= stringToDate("2023-01-10 23:13:26", "yyyy-MM-dd HH:mm:ss") %}

string_to_integer string-to-integer

使用string_to_integer函式將字串值轉換為整數值。

語法
code language-sql
{= string_to_integer(string) %}: int

stringToNumber string-to-number

使用stringToNumber函式將字串轉換為數字。 對於無效的輸入,它會傳回相同字串作為輸出。

語法
code language-sql
{%= stringToNumber(string) %}: double

substr sub-string

使用substr函式傳回開始索引和結束索引之間的字串運算式的子字串。

語法
code language-sql
{= substr(string, integer, integer) %}: string

titleCase titleCase

使用titleCase函式將字串中每個字詞的首字母大寫。

語法
code language-sql
{%= titleCase(string) %}

範例

如果人員住在華盛頓大街,此函式會傳回Washington High Street。

code language-sql
{%= titleCase(profile.person.location.Street) %}

toBool to-bool

使用toBool函式將引數值轉換為布林值(視其型別而定)。

語法
code language-sql
{= toBool(string) %}: boolean

toDateTime to-date-time

使用toDateTime函式將字串轉換為日期。 針對無效輸入會傳回epoch日期作為輸出。

語法
code language-sql
{%= toDateTime(string, string) %}: date-time

toDateTimeOnly to-date-time-only

使用toDateTimeOnly函式將引數值轉換為僅日期時間值。 針對無效輸入會傳回epoch日期作為輸出。 此函式接受字串、日期、長欄位和整數欄位型別。

語法
code language-sql
{%= toDateTimeOnly(string/date/long/int) %}: date-time

trim trim

trim函式會移除字串開頭和結尾的所有空格。

語法
code language-sql
{%= trim(string) %}

大寫 upper

upperCase函式將字串轉換為大寫字母。

語法
code language-sql
{%= upperCase(string) %}

範例

此函式將設定檔姓氏轉換為大寫字母。

code language-sql
{%= upperCase(profile.person.name.lastName) %}

urlDecode url-decode

使用urlDecode函式將url編碼的字串解碼。

語法
code language-sql
{%= urlDecode(string) %}: string

urlEncode url-encode

使用urlEncode函式將字串編碼為URL。

語法
code language-sql
{%= urlEncode(string) %}: string
recommendation-more-help
journey-optimizer-b2b-help-user