首页 > 解决方案 > BizTalk - 推广多个值,订阅其中一个

问题描述

简短版本:可以以某种方式提升具有多个值的属性,以便发送端口可以订阅列表中的值之一?

长版:在数据库中,我有地图信息,我们将人们映射到位置。一个人可以在多个位置工作,并且位置可以有很多人在它工作。位置和人(数千人)之间的关系由运营团队使用更新数据库的井应用程序维护。

一条包含多人的消息进入 Biztalk。

目前,BizTalk 接收消息,从消息中提取人员列表,并将消息转储到 sql 数据库中,并带有关联的人员列表。SQL 解析人员/位置关系并将不同的位置列表写入关联表。我们有一个接收端口,它运行查询并将来自数据库的消息发布到消息框,该消息具有保存位置的提升属性。从那里我们有多个发送端口,每个端口都订阅一个特定的位置。

问题是它不是一个有效的过程。消息多次发布到 Biztalk 消息框(一次用于入站,至少一次用于出站)。

是否有可能使用管道组件提升消息应该到达的位置,然后让发送端口订阅特定位置?挑战在于,有些发送端口需要是 ReST,有些是 SOAP,因此位置之间的集成可能会有所不同。我无法找到一种方法来发布具有多个值的多个属性,而发送端口可以订阅其中一个值。寻找想法...

标签: biztalkbiztalk-2016

解决方案


有趣的是,上周也出现了同样的情况……无论如何……

是的,通过在过滤器中使用 Bitwise And 谓词。这是 & 选项。您必须将每个位置映射到一个值(2 的幂),但每个属性最多可以支持 32 个选项(如果支持 uint64,则为 64 个......嗯......对不起,我只是不记得了 :)

如果您需要更多,只需添加第二个组过滤器,东、西或其他。


推荐阅读