WSO2 ESB-切换介体,条件与编号

时间:2018-12-05 14:50:55

标签: wso2 wso2esb

我正在使用API​​,我想添加一个条件“高于”:

<switch source="$ctx:myValue">
<case regex="$ctx:myValue > 1000">
...
</case>
<default/>
</switch>

您知道如何执行此条件吗?谢谢:)

2 个答案:

答案 0 :(得分:1)

尝试过滤器中介。

   name  id time flag
1  Anna 100   t2    1
2  Anna 100   t3    1
3  Anna 100   t5    1
4 Jenny 250   t1    0
5 Jenny 250   t2    1
6 Jenny 250   t3    1
7 Jenny 250   t4    1
8 Jenny 250   t5    1

或者,对于switch介体,一个简单的正则表达式(等于或大于1000)将是

<filter xpath="get-property('myValue') > 1000">
   <then>
     ... do something
   </then>
   <else>
      ... do something else
   </else>
</filter>

但是,对于更复杂的正则表达式,则需要更具体的要求。因此,最终,在这种情况下,筛选器中介可能是您最好的选择。

答案 1 :(得分:0)

我自己回答了问题。

我使用了像这样的脚本中介器:

 <script language ="js">
            <![CDATA[
            var nbResultatJS = mc.getProperty('nbMessage');
            var isSuperiorJS = 0;
            if(nbResultatJS > 1000){
                isSuperiorJS = 1;
            }
            mc.setProperty('isSuperior', isSuperiorJS);

            ]]>
            </script>
            <log level="custom">
                        <property name="MSG" expression="$ctx:isSuperior"/>
                    </log>

            <switch source="$ctx:isSuperior">
                <case regex="1.0">
                ...
                </case> </script>