BizTalk 2009 - Custom Functoid Categories
Posted
by StuartBrierley
on Geeks with Blogs
See other posts from Geeks with Blogs
or by StuartBrierley
Published on Thu, 27 May 2010 09:27:42 GMT
Indexed on
2010/05/27
10:52 UTC
Read the original article
Hit count: 398
I recently had cause to code a number of custom functoids to aid with some maps that I was writing.
Once these were developed and deployed to C:\Program Files\Microsoft BizTalk Server 2009\Developer Tools\Mapper Extensions a quick refresh allowed them to appear in toolbox. After dropping these on a map and configuring the appropriate inputs I tested the map to check that they worked as expected.
All but one of the functoids worked as expecetd, but the final functoid appeared not to be firing at all.
I had already tested the code used in a simple test harness application, so I was confident in the code used, but I still needed to figure out what the problem might be.
Debugging the map helped me on the way; for some reason the functoid in question was not shown correctly - the functoid definition was wrong.
After some investigations I found that the functoid type you assign when coding a custom functoid affects more than just the category it appears in; different functoid types have different capabilities, including what they can link too.
For example, a logical functoid can not provide content for an output element, it can only say whether the element exists. Map this via a Value Mapping functoid and the value of true or false can be seen in the output element.
The functoid I was having problems with was one whare I had used the XPath functoid type, this had seemed to be a good fit as I was looking up content in a config file using xpath and I wanted it to appear the advanced area.
From the table below you can see that this functoid type is marked as "Internal Only", preventing it from being used for custom functoids. Changing my type to String allowed the functoid to function as expected.
Category | Description | Toolbox Group |
Assert | Internal Use Only | Advanced |
Conversion | Converts characters to and from numerics and converts numbers from one base to another. | Conversion |
Count | Internal Use Only | Advanced |
Cumulative | Performs accumulations of the value of a field that occurs multiple times in a source document and outputs a single output. | Cumulative |
DatabaseExtract | Internal Use Only | Database |
DatabaseLookup | Internal Use Only | Database |
DateTime | Adds date, time, date and time, or add days to a specified date, in output data. | Date/Time |
ExistenceLooping | Internal Use Only | Advanced |
Index | Internal Use Only | Advanced |
Iteration | Internal Use Only | Advanced |
Keymatch | Internal Use Only | Advanced |
Logical | Controls conditional behavior of other functoids to determine whether particular output data is created. | Logical |
Looping | Internal Use Only | Advanced |
MassCopy | Internal Use Only | Advanced |
Math | Performs specific numeric calculations such as addition, multiplication, and division. | Mathematical |
NilValue | Internal Use Only | Advanced |
Scientific | Performs specific scientific calculations such as logarithmic, exponential, and trigonometric functions. | Scientific |
Scripter | Internal Use Only | Advanced |
String | Manipulates data strings by using well-known string functions such as concatenation, length, find, and trim. | String |
TableExtractor | Internal Use Only | Advanced |
TableLooping | Internal Use Only | Advanced |
Unknown | Internal Use Only | Advanced |
ValueMapping | Internal Use Only | Advanced |
XPath | Internal Use Only | Advanced |
Links
http://blog.eliasen.dk/CommentView,guid,d33b686b-b059-4381-a0e7-1c56e808f7f0.aspx
© Geeks with Blogs or respective owner