I am doing a lot of functoid implementation these days, and therefore, I have for instance decided to find out what these FunctoidCategories are and where in the toolbox the different categories belong.

In the toolbox, we have the following groups of functoids:

String

Mathematical

Logical

Date/Time

Conversion

Scientific

Cumulative

Database

Advanced

I still remember my first custom functoid - I was really expecting that in my code I could decide in which group my functoid should appear and maybe even create my own group. But that isn't the case. There are 24 different FunctoidCategories that I can assign my functoid, and only the above 9 groups. You can read more about the different functoid categories here. Basically, I will just give a very short resumé of this information and then I will match each category to a group in the toolbox, so you have this information for future reference.

So, this is what I know:

Category

Toolbox group

Description

Assert

Advanced

For internal use only.

Conversion

Conversion

Converts characters to and from their numeric representation, and to convert numbers from one base to another.

Count

Advanced

For internal use only.

Cumulative

Cumulative

Performs various kinds of accumulation of the value of a field that occurs multiple times in a source document and outputs a single output.

DatabaseExtract

Database

For internal use only.

DatabaseLookup

Database

For internal use only.

DateTime

Date/Time

Adds date, time, date and time, or add days to a specified date, in output data.

. Unzip the zip file, copy the dll to "%BTS%\Developer Tools\Mapper Extensions", where %BTS% is the installation folder of BizTalk. Then go to VS.NET 2005 and reload the toolbox. If you want use one of the functoids, remember to also GAC the dll. All the functoids have the exact same implementation, but they do not generate the same XSLT by the mapper because of the chosen category. Perhaps a new blog post on that later on...