根据一个模式或一个模式列表评估一个值是否有效。
类型:价值评估处理程序
属性
属性的解释如下。
to_evaluate。 输入需要匹配定义的模式/s。如果匹配,则该输入是有效的。
code_word_evaluation。 语音输入只有在这个属性被设置后才会被检查。它可以是一个空字符串。如果一个语音输入命令以给定的关键词开始,那么该命令的其余部分将被用于评估
活动
该处理程序发出以下事件。
VALID
:如果提供的输入与模式相匹配。ALREADY_VALID
:如果提供的输入与已经成功验证的模式相匹配。ALL_VALID
: 当 "to_evaluate "集合的所有元素都被成功验证。INVALID
:如果提供的输入不匹配任何模式。
有效载荷结构如下面的事件示例。
{
"command": "VALID",
"device":
{
"modality": "value-evaluation",
"name": "value-evaluation",
"source": "value-evaluation",
"descriptor": "value-evaluation"
},
"payload":
{
"code": "i am legend"
}
}
{
"command": "INVALID",
"device":
{
"modality": "value-evaluation",
"name": "value-evaluation",
"source": "value-evaluation",
"descriptor": "value-evaluation"
},
"payload":
{
}
}
例子
<context>
<param name="validations" type="string"></param>
</context>
<handlers>
<value_evaluation_handler>
<code_word_extraction>validate</code_word_extraction>
<list name="to_evaluate" listType="UNNAMED">
<elem>machine .+</elem>
<elem>station .+</elem>
</list>
</value_evaluation_handler>
</handlers>
<states>
<onevent>
<rule id="is_valid">
<expression>
<![CDATA[ #{event(value-evaluation):command} == 'VALID' ]]>
</expression>
<actions>
<setvar id="add_validation">
<context_of>step</context_of>
<context_update>
<param name="validations" type="string">#{validations} #{event:payload.code}</param>
</context_update>
</setvar>
</actions>
</rule>
<rule id="all_valid">
<expression>
<![CDATA[ #{event(value-evaluation):command} == 'ALL_VALID' ]]>
</expression>
<actions>
<finish_workflow id="exit"/>
</actions>
</rule>
<rule id="invalid_input">
<expression>
<![CDATA[ #{event(value-evaluation):command} == 'INVALID' ]]>
</expression>
<actions>
<ui_notification id="invalid_value" type="ERROR" duration="SHORT" show_immediately="true">
<message>"Not a valid value!</message>
</ui_notification>
</actions>
</rule>
</onevent>
</states>