BizTalk-提升多个值,订阅其中一个值

BizTalk-提升多个值,订阅其中一个值,biztalk,biztalk-2016,Biztalk,Biztalk 2016,简短版本: 是否可以以某种方式升级具有多个值的属性,以便发送端口可以订阅列表中的一个值 长版本: 在一个数据库中,我有地图信息,我们在那里把人们映射到不同的位置。一个人可以在多个地点工作,而这个地点可以有很多人在工作。位置和人员(数千人)之间的关系由运营团队使用更新数据库的well应用程序进行维护 Biztalk中出现一条包含多人的消息 当前,BizTalk接收消息,从消息中提取人员列表,并将消息与相关人员列表一起转储到sql数据库中。SQL解析人员/位置关系,并将不同的位置列表写入关联表。我们

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

长版本: 在一个数据库中,我有地图信息,我们在那里把人们映射到不同的位置。一个人可以在多个地点工作,而这个地点可以有很多人在工作。位置和人员(数千人)之间的关系由运营团队使用更新数据库的well应用程序进行维护

Biztalk中出现一条包含多人的消息

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

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


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

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

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


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

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

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


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

一个人可以在多少个位置工作?如果是一个较小的数字,您可以只具有多个提升的上下文属性,例如location1、location2和location3,然后在发送端口上具有location1==“Location a”或location2==“Location a”或location3==“Location a”。当然,在许多地点,这将变得非常笨拙。您可能还希望为所有位置设置一个位置值,并将其作为or表达式添加到所有发送端口。@dijkgraff-很难说,通常是1到3个位置,通常是6个,但理论上可能不止这些。一个人可以在多少个位置工作?如果是一个较小的数字,您可以只具有多个提升的上下文属性,例如location1、location2和location3,然后在发送端口上具有location1==“Location a”或location2==“Location a”或location3==“Location a”。当然,在许多地点,这将变得非常笨拙。您可能还希望为所有位置设置一个位置值,并将其作为or表达式添加到所有发送端口。@dijkgraff-很难说,通常是1到3个位置,通常最多6个位置,但理论上可能不止这些。