wso2 esb中的嵌套迭代器在完成第二个迭代器后跳过所有序列

时间:2016-05-06 10:07:21

标签: iterator wso2 wso2esb

我当前的任务中有一个情况,我在ftp服务器中有一些xlx文件,我在代理服务的第一个迭代器中逐个读取它。在这个迭代器中,我将这个xlx文件拆分成一些csv文件,再次运行一个迭代器(在第一个迭代器内)来读取它并进行一些验证&使用smooks和XSLT变换器介体在其顶部进行转换。现在的问题是,第二个迭代器完成代理服务正在跳过第一个迭代器中的所有其他序列以及第一个迭代器外部,并且在第二个迭代器之后停止。

请帮帮我,是不是wso2 esb预期的行为或者我在配置中做错了?我搜索了很多与此相关但未找到任何解决方案。

1 个答案:

答案 0 :(得分:0)

我为不同的用例实现了相同的功能。我没有遇到任何问题,所以它会让我觉得你的配置中一定有一些东西缺失。

// first iterator
<iterate xmlns:sfdc="http://wso2.org/salesforce/adaptor"
              continueParent="true"
              expression="//sfdc:iterator">
                  <target>
                     //second interator
                      <sequence>
                           <iterate xmlns:ns="http://org.apache.synapse/xsd"
                               xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                       xmlns:sf="urn:sobject.partner.soap.sforce.com"
                       continueParent="true"
                       expression="//*[local-name() = 'queryMoreResponse']/*[local-name() = 'result']/*[local-name() = 'records']">
                       //do something
                      </iterate>

希望有所帮助。