你有一个类似问题的例子 samples 你附近的目录是spoon.bat。看看吧 samples/transformation/XML Add 并且在第一个choc中幸存下来:他们做了一些更复杂的事情,只是为了展示所有可能的东西。
samples
samples/transformation/XML Add
在你的情况下,用一个分开 Switch/Case ,标题中的输入流,项目和管理以保持每个上的InvoiceNumber(稍后将详细介绍)。将三个流转换为JSON(使用JSON输出,或者更简单,使用 Javascript )。那么你 Group by InvoiceNumber的项目。通过InvoiceNumber加入三个流程,我建议使用它 lookup stream 在标题流中然后是另一个 lookup stream 在页脚流中。和另外一个 javascript 并将数据视为字符串,您可以以{header,[item],footer}格式构建JSON行,您可以 Group by 连接只有一行。
Switch/Case
Javascript
Group by
lookup stream
javascript
有些工作,但相当标准,除了在项目和页脚上获取InvoiceNumber的棘手部分,因为它们已从流程中消失。为此你可以使用的事实 javascript 保留值,除非重新定义。添加一个新的启动脚本[右键单击选项卡顶部的Script1,添加一个副本,右键单击刚刚创建的Script1_0,并将其定义为Start script]。
在这个启动脚本上:
var PrevInvoiceNumber = -1;
在主要脚本上:
if(InvoiceNumber && PrevInvoiceNumber!=InvoiceNumber) PrevInvoiceNumber = InvoiceNumber
然后你应该看到每行上的数据PrevInvoiceNumber等于发票的预期InvoiceNumber。