Question

I am currently writing an orchestration that is directly bound to the message box, picks up messages and filters according to the filter expression in the receive shape inside said orchestration. The problem I'm having is this; I want to be able to change the filter in the BizTalk bindings, just like send filters are changed in the bindings. Really, I just don't want to have to recompile and re deploy every time My filter changes. Is there a way to do this? I'm thinking maybe modify the binding.xml file somehow, or possibly try a custom pipeline with configurable properties(as my last resort).

If it matters I typically use the BizTalk Deployment Framework for deployments.

Était-ce utile?

La solution

No, it is not possible to modify a Receive Shape Filter at Runtime.

If the filter needs to be dynamic, then you will have to apply that logic upstream. The idea of using a custom Pipeline Component is a common solution.

One other approach to consider is leaving you Receive Shape Filter broad and testing each incoming message with the BRE. If it 'passes', continue processing, otherwise exit. BRE Policies/Rules can be updated at runtime.

Autres conseils

For this sort of thing you will probably want to execute Business Rules in the Receive Pipeline that then sets a context property on the message that then determines the routing. That way the filter in the Orchestration is lightweight and doesn't need to be changed.

See http://brepipelineframework.codeplex.com/ (Disclosure: This is written by a colleague of mine)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top