我创建了一个名为 @material_number 的实体,该实体具有3个值,下面分别提供了各自的模式:
num1 ,其模式为(\d{3}\.){1}\d{3}
num2 ,其模式为(\d{3}\.){2}\d{3}
num3 ,其模式为(\d{3}\.){3}\d{3}
在对话节点中,如果漫游器识别出 @material_number ,则它将提供的用户输入存储在上下文变量 $ materialnumber 下,然后响应“哦,物料号是$ materialnumber”。
问题是,当用户的输入属于 num2 或 num3 值时,漫游器仅存储提供的前6位数字。例如,当输入为 123.123.123.123 或 123.123.123 时,漫游器仅存储前六位数字(中间用点分隔),并提示返回“哦,物料编号为123.123“。
通过使用JSON编辑器,应该可以克服这种困惑。
答案 0 :(得分:2)
类似于this answer中建议的解决方案,您可以嵌套ternary operators:
{
"context": {
"number1": "<? @number1:mat3 ? entities.number1[2].literal : @number1:mat2 ? entities.number1[1].literal : entities.number1[0].literal ?>"
}
}