條件式指令(if, then, else) conditional-instruction

進階編輯器支援條件式指令(if, then, else)。 它可讓您定義更複雜的運算式。 它由下列元素組成:

  • if:先評估條件。
  • then:條件評估結果為true時要評估的運算式。
  • else:條件評估結果為false時要評估的運算式。
NOTE
所有運算式都必須加上括弧。
if  (<expression1>)
then
   (<expression2>)
else
   (<expression3>)

<expression1>必須傳回​布林值

<expression2><expression3>必須具有相同的型別或相容的型別。 支援的簽章和傳回的型別包括:

boolean,boolean : boolean
dateTime,dateTime : dateTime
dateTimeOnly,dateTimeOnly : dateTimeOnly
decimal,integer : decimal
integer,decimal : integer
integer,decimal : decimal
duration,duration : duration
string,string : string
listBoolean,listBoolean : listBoolean
listDateTime,listDateTime : listDateTime
listDateTimeOnly,listDateTimeOnly : listDateTimeOnly
listDateOnly,listDateOnly : listDateOnly
listDecimal,listDecimal : listDecimal
listInteger,listInteger : listInteger
listString,listString : listString

使用狀況

條件式指示可讓您透過減少條件活動的數量,將歷程工作流程最佳化。 例如,在相同動作活動中,您僅能使用一個條件運算式,即可為欄位定義指定兩個替代方案。

動作活動的範例(適用於預期字串為條件指令結果的欄位):

if (startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iPad') or startWithIgnoreCase(@event{eventiOSPushPermissionAllowed.device.model}, 'iOS'))
then
   ('apns')
else
   ('fcm')
AI知識參考

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

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

  • TL;DR:​此頁面說明Journey進階運算式編輯器中可用的if / then / else條件式指令,包括語法規則、支援的型別組合,以及實際使用範例。

意圖:

  • 使用ifthenelse寫入條件運算式,以根據布林條件傳回不同的值
  • 將內嵌條件式邏輯內嵌在單一動作活動中,以減少歷程中的條件式活動數
  • 決定哪些資料型別組合對thenelse分支有效
  • 根據裝置型號,套用條件式指示以將推播通知權杖路由至APNS或FCM

字彙表:

  • 條件式指令:進階編輯器中的if / then / else運算式建構,會評估布林值並傳回兩個運算式之一​(產品特定)
  • 進階運算式編輯器:用於寫入條件、等待活動及動作引數對應​ (產品特定) ​中使用的複雜運算式的Journey Optimizer介面

護欄:

  • ifthenelse子句中的所有運算式都必須加上括弧
  • if子句(<expression1>)必須傳回布林型別
  • thenelse運算式(<expression2><expression3>)必須有相同型別或相容型別(例如decimalinteger相容,stringinteger不相容)
  • 並非所有型別組合都受支援 — 只有支援的簽名表格中所列的配對才有效

術語:

  • 正式名稱:條件式指令 — 縮寫:none — 變體:if/then/else,三元樣式條件
  • 同義字:“conditional instruction” = “inline condition” = “if-then-else expression”
  • 請勿混淆:條件式指令(內嵌運算式)≠條件活動(歷程畫布節點)

常見問題集:

  • 問: if子句是否需要以括弧括住? — 是,所有運算式都必須加上括弧,包括if子句中的條件。
  • 問:我可以使用if / then / else傳回一個分支的數字,以及另一個分支的字串嗎? — 否;<expression2><expression3>必須有相同或相容的型別。
  • 問:條件式指令如何降低歷程複雜度? — 它可讓您使用單一運算式,在單一動作活動中指定兩個欄位值替代專案,以避免在畫布上出現個別的「條件」活動節點。
  • 問:如果兩個分支都是字串,則條件式指令會傳回什麼型別? — 它會傳回string
  • 問:if / then / else是否可用來選取推播通知頻道? — 是;例如,評估裝置模型以傳回Apple裝置的'apns'或其他裝置的'fcm'
recommendation-more-help
journey-optimizer-help