骡子选择比较

时间:2012-07-06 15:24:53

标签: mule

在mule flow中,我需要比较输入字符串消息中的最后两个参数

  

2012-04-30,2012-05-30,1,5

如果param1(1) <= param2(5),我需要执行jms:outbound-endpoint

有标准的选择元素吗?你能举个例子。

5 个答案:

答案 0 :(得分:2)

使用mule 3.2.x时,最好的选择是使用groovy评估器并使用如下所示的选择路由器

 <when expression="#[groovy:payload.split(',')[2] &lt;= payload.split(',')[3] ]">
      <processor-chain>
          <jms:outbound-endpoint queue="out" doc:name="JMS"/>
      </processor-chain>
 </when>

否则,如果您愿意升级到Mule 3.3.0,您可以利用新的Mule Expression Language,允许在不需要groovy运算符的情况下执行相同操作

答案 1 :(得分:0)

你也可以在&#39;,&#39;的基础上使用分割器和分割器。然后得到参数的比较逻辑

答案 2 :(得分:0)

您无需使用Groovy。您可以直接在有效负载上应用split()函数。

<when expression="#[payload.split(',')[2]&lt;=payload.split(',')[3]]">
  <processor-chain doc:name="Processor Chain">
     <jms:outbound-endpoint queue="data" connector-ref="Active_MQ"doc:name="JMS"/>
  </processor-chain>
</when>

答案 3 :(得分:0)

除了表达式过滤器,您还可以使用选择流控制。捕获要在流向变量中进行比较的2个值,并在选择流量控制条件时使用下面的表达式。

[flowVars.param1&lt; = flowVars.param1]

在链接下方提供更多信息。

https://docs.mulesoft.com/mule-user-guide/v/3.7/choice-flow-control-reference

答案 4 :(得分:-1)

您可以利用新的Mule表达式语言,无需使用groovy运算符即可完成相同的操作