开发者

Implement Content-Based Routing Using a Business Rules Policy for a Known Message Type does not work using Samples

开发者 https://www.devze.com 2023-01-10 22:48 出处:网络
I\'m fairly new to Biztalk and the ESB Toolkit, We have since tried to implement content based routing via an ESB Itinary but I am having problems with the condition on the business rule not evaluatin

I'm fairly new to Biztalk and the ESB Toolkit, We have since tried to implement content based routing via an ESB Itinary but I am having problems with the condition on the business rule not evaluating properly, I've been following the microsoft example in the link below but it just doesn't want to work. http://msdn.microsoft.com/en-us/library/ee264380%28v=BTS.10%29.aspx

When we submit a request we get the following error, meaning the rule has not evaluated. Can someone please help?

The map name was not provided and is required.

Source: Microsoft.Practices.ESB.PipelineComponents.DispatcherDisassemble

Method: Void Disassemble(Microsoft.BizTalk.Component.Interop.IPipelineContext, Microsoft.BizTalk.Message.Interop.IBaseMessage)

Error Source: Microsoft.Practices.ESB.Itinerary.Services

Error TargetSite: Microsoft.BizTalk.Message.Interop.IBaseMessage ExecuteTransform(Microsoft.BizTalk.Component.Interop.IPipelineContext, Microsoft.BizTalk.Message.Interop.IBaseMes开发者_如何学Csage, System.String, Boolean)

Error StackTrace: at Microsoft.Practices.ESB.Itinerary.Services.TransformationService.ExecuteTransform(IPipelineContext context, IBaseMessage msg, String mapNameOrResolverString, Boolean validateSource) at Microsoft.Practices.ESB.Itinerary.Services.TransformationService.Execute(IPipelineContext context, IBaseMessage msg, String resolverString, IItineraryStep step) at Microsoft.Practices.ESB.PipelineComponents.DispatcherDisassemble.Disassemble(IPipelineContext pContext, IBaseMessage pInMsg)


John,

In certain cases you may indeed encounter this known issue. It does not seem to be a bug but rather a side effect of the way the ESB Toolkit is engineered.

Basically, for content-based routing to work, you need to re-write your Business Rules so that the message type (or more appropriately SchemaStrongName) is Microsoft.Practices.ESB.ResolveProviderMessage. Ideally, you would need to have two set of rules : one with the "correct" message type, and another one with the one expected by ESB Toolkit.

You can have a look at my article on my blog for more information.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号