BizTalk Business Rules Engine
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.