Routing 从Biztalk中的不同接收位置路由相同消息类型的消息
我有一个简单的场景,我必须将邮件从一个文件夹路由到另一个文件夹。现在,这些邮件可以来自10个不同的来源(文件夹),并被路由到10个不同的位置(文件夹) <考虑<代码> SourceA,SooCeb,SourceC < /代码>…是接收位置和Routing 从Biztalk中的不同接收位置路由相同消息类型的消息,routing,integration,biztalk,Routing,Integration,Biztalk,我有一个简单的场景,我必须将邮件从一个文件夹路由到另一个文件夹。现在,这些邮件可以来自10个不同的来源(文件夹),并被路由到10个不同的位置(文件夹) …是接收位置和DestA、DestB、DestC,。。。是目的地 因此,来自SourceA的文件将被路由到DestA,依此类推 现在,我已经实现了这个场景。 我的问题是什么是最好的解决办法 1) 一个具有10个接收位置的接收端口,逻辑接收端口与物理端口绑定。一个侦听形状将侦听消息,并在执行单独的任务后,将路由到相应的位置。也可能有单独的业务流程,
DestA、DestB、DestC
,。。。是目的地
因此,来自SourceA
的文件将被路由到DestA
,依此类推
现在,我已经实现了这个场景。
我的问题是什么是最好的解决办法
1) 一个具有10个接收位置的接收端口,逻辑接收端口与物理端口绑定。一个侦听形状将侦听消息,并在执行单独的任务后,将路由到相应的位置。也可能有单独的业务流程,因为可能必须为每个传入消息执行特定任务
2) 10个接收位置,其中所有消息都发布到消息框,并且在编排中有一个动态逻辑接收端口
主要问题是,从源位置发出的消息应单独路由到相应的目标位置
注意:这些位置的消息类型和数据也可以完全相同。因此,基于某些数据字段的路由是不可能的
如果您需要更多的澄清,请告诉我。在这种情况下,最好的答案是最简单的
- 10个接收端口/位置
- 10个发送端口
发送端口筛选器基于BTS.ReceivePortName。如果没有可路由的数据属性,则需要可以路由的上下文属性。根据Johns-305答案,如果只发送消息而没有业务流程,则可以使用BTS.ReceivePortName。但是,如果您有业务流程,则必须确保保留BTS.ReceivePortName或使用另一个提升的上下文属性 上下文属性我们更喜欢使用BTS.Operation,因为这是自动升级的,可以通过以下方法之一进行设置
- 在WCF WebHttp中,通过Http方法和URL映射接收位置
- 在WCF WSHttp中,通过其操作
- 通过让BRE Pipeline组件设置操作来创建其他端口
- 来自通过逻辑端口的操作名称设置的业务流程