1

我有一个流程,它需要一对日期入站,然后使用消息丰富器来获取在这两个日期之间从事特定工作的员工列表。结果是从 JDBC 数据库返回的简单映射列表。我把它保存到一个流变量中没有任何麻烦。下一次浓缩给我带来了麻烦。我为每个使用流变量中的员工列表的循环设置了一个。这很好用,然后我需要为这些员工中的每一个执行另一个 JDBC 查询,以获取他们在传递给流程的两个日期之间上交的所有时间票。查询有效,但我无法定义目标表达式来保存结果。我希望看到目标是一张地图,其中员工 id 为键,期间的票证(地图列表)为值。有没有办法做到这一点?有没有更好的方法来保存这些结果?在我拿到所有的票后,我需要以各种方式对它们进行汇总,并生成一份显示详细信息和分析的报告。

我目前正在 mule studio 中为社区运行时版本 3.4 开发这个。

4

1 回答 1

2

这就像你正在寻找的东西吗?

<set-variable variableName="maplistmap" value="#[new java.util.HashMap()]"/>
<foreach>
  <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="selekt" queryTimeout="-1" connector-ref="Database">
    <jdbc-ee:query key="selekt" value="select * from mytable where id = #[payload]"/>
  </jdbc-ee:outbound-endpoint>
  <scripting:component>
    <scripting:script engine="Groovy"><![CDATA[
        flowVars["maplistmap"].put(payload[0].id, payload)
    ]]></scripting:script>
  </scripting:component>         
</foreach>
<logger message="#[flowVars.maplistmap]" level="INFO"/>
于 2014-02-21T10:20:32.153 回答