條件式指令(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條件式指令,包括語法規則、支援的型別組合,以及實際使用範例。
意圖:
- 使用
if、then和else寫入條件運算式,以根據布林條件傳回不同的值 - 將內嵌條件式邏輯內嵌在單一動作活動中,以減少歷程中的條件式活動數
- 決定哪些資料型別組合對
then和else分支有效 - 根據裝置型號,套用條件式指示以將推播通知權杖路由至APNS或FCM
字彙表:
- 條件式指令:進階編輯器中的
if / then / else運算式建構,會評估布林值並傳回兩個運算式之一(產品特定) - 進階運算式編輯器:用於寫入條件、等待活動及動作引數對應 (產品特定) 中使用的複雜運算式的Journey Optimizer介面
護欄:
- 在
if、then和else子句中的所有運算式都必須加上括弧 if子句(<expression1>)必須傳回布林型別then和else運算式(<expression2>和<expression3>)必須有相同型別或相容型別(例如decimal和integer相容,string和integer不相容)- 並非所有型別組合都受支援 — 只有支援的簽名表格中所列的配對才有效
術語:
- 正式名稱:條件式指令 — 縮寫: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