首页 > 解决方案 > 根据值将 Biztalk 平面文件消息分批成单独的分组平面文件

问题描述

有一个问题,我试图根据原始文件中的值(在本例中为 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

我见过类似的事情,但没有明确的答案,或者样本是死链接。有没有人有一个样本,他们做了这样的事情或有一个好的解决方案?

标签: biztalkbiztalk-2016

解决方案


选项 1:车队模式

更改您的架构,使其在订单行中最多出现 1 次,这将在收到每一行时将其分批成其自己的消息。

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

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

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

选项 2:暂存数据库

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

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


推荐阅读