I always remember that there’s a big “gotcha” for using the Business Rule Engine (BRE) within BizTalk, but I always forget what it is — until it gets me.

Most of the time, we’re passing a message, a.k.a. an XML document, into the BRE. It’s quite handy that we can reference the same .XSD schema created in BizTalk when setting up our BRE vocabulary. Just remember this when you create a vocabulary element:

The document type must be set to the fully qualified document type (for example, MyProject.MyMessage). The default is the schema file name with no extension.

…which generally means that the default is the document name/type in your BizTalk project, but without the project qualifier. Everything will test just fine in the Designer. You’ll flip back over to your Orchestration, drop in a Rule Shape … and you find that you can’t assert any facts into the engine! At that point, while you can edit the vocabulary, you can’t edit a specific element’s type. You have to delete the element and recreate it. Big pain.

So when creating your vocabulary, flip back to your BizTalk project, click on the schema you’re using, click on the "Fully Qualified Name" property, hit Tab, copy the fully qualified name, Alt-Tab back over to your Composer screen and paste. In fact, this is one of those things you’ll probably have on Notepad somewhere for quick reference.