BizTalk Filter Finder Tool

  • Sandro Pereira
  • Nov 27, 2019
  • 5 min read

Have you ever found yourself in a position where you needed to understand how a particular BizTalk solution works? And to make matters worse, most of the solution is implemented using content-based routing?

Routing Messages in BizTalk Server

So first, what is this: Content-Based routing?

Don’t get me wrong, the definition that I will provide is because there are several Message Routing Patterns that you can implement in BizTalk Server. For example, you can implement in BizTalk Server:

But the reality is that in BizTalk Server:

  • a message is always composed by the message itself and the metadata associated with it;
  • The architecture is based on Publish-Subscribe.

So in essence, the subscriber will subscribe to the messages based on Content-Based Routing.

And you may say: yes, but I can route a message without examining its content.

And you are right. The problem is the default definition of this pattern:

  • As the name suggests, Content-Based Router examines the message content and routes it to a different channel based on the data it contains. For example, routing a message based on specific values of fields, or on criteria such as existing fields.

📝 One-Minute Brief

Introduces the BizTalk Filter Finder Tool, a utility that helps administrators quickly identify and understand content‑based and context‑based routing filters across BizTalk applications, send ports, and orchestrations.

However, as I mentioned earlier, a message in BizTalk Server is always composed of the message itself and the metadata associated with it. And for that reason, you may find other variations or other names like:

  • Context-Based
    Routing
    : Context-Based Routing is similar to the previous one, but instead of analyzing the message content, it analyzes the message metadata. This information in BizTalk Server is normally created by the adapter and pipelines on the receive port.
    • Remember that I can promote messages to the message context and route them.
  • Message-Based
    Routing
    : that is normally defined when:
    • A message is routed by BizTalk only based on the message type:
      • But this is metadata associated with the message, and you need to inspect the message to get its type.
    • or in pass-thru scenarios when you are just redirecting the message to other systems, i.e.,
      BizTalk is a broker and doesn’t “touch” or modify the message.
      • But these filters are also associated with the metadata of the message.

The problem of managing these solutions

If you have found yourself managing solutions, the majority are implemented with content-based routing, which is usually associated with not using orchestrations. You know that it is not easy to understand the solution:

  • What ports are subscribing
    to the messages?
    • In which
      conditions?
    • In which application?

But that’s not all. Even worse if you have orchestrations using filters based on the content/context of the message in the activation.

This kind of analysis is hard because BizTalk Server Administration Console doesn’t provide an easy way out-of-the-box for you to see these subscriptions, for example, in a central place or in a visual diagram like:

BizTalk subscriptions diagram prof-of-concept

This picture is actually from BizTalk360 Graphical Message Flow, but it serves well here as prof-of-concept.

The default solution

So the default solution that you have out-of-the-box with the product is to query the subscription from the BizTalk Server Administration Console by:

  • In the console tree, expand BizTalk Server Administration, and then click the BizTalk group.
  • In the details pane, click the New Query tab.
  • In the Query Expression group, in the Value column, select Subscriptions from the drop-down
    list box.
BizTalk Administration Console Subscription query

But then you need to go one by one and see what the filters are.

You can minimize this by filtering the query more using the following filters:

  • Maximum Matches: The number of matches to display.
  • Service Instance ID: You can filter subscriptions by service instance ID.
  • Service Name: You can filter subscriptions by service name.
  • Subscription Type: You can filter subscriptions by Activation Subscription or Instance Subscription.

But that will not solve all your problems, either. In conclusion, this is a hard and time-consuming task.

And sometimes what I need is just to have a quick overview of all these filters.

BizTalk Filter Finder Tool

“BizTalk Filter Finder Tool” is a simple tool that aims to simplify the process for better understanding and maintaining solutions based on content-based routing. By allowing you to have a quick overview of all the artifacts, send ports, or orchestrations that have filters associated.

BizTalk Filter Finder Tool

This tool will extend default BizTalk Server capabilities, transforming this tedious and sometimes complicated analysis into a simple, easy, and fast one.

It may not be an amazing tool; it may not be beautiful, but for me, it is a timesaver tool.

Credits

Credits also to my team member at DevScope, Pedro Almeida, who collaborated with me in developing this tool.

Download

You can download the BizTalk Filter Finder Tool from GitHub:

Hope you find this helpful! If you liked the content or found it useful and would like to support me in writing more, consider buying (or helping to buy) a Star Wars Lego set for my son. 

Thanks for Buying me a coffe
Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc. He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.

3 thoughts on “BizTalk Filter Finder Tool”

Leave a Reply

Your email address will not be published. Required fields are marked *

The Ultimate Cloud
Management Platform for Azure

Supercharge your Azure Cost Saving

Learn More
Turbo360 Widget

Back to Top