biztalk - 根据值将 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
我见过类似的事情,但没有明确的答案,或者样本是死链接。有没有人有一个样本,他们做了这样的事情或有一个好的解决方案?
解决方案
选项 1:车队模式
更改您的架构,使其在订单行中最多出现 1 次,这将在收到每一行时将其分批成其自己的消息。
提升 PONumber 使其成为消息上下文中的提升属性。
有一个具有基于 PO 编号的相关集的业务流程,并在第一个接收形状上对其进行初始化。
具有具有以下相关性的接收形状,该形状在循环内处于等待形状,以接收具有相同 PO 编号的所有其他行并将它们组合成单个消息。
选项 2:暂存数据库
另一种选择是将所有行插入 SQL 数据库,然后使用您轮询的存储过程获取单个 PO 的所有行。
这有时会更简单,并且可以避免Zombies的问题,因为您可以将其实现为仅消息传递模式或使用更简单的 Orcherstration 而不使用循环。
推荐阅读
- perl - perl 的 Apache Freemarker 模板模块
- wordpress - 强制 https wordpess 进入 prestashop (.htaccess)
- vb.net - 在VB中插入查询
- d3.js - 在 d3js 中,如何绘制自定义形状(
) 在这个地球上而不是圆圈上? - scala - Akka actor 之间的数据共享
- ios - 如何将故事板的插座连接到 UITableViewCell 类 Xcode 11
- python - xlsxwriter.exceptions.InvalidWorksheetName Excel 工作表名称必须 <= 31 个字符
- sql - 我需要加入两个表。第一个表有一些带有 id 列的数据,第二个表有相同 id 的数据,但会有多个 id
- python - 询问动态问题以获取信息
- c# - 如果项目包含多个文件夹,如何使用 Add-Migration