Mule / Anypoint并为每个嵌套

时间:2014-12-10 12:31:29

标签: mule

我试图为每个"做一个嵌套的#34; (在我的骡子流中有一个)。 (生成的JAXB对象层次结构是Populations-> Population-> Person-> Relations-Relation) 然而,似乎我期望在我的第二个"每个"在那里,消息说有效载荷是整数类型的? 这是"计数器"?我怎样才能进入我的嵌套集合" Relations"在我的第二个循环?

    <foreach collection="#[payload.getPopulations().getPopulationpost()]" doc:name="For Each">
        <logger.... />
        <db:insert>
        .....
        </db:insert>
        <foreach collection="#[payload.getPersonpost().getRelations().getRelation()]" doc:name="For Each">
            <logger ..../>
        </foreach>
    </foreach>

此致

***** EDIT ****** 我实际上认为问题出在我的第一个&#34; For Each&#34;我的有效负载由数据库中插入的记录数组成。我通过将有效负载设置为&#34; originalPayload&#34;来解决它。在进入第一个循环之前变量然后我选择在第二个循环中迭代该变量&#34;对于每个&#34;代替。

1 个答案:

答案 0 :(得分:2)

foreach使用counterVariableName变量来保持当前的迭代,如果你嵌套两个foreach会有冲突,尝试这样的事情:

<foreach collection="#[payload.getPopulations().getPopulationpost()]" doc:name="For Each">
    <logger.... />
    <db:insert>
    .....
    </db:insert>
    <foreach collection="#[payload.getPersonpost().getRelations().getRelation()]" counterVariableName="nestedCounter" doc:name="For Each">
        <logger ..../>
    </foreach>
</foreach>