Tech Blog

Understanding the BizTalk Mapper: Part 2 – Functoids Overview

This whole series of posts started because I wanted to show what XSLT was emitted when using the default functoids provided by Microsoft.
Specifically, I wanted to show the XSLT emitted by the Advanced Functoids. Understanding
this XSLT can help in understanding how to use the functoids.
For some reason (as seems to happen with me) the post expanded into a whole series
on the Mapper… every time I explain one thing, I seem to want to explain all the
things that the first thing is based on… oops.

Anyway, suffice to say that the next 9 posts will cover the code emitted by all of
the default functoids provided with BizTalk 2004 / 2006 / 2006 R2.

Note:

This is the second in a series of 13 posts about the BizTalk Mapper.
The other posts in this series are (links will become active as the posts become active):
Understanding
the BizTalk Mapper: Part 1 – Introduction


Understanding the BizTalk Mapper: Part 2 – Functoids Overview

Understanding
the BizTalk Mapper: Part 3 – String Functoids


Understanding
the BizTalk Mapper: Part 4 – Mathematical Functoids


Understanding
the BizTalk Mapper: Part 5 – Logical Functoids


Understanding
the BizTalk Mapper: Part 6 – Date/Time Functoids


Understanding
the BizTalk Mapper: Part 7 – Conversion Functoids


Understanding
the BizTalk Mapper: Part 8 – Scientific Functoids


Understanding
the BizTalk Mapper: Part 9 – Cumulative Functoids


Understanding
the BizTalk Mapper: Part 10 – Database Functoids


Understanding
the BizTalk Mapper: Part 11 – Advanced Functoids


Understanding
the BizTalk Mapper: Part 12 – Performance and Maintainability


Understanding
the BizTalk Mapper: Part 13 – Is the Mapper the best choice for Transformation in
BizTalk?

Download the complete series as a single Microsoft
Word document (1.2MB)
or Adobe
PDF document (620kb)
.

One thing to realise is that the majority of the default functoids emit inline C#
code – which is odd as quite a lot of the functionality can be performed using pure
XSLT.

So for each functoid I’ve shown:

  1. Whether XSLT or C# is emitted
  2. Whether an XSLT equivalent exists
  3. The XSLT or C# emitted by the functoid
  4. Where C# is emitted, the equivalent XSLT to achieve the same functionality (in both
    XSLT v1.0 and v2.0)

For the Advanced Functoids knowing what the functoids emit can be useful in understanding
how to use them.

For the other functoids, knowing the equivalent XSLT to use is useful if you want
a map which performs better as (generally speaking) using native XSLT will be faster
than the equivalent C# for simple operations.

Some useful references when reading these sections are:
XSLT 1.0 Function
reference


XSLT 2.0
Function reference


XSLT/XPath
Operators

Back to Tech Blog