One of the frustrations with BizTalk 2004 maps is the obscurity of functoids when viewing maps in Visual Studio. Depending on the volume of functoids in a map and/or depending on the degree of functoid chaining, easily understanding functoid usage can be impossible without diving into the functoid properties. So, I’ve written a stylesheet that transforms a BizTalk 2004 map into an HTML view containing the following information:
- The node links between source and destination schemas.
- All functoids used in the map are displayed with their parameters.
- Chained functoids are displayed as nested “function” calls.
- For HL7 schemas where source and desitnation are the same message type, links between different nodes are highlighted. The way I do this is not reliable as it depends on detecting a pattern in the root node name; looks for node names ending in ‘GLO_DEF’. Is there a more reliable way?
The other advantage to having HTML views of your maps is that HTML is a much more friendly format to share with non-developers who need to understand the transformations (e.g. testers) and who may not have access to Visual Studio.
You can download the stylesheet here. Consider it a beta version as it has not yet been fully tested (e.g. haven’t tested against all functoids, haven’t verified that all links and functoids are being reported correctly, haven’t tested against a wide variety of maps, etc).
At the moment I’m running the stylesheet using the Microsoft command line transformation utility (msxsl). Other more seamless approaches would be:
- A right-click explorer context menu for “.btm” files that would present a menu item to transform the map into an HTML view.
- Integration into Visual Studio so that you can choose to open a map as an HTML view (can’t remember how best to do this but I’m sure it can be done).
I’m sure there are a number of improvement/enhancements that can be made (e.g. including the functoid/link label attributes in the output). So please feel free to provide any feedback/ideas you have.
Following is a sample screen shot of an HTML view of a BizTalk HL7 map (click on the image to see the actual HTML):

![]() | BizTalk, Map, BizTalk Map, HTML, Generator, Documentation, Stylesheet |
