Mulesoft-使用选择组件
我正在用mule studio开发一个应用程序, 我需要使用“Choice”组件,但我想计算的不是有效负载中包含的消息属性,而是属性文件中包含的变量,如下所示:Mulesoft-使用选择组件,mule,mule-studio,mule-el,Mule,Mule Studio,Mule El,我正在用mule studio开发一个应用程序, 我需要使用“Choice”组件,但我想计算的不是有效负载中包含的消息属性,而是属性文件中包含的变量,如下所示: <choice doc:name="Choice"> <when expression="${CONTROL_VARIABLE}.equals("S")"> <set-variable variabl
<choice doc:name="Choice">
<when expression="${CONTROL_VARIABLE}.equals("S")">
<set-variable variableName="URL_ADDRESS" value="${URL_PREPATH_VALUE}/[#payload.URL]" doc:name="Variable"/>
</when>
<otherwise>
<set-variable variableName="URL_ADDRESS" value="[#payload.URL]" doc:name="Variable"/>
</otherwise>
</choice>
当然它不起作用,因为如果我理解正确,只有消息负载才能被评估
我怎样才能以最好的方式完成任务?
我必须以某种方式在有效负载中添加所有属性文件变量吗
谢谢大家! 选项中的条件表达式对于从属性文件加载的数据将非常有效 试试下面这一段,它应该会起作用
<when expression="'${CONTROL_VARIABLE}' == 'S'">
希望这能有所帮助。您也可以定义引用属性文件的选项表达式条件,如下所示
您刚才缺少用单引号括起属性引用。您也可以使用equals方法,而不是使用=
运算符。在比较之前,您只需要用单引号括起您的属性引用
<*when expression="'${CONTROL_VARIABLE}'.equals('S')"*>
说明:当您使用诸如“${CONTROL_VARIABLE}”这样的单引号将属性引用括起来时,它将被转换为字符串对象,然后您可以应用任何支持字符串类型的方法/运算符
希望这有帮助。这个答案与公认的答案非常相似。当用一个被接受的答案回答一个老问题时,请添加一些新的和有用的内容。