特殊背景
#{ }
:访问上下文变量
?{ }?
:打开 JavaScript 上下文
§{ }§
:访问组件配置时
${ }
:访问翻译
<![CDATA[ ]]>
:在不使用纯 XML 时使用
范围
step
:当前活动的步骤
workflow
:当前组件的所有步骤
root
:工作流的所有组件
user_session
:用户在注销前访问的所有工作流
数据类型
string
、 bool
、 double
、 、 long
object
国家
- <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)