Enhance the subscription filters
The subscription filters are key to BizTalk’s functionality, yet the filter rules and structure has not developed. We need:
- A “Not exists” operator
- Deeper grouping of filters, i.e. don’t limit to only one level of grouping
- A “Contains” operator would also be welcome
The use of “Not exists” and “Contains” would increase the value of the filters, at a minimal cost to processing time.
The value of content based routing is limited when you can only do one level of grouping. For example, the following logical filter:
(Source == JCD AND (TypeID == 52 OR TypeID == 61 OR TypeID == 74))
(Source == BCG AND (TypeID == 75 OR TypeID = 76 OR TypeID = 80))
has to be implemented as:
(TypeID == 52 And Source == JCD)
(TypeID == 61 And Source == JCD)
(TypeID == 74 And Source == JCD)
(TypeID == 75 And Source == BCG)
(TypeID == 76 And Source == BCG)
(TypeID == 80 And Source == BCG)
John Stephens commented
NOT EXISTS is the only one I could have used.
If you need something more complex than the filter functionality can provide - or it's awkward, as in your example - I guess you are expected to do the logic in an orchestration and promote a flag that can be used in the filter.
One thing missing that should always have existed is the LIKE operator. This would help a lot.