条件指令(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:​本页介绍历程高级表达式编辑器中可用的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>必须具有相同或兼容的类型。
  • 问:条件指令如何降低历程复杂度? — 它让您可以使用一个表达式在单个操作活动中指定两个字段值替代项,从而避免在画布上单独显示Condition活动节点。
  • 问:如果两个分支都是字符串,条件指令会返回什么类型? — 返回string
  • 问:if / then / else是否可用于选择推送通知渠道? — 是;例如,评估设备模型以返回Apple设备的'apns'或其他设备的'fcm'
recommendation-more-help
journey-optimizer-help