Mule 3.2. How to Evaluate Empty Session Variable in Flow?
题
How can I check if my session variable is null or empty in this CHOICE Its not working for me.
<processor-chain doc:name="Processor Chain">
<choice>
<when evaluator="groovy" expression="#[header:session:countryCode] != ">
<logger message="Valid Country Id" level="INFO" doc:name="Logger"/>
</when>
<otherwise>
<logger message="Invalid Country Id" level="INFO" doc:name="Logger"/>
</otherwise>
</choice>
</processor-chain>
I also tried != '' and != null
解决方案
You are using an invalid groovy expression. It should be:
...
<when expression="message.getProperty('countryCode',org.mule.api.transport.PropertyScope.SESSION)!=null
|| message.getProperty('countryCode',org.mule.api.transport.PropertyScope.SESSION)!=''"
evaluator="groovy">
...
You can also access properties with Header evaluator but I'm not sure if you can evaluate to find out if it is null or empty
其他提示
If you're using Mule 3.3.x, better use MEL than Groovy:
<when expression="#[org.mule.util.StringUtils.isNotEmpty(sessionVars.countryCode)]">
不隶属于 StackOverflow