]> BizTalk Business Rules Engine 🌐:aligrant.com

BizTalk Business Rules Engine

Alastair Grant | Monday 7 September 2009

The Microsoft BizTalk Business Rules Engine (BRE) allows a pain free (sic) way of making decisions outside of code.

The idea is is, you pass some objects in (XML files, Database tables, .NET classes) and based on the data within the instance you pass in, you make decisions and update them, or other objects.

Realistically, the rules composer is difficult to work with and you have to resort to frigging things to get it to work. Specifically missing XML elements and unpublishing existing polices and vocabs.

I've got stuck on a more fundamental thing though, getting data out.

Passing in an XML document with some info, I want to then generate some information based on some simple rules. This is information does not have any place to exist in the input schema. So I created a new output message.

I can drag a shape onto the actions and set a value. Super. But it's not available within BizTalk's Call Rules shape. I think this turns out to be due to the schema not being GAC'ed in an assembly first, as it never displayed a message type before the node path.

A deploy of my output schema and restart of the composer showed better results.

I think you also need to stub out the message you want to output prior to running the rules. So you'll have to do a nasty XmlLoad or such in your Orchestrations.

I'm trying to see if it's possible to send out simple/base types, like strings. As a lot of the use I have for the BRE is just making a single decision based on a variety of inputs.

Breaking from the voyeuristic norms of the Internet, any comments can be made in private by contacting me.