操作者 operators

運運算元有兩種型別:一元運運算元和二進位運運算元。 有左一元運運算元和右一元運運算元。

// left-hand unary operators
// <operator> <operand>
// operand is an expression
not (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example@adobe.com")

// right-hand unary operators
// <operator> <operand>
// operand is an expression
@event{LobbyBeacon.endUserIDs._experience.emailid.id} is not null

// binary operators
// <operand1> <operator> <operand2>
// operand is an expression
(@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example1@adobe.com") or (@event{LobbyBeacon.endUserIDs._experience.emailid.id}=="example2@adobe.com")

重要備註 important-notes

  • 使用乘法(*)時,兩個作業欄位必須具有相同的型別,可以是整數或小數。 範例:

    • 下列範例是正確的: 3.0 * 4.0
    • 3 * 4.0將導致錯誤
  • 使用+運運算元時,運算式必須封裝在括弧中。 範例:

    • toDateTimeOnly(toDateTime((currentTimeInMillis()) + 1))正確
    • toDateTimeOnly(toDateTime(currentTimeInMillis() + 1))將導致錯誤

邏輯 logical

<expression1> and <expression2>

<expression1>和<expression2>都必須是布林值。 結果是布林值。

範例:

3.14 > 2 and 3.15 < 1

<expression1> or <expression2>

<expression1>和<expression2>都必須是布林值。 結果是布林值。

範例:

3.14 > 2 or 3.15 < 1

not <expression>

<expression>必須為布林值。 結果是布林值。

範例:

not 3.15 < 1

比較 comparison

為null

<expression> is null

結果是布林值。

請注意,null表示運算式沒有評估值。

範例:

@event{BarBeacon.location} is null

不是null

<expression> is not null

結果是布林值。

請注意,null表示運算式沒有評估值。

範例:

@event{BarBeacon.location} is not null

具有null

<expression> has null

<expression>必須是清單。 結果是布林值。

用於識別清單是否包含至少一個Null值。

範例:

["foo", "bar", null] has null

傳回true

["foo", "bar", ""] has null

傳回false,因為「」不視為null。

==

<expression1> == <expression2>
NOTE
<expression1>和<expression2>沒有資料型別控制項。

範例:

3.14 == 42
"foo" == "bar"

!=

<expression1> != <expression2>
NOTE
<expression1>和<expression2>沒有資料型別控制項。

結果是布林值。

範例:

3.14 != 42
"foo" != "bar"

>

<expression1> > <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

3.14 > 42

>=

<expression1> >= <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

42 >= 3.14

<

<expression1> < <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

42 < 3.14

<=

<expression1> <= <expression2>

日期時間可以與日期時間比較。

Datetimeonly可以與Datetimeonly比較。

整數或小數點都可以與整數或小數點進行比較。

禁止任何其他組合。

結果是布林值。

範例:

42 <= 3.14

算術 arithmetic

+

<expression1> + <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

1 + 2

傳回3

-

<expression1> - <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

2 - 1

傳回1

/

<expression1> / <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

<expression2>不可以等於0 (傳回0)。

範例:

4 / 2

傳回2

*

<expression1> * <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

3 * 4

傳回12

%

<expression1> % <expression2>

這兩個運算式都必須是數值(整數或小數)。

結果也是數字。

範例:

3 % 2

傳回1。

數學 math

是數值

<expression> is numeric

運算式的型別是整數或小數。

範例:

@ is numeric

為整數

<expression> is integer

運算式的型別是整數。

範例:

@ is integer

為小數

<expression> is decimal

運算式的型別是十進位。

範例:

@ is decimal

字串 string

+

<string> + <expression>
<expression> + <string>

它會串連兩個運算式。

一個運算式必須是鏈結字串。

範例:

"the current time is " + (now())

傳回「目前時間是2023-09-23T09:30:06.693Z」

(now()) + " is the current time"

傳回「2023-09-23T09:30:06.693Z為目前時間」

"a" + "b" + "c" + 1234

傳回「abc1234」。

日期 date

+

<expression> + <duration>

將期間附加至dateTime、dateTimeOnly或duration。

範例:

(toDateTime("2023-12-03T15:15:30Z")) + (toDuration("PT15M"))

傳回​dateTime 2023-12-03T15:30:30Z

(toDateTimeOnly("2023-12-03T15:15:30")) + (toDuration("PT15M"))

傳回​dateTimeOnly 2023-12-03T15:30:30

(now()) + (toDuration("PT1H"))

從目前時間後一小時傳回​dateTime (含UTC時區)

(toDuration("PT1H")) + (toDuration("PT1H"))

傳回​持續時間 PT2H

AI知識參考

本節包含結構化知識,用於支援與本主題相關的解譯、擷取和問答。

如需完整瞭解,此資訊應結合本頁的檔案。 兩者皆非獨立來源;頁面說明功能,本節提供額外內容,以協助去除術語、意圖、適用性和限制條件的歧義。

  • TL;DR:​此頁面是歷程進階運算式編輯器中可用運運算元的完整參考,涵蓋邏輯(andornot)、比較(==!=>>=<<=is nullis not nullhas null)、算術(+-/*%)、數學型別檢查(is numericis integeris decimal)、字串串連和日期算術運算子。

意圖:

  • 使用邏輯運運算元andornot結合布林條件
  • 使用is null / is not null檢查欄位或運算式值是否為Null或不為Null
  • 使用has null運運算元偵測清單中的null值
  • 使用>>=<<===!=比較數值、日期時間和日期時間值
  • 使用+-/*%對數值執行算術
  • 使用+運運算元將期間新增至dateTime、dateTimeOnly或duration值

字彙表:

  • 一元運運算元:套用至單一運算元的運運算元;可以是左側(例如not)或右側(例如is null(產品特定)
  • 二進位運運算元:在兩個運算元(例如and==+(產品特定)​之間套用的運運算元
  • 具有null:如果清單包含至少一個null專案​(產品特定),右邊一元運運算元會傳回true
  • 是數值/是整數/是十進位:根據運算式​ (產品特定) ​的數值子型別傳回布林值的型別檢查運運算元

護欄:

  • 使用乘法(*)時,兩個運算元必須是相同的數值型別(整數或兩個小數) — 混合型別會導致錯誤
  • 使用+運運算元進行日期算術時,運算式必須用括弧括住,以避免剖析錯誤
  • 比較運運算元(>>=<<=)只在相容型別之間有效:具有Datetime的Datetime、具有DatetimeOnly的DatetimeOnly或具有數值的numeric — 禁止任何其他組合
  • 空白字串""不視為Null — has null會針對包含""的清單傳回False
  • ==!=運運算元在運算元之間不執行任何資料型別控制

術語:

  • 正式名稱:運運算元 — 縮寫:無 — 變體:運算式運運算元、歷程運運算元
  • 同義字: and = “logical AND”;or = “logical OR”;not = “logical NOT”;% = “modulo”
  • 請勿混淆: is null (運算式沒有評估值) ≠ == null (不是有效的語法); has null (清單包含null) ≠ is null (運算式本身為null)

常見問題集:

  • 問:我可以直接將整數乘以十進位嗎? — No; *的兩個運算元都必須是相同型別。 使用3.0 * 4.0 (小數)或3 * 4 (整數)。
  • 問:如何新增15分鐘至dateTime? — 使用(toDateTime("...")) + (toDuration("PT15M"))
  • 問:is nullhas null之間有何差異?is null檢查單一運算式是否沒有評估值;has null檢查清單是否包含至少一個null專案。
  • 問:"" has null是否傳回True? — No;空白字串不會視為Null,因此結果為false。
  • 問:為什麼3 * 4.0會造成錯誤?*運運算元要求兩個運算元必須是相同的數值型別;不允許混合整數與小數。
recommendation-more-help
journey-optimizer-help