使用集合拆分器mule esb时计数器工作不正常

使用集合拆分器mule esb时计数器工作不正常,mule,mule-studio,mule-component,Mule,Mule Studio,Mule Component,我从salesforce读取数据,并使用集合拆分器进行拆分。我想将所有数据聚合到一个列表中。首先,我计算所有记录,并用MULE\u CORRELATION\u GROUP\u大小设置计数器。但是我的计数器给了我错误的计数而且我的数据没有聚合。。 我怎样才能解决这个问题 我下面的流程正确吗 下面是我的代码 <flow name="davesalesforceFlow1Tmp" doc:name="davesalesforceFlow1Tmp"> <http:inb

我从salesforce读取数据,并使用集合拆分器进行拆分。我想将所有数据聚合到一个列表中。首先,我计算所有记录,并用MULE\u CORRELATION\u GROUP\u大小设置计数器。但是我的计数器给了我错误的计数而且我的数据没有聚合。。 我怎样才能解决这个问题

我下面的流程正确吗

下面是我的代码

<flow name="davesalesforceFlow1Tmp" doc:name="davesalesforceFlow1Tmp">
        <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" doc:name="HTTP" path="test" contentType="text/plain"  />
        <sfdc:query config-ref="salesforce" doc:name="Salesforce" query="My query"/>

        <collection-splitter doc:name="Collection Splitter"/>
        <set-session-variable variableName="cnt"
                          value="#[org.mule.util.StringUtils.countMatches(message.payload, '\n') + org.mule.util.StringUtils.countMatches(message.payload, ',') - 1]" doc:name="Session Variable"/>

        <set-property propertyName="MULE_CORRELATION_GROUP_SIZE"
                  value="#[sessionVars.cnt]" doc:name="Property"/>
        <collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/>
我还尝试了以下代码,但在输出中只得到了一条记录

 <flow name="davesalesforceFlow1Tmp" doc:name="davesalesforceFlow1Tmp">
            <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" doc:name="HTTP" path="test" contentType="text/plain"  />
            <sfdc:query config-ref="salesforce" doc:name="Salesforce" query="My query"/>

            <collection-splitter doc:name="Collection Splitter"/>
            <set-property propertyName="MULE_CORRELATION_GROUP_SIZE"
                  value="#[message.outboundProperties['MULE_CORRELATION_SEQUENCE']]" doc:name="Property"/>
            <collection-aggregator failOnTimeout="true" doc:name="Collection Aggregator"/>
<logger message="MY PAYLOAD IS  #[payload]" level="INFO" doc:name="Logger"/>
  </flow>

    </flow>

如果同时使用集合拆分器和聚合器,则无需跟踪计数或任何内容

Mule将通过幕后的Mule_CORRELATION_*头处理此问题

只有当您需要复杂的拆分和聚合时,才可能需要自己修改这些标题

        <logger level="INFO" message="size before: #[payload.size()]" />

        <collection-splitter />

        <logger level="INFO" message="Individual item: #[payload]" />

        <collection-aggregator />

        <logger level="INFO" message="size after: #[payload.size()]" />

您应该看看for each scope是否更适合您最终要实现的目标。谢谢您的回复。我试过了。。但没用我在旧金山有10张唱片。若我在集合拆分器之后在记录器中打印,那个么会显示单个记录。但我想在单个集合中聚合它们。汇总后,我只得到一张唱片。如何聚合所有记录???您可以添加控制台中的日志吗?