根据值将 Biztalk 平面文件消息拆分为单独的分组平面文件

Debatching Biztalk flat file message into individual grouped flat files based on value

遇到一个问题,我试图根据原始文件中的值(在本例中为 PONumber)将 BizTalk Server 中的平面文件(逗号分隔到制表符分隔)拆分为单独的平面文件。

示例输入:

PartNumber,Weight,PONumber,Other
21519,234,46788,1
81919,456,47115,1
91910,789,47115,1

这将产生 2 条消息,例如:

PartNumber  Weight  PONumber    Other
21519   234 46788   1

PartNumber  Weight  PONumber    Other
81919   456 47115   1
91910   789 47115   1

我也看到过类似的东西但是没有确定的答案,或者样本是死链接。有没有人有他们做过这样的事情的样本或有好的解决方案?

选项 1:车队模式

更改您的架构,使采购订单行的最大出现次数为 1,这将在接收到每一行时将其分批放入它自己的消息中。

升级 PONumber,使其成为消息上下文中的升级 属性。

具有基于 PO 编号的关联集的编排,并在第一个接收形状上对其进行初始化。

具有以下相关性的接收形状在循环内处于等待形状,以接收具有相同 PO 编号的所有其他行并将它们组合成一条消息。

选项 2:登台数据库

另一种选择是将所有行插入到 SQL 数据库中,然后使用一个存储过程轮询获取单个 PO 的所有行。

这有时会更简单,并且可以避免 Zombies 的问题,因为您可以将其实现为仅消息传递模式或使用更简单的无循环编排。