特殊背景

  • #{ }:访问上下文变量
  • ?{ }?:打开 JavaScript 上下文
  • §{ }§:访问组件配置时
  • ${ }:访问翻译
  • <![CDATA[ ]]>:在不使用纯 XML 时使用

范围

  • step:当前活动的步骤
  • workflow:当前组件的所有步骤
  • root:工作流的所有组件
  • user_session:用户在注销前访问的所有工作流

数据类型

  • string、 bool、 double、 、 longobject

国家

  • <onenter>:这是进入步骤时的第一个状态。用户界面在此状态下不可用,因此,您不能使用与 UI 相关的操作。但是,如果要初始化参数以将其用于 UI 映射,则这是执行此操作的正确状态。
  • <onresume>:<onenter>之后的第二个状态。在此状态下,UI 可用,您可以使用 UI 更新操作修改加载的布局。
  • <onpause> 和 <onleave>:每当使用 step_transition or finish_workflow 操作离开当前步骤或整个组件时,都会发生这些状态。由于转换是不可中断的,因此您不能在此处使用使用这些操作的规则。在状态下 onpause ,步骤的资源仍然存在 onleave, ,它们不存在。
  • <onevent>:这可能是最重要的状态。每次处理事件时,都会检查在此状态下定义的规则。与与用户交互相关的所有规则都在此状态下定义。

运营商

  • 在表达式中可用:+、-、&&、||、!、/、==、>、>=、<、<=、%、*、!=

事件结构

  • 命令: 此事件的命令,例如“NEXT”。例如,该命令可能对应于组件的布局或工作流描述中的 ID。例: #{event:command} == ‘CANCEL’
  • device.modality: 事件的源。可以使用简短的表示法访问此字段
  • 表达式 #{event(SPEECH):command==’NEXT’ 等效于表达 #{event:device.modality} == ‘SPEECH’ && #{event:command} == ‘NEXT’式。模式取决于事件发射器。例: #{event:device.modality} == ‘MENU_SELECTION’
  • 有效载荷: 有效负载的结构/字段取决于触发事件的操作/处理程序。例: #{event:payload.amount}
  • payload.error: 包含错误消息(如果有)。例: #{event:payload.error}

嵌入式功能

  • 存在: exists(#{shelve})
  • toUppercase: toUppercase( '#{material_name} ' )
  • toLowercase: toLowercase( '#{material_name} ' )
  • 修剪: trim( # {material_name} )
  • 包含: contains( # {first_code}, #{second_code})
  • startsWith: startsWith( # {first_code}, #{second_code})
  • endsWith: endsWith( # {first_code}, #{second_code})
  • 等于: equals( # {first_code}, #{second_code})
  • 子字符串: substring( # {material_name}, 0, 3)