将每条记录写入文件bpel文件适配器

时间:2016-11-29 20:51:11

标签: xml soa bpel

我需要将每个记录从表写入XML文件。我能想到以下解决方案

让数据库适配器查询表中的记录 为DB输出集合放置一个循环并调用转换(通过传递参数,通常是迭代器值)将第n条记录写入File输入变量
写入传递了动态文件名的文件(通常在表记录中使用一列值)
重复下一条记录以创建另一个文件

但我个人不喜欢这种做法,我只是想找出是否有最佳方法可以做到这一点?我必须只使用BPEL来做到这一点。

感谢并随时要求进一步澄清

1 个答案:

答案 0 :(得分:0)

我的理解是,您不希望一次性从db中选择所有记录并迭代它以写入文件。如果是这种情况,您是否考虑过以下方法?

  1. 选择满足您选择条件的记录总数(选择(来自table1其中myCondition1的count(id))并保留 一个bpel变量,比如TOTALCNT。

  2. 声明bpel变量START = 1。

  3. 声明一个bpel变量END = 50.假设数据库中有1000条记录满足我们的条件,我们将只选择50条记录 从DB一次写入文件。

  4. 现在激活用于选择数据的选择查询(从table1中选择field1,field2,... fieldn,其中myCondition1和ROWNUM> = START AND ROWNUM< = END)。这将为您提供符合选择标准的前50条记录。 START和END将传递给 来自bpel flow的适配器。

  5. 转换后将这些记录写入文件。

  6. 检查END< TOTALCNT。如果是,则SET START = END并将END增加50,以选择接下来的50条记录。然后转到步骤4.重复此过程直到END> = TOTALCNT。
  7. 点击此链接查看ROWNUM- http://www.oracle.com/technetwork/issue-archive/2006/06-sep/o56asktom-086197.html