Introduction

BizTalk Server provides an extensive library of out of the box functoids.  In case you need functionality is not offered through the existing functoids you will need to built your own custom functoid. However there are quite a few available customized functoids available you can reuse and save you the time of building it yourself. This article provides you as developer all the resource available regarding custom functoids for BizTalk Server.

Resources

Custom Functoids

This list is intended to be a knowledge base of all Custom Functoids that are available:

Name Description
eliasen.eu.BizTalk.Functoids
  • Add Carriage Return and Line Feed - This functoid adds Carriage Return (0x0D) and/or Line Feed (0x0A) to a string.
  • Convert First Letter to Uppercase - This functoid converts a string into the same string, with all words inside the string having been converted to lowercase with a capital first letter.
  • CSV Extract - This functoid extracts a certain substring from a string separated given a separator and a position.
  • Cumulative Comma - This functoid creates a comma separated list of values based on a reoccurring element.
  • Date Converter - This functoid converts a string representing a datetime from one format to another format, completely customizable.
  • If Then Else - This functoid helps you deal with the If-Then-Else issue in maps.
  • New GUID - This functoid returns a newly generated and unique GUID.
  • Read Application Config - This functoid reads a value from BizTalk's app.config file.
  • String Replace - This functoid replaces a string inside another string with a third string. It simply uses the String.Replace method in .NET 2.0.
BizTalk Map Extension Utility Pack (Codeplex):
- 2013R2
- 2013

also available here:
- 2013
- 2010
- 2006 | 2006R2 | 2009
  • Conversion Functoids
    • Convert to epoch date (unix) format - This functoid allows you to convert a traditional date (Human Readable Date) into a unix date (Epoch Date).
    • Convert from epoch date (unix) format - This functoid allows you to convert a unix date (Epoch Date) into a traditional date (Human Readable Date).
    • Convert datetime format: This functoid allows you to convert datetime format.
  • Dynamics Generator Functoids
    • Password Generator - Use this functoid to build a random password.
    • Guid Generator - This functoid allows you to generate a new Guid.
    • Tiny Id Generator - This functoid allows you to generate a new Tiny Id.
  • Encoder Functoids
    • Base64 Encoder - This functoid allows you to decode Base64-encoded text strings.
    • Base64 Decoder - This functoid allows you to convert string object into base64 encoded string.
  • Configuration Functoids
    • BTSNTSvc Config Get: This functoid allows you to get configuration parameters from BTSNTsvc.exe.config. If there is no section specified, the functoid reads from the AppSettings.
    • System Environment Variable Get: This functoid allows you to get configuration parameters from machine System Environment Variable.
    • Custom Config Get: This functoid allows you to get configuration parameters from a custom configuration file.
    • Windows Registry Config Get: This functoid allows you to get configuration parameters from Windows Registry.
    • SSO Config Get: This functoid allows you to get configuration parameters from SSO Database.
    • Rule Engine Config Get  This functoid allows you to obtain a definition value from a Vocabulary in the Business Rules Engine.
  • CRM Functoids
    • CRM Lookup: This functoid allows you to retrieve a value from CRM lookup field.
    • MSCRM Map Helper Base Types  Use this functoid when you want map CRM base data types such as “xs:string”, “xs:int” and so on.
    • MSCRM Map Helper Guid  Use this functoid when you want map CRM guid type.
    • MSCRM Map Helper Money  Use this functoid when you want map CRM money type.
    • MSCRM Map Helper Option Value  Use this functoid when you want map CRM option value type.
    • MSCRM Map Helper References  Use this functoid when you want map CRM reference type.
  • String Functoids
    • String Constant - This functoid allows you to set constant values (strings) inside de maps.
    • String ToTitleCase - This functoid allows you to Converts the specified string to title case (except for words that are entirely in uppercase, which are considered to be acronyms).
    • String Advance Compare - This functoid allows you to compare two specified String objects, ignoring or honoring their case, and returns an boolean that indicates if they are equal or not.
    • String Replace - This functoid returns a new string in which all occurrences of a specified string (second parameter) found in the first string are replaced with another specified string (third parameter).
    • String Normalize - This functoid allows you to normalize the text. It will remove two or more consecutive spaces and replace them with a single space, remove two or more consecutive newlines and replace them with a single newline and “condense” multiple tabs into one.
    • String PadLeft - This functoid allows you to set a new string that right-aligns the characters in this instance by padding them on the left with a specified Unicode character, for a specified total length.
    • String PadRight - This functoid allows you to set a new string that left-aligns the characters in this string by padding them on the right with a specified Unicode character, for a specified total length.
    • String Remove Leading Zeros  This functoid allows you to remove any leading zeros from an input string.
  • Custom Advanced Functoids
    • Default Value Mapping: The Default Value Mapping functoid have a similar but different behavior from the Value Mapping functoid. You can use the Default Value Mapping functoid to return a value from one of two input parameters. If the value of the first input parameter is Null or Empty, then the value of the second input parameter is returned, otherwise the first input is returned.
  • Authentication Functoids
    • Get Windows Azure ACS Wrap Token  This functoid allows you to obtain an ACS WRAP access token in order to access a Windows Azure BizTalk Services Bridge or Windows Azure Service Bus resources. Note this token needs to be added to the outbound request message Http Header. In order to do so use the Authorization key and assign it's value as 'WRAP access_token={RECEIVED TOKEN}'
  • XPath Functoids
    • XPath - This functoid natively integrates custom XPath queries in the BizTalk mapper.
  • SharePoint Functoids
    • Add SharePoint 2013 Document Set - Creates a Document Set in an existing SharePoint 2013 List.
  • Logical Functoids
    • Advance Logical AND  Use the Advance Logical AND functoid to return the logical AND of input parameters. This functoid requires two to one hundred input parameters.
    • Advance Equal  Use the Advance Equal functoid to return the value "true" if the first input parameter is equal to the second input parameter. This functoid requires two input parameters.
    • Advance Greater Than  Use the Advance Greater Than functoid to return the value "true" if the first input parameter is greater than the second input parameter. This functoid requires two input parameters.
    • Advance Greater Than or Equal To  Use the Advance Greater Than or Equal To functoid to return the value "true" if the first input parameter is greater than or equal to the second input parameter. This functoid requires two input parameters.
    • Advance Less Than  Use the Advance Less Than functoid to return the value "true" if the first input parameter is less than the second input parameter. This functoid requires two input parameters.
    • Advance Less Than or Equal To  Use the Advance Less Than or Equal To functoid to return the value "true" if the first input parameter is less than or equal to the second input parameter. This functoid requires two input parameters.
    • Advance Not Equal  Use the Advance Not Equal functoid to return the value “true” if the first input parameter is not equal to the second input parameter. This functoid requires two input parameters.
    • Advance Logical NOT  Use the Advance Logical NOT functoid to return the logical inversion of the input parameter. This functoid requires one input parameter only.
    • Advance Logical OR  Use the Advance Logical OR functoid to return the logical OR of input parameters. The input parameters have to be Boolean or numeric. This functoid requires two to one hundred input parameters.
    • If-Then-Else  Use the If-Then-Else Functoid to return a value from one of two input parameters based on a condition. If the condition (first input) is True, then the value of the second input parameter is returned, otherwise the Third input is returned.
BizTalk Functoids Library
  • ConvertDate - convert a date from one pattern to another.
RestFunctoids
  • REST Consume - This functoid consumes a REST service and returns its response.
  • XPath Extractor - This functoid extracts a part from a XML document.
Orchestration variable retriever
  • Orchestration variable retriever - retrieves the value of a variable in an orchestration.
Packed Decimal Converter Functoid
  • Double to Packed Packed Decimal - Convert from double to Packed Decimals.
  • Packed Decimal to Double - Convert from Packed Decimals to Double.
Encryption Functoid
  • DecryptionFunctoid
Currency Converter Functoid
  • Currency converter
Database lookup functoid with caching
  • ActionQuery - execute a stored procedure and return a single value.
  • ExecuteQuery - execute queries from the database. Each query will only be executed once.
  • ExtractData - is used to extract the appropriate column value from a recordset returned by the Execute Query functoid.
DBFunktoids

DBFunktoids for BizTalk Server 2010 here.

  • Stored Procedure Runner - executes SQL Server stored procedures.
  • Value Extractor - retrieves a value corresponding to a column name from the first row of records returned by the 'Stored Procedure Runner' functoid.
  • Error Extractor - retrieves a value corresponding to a column name from the first row of records returned by the 'Stored Procedure Runner' functoid.

ContextAccessor Functoids

...with bug fixes

  • Get Message Context Property values. (2 different functoids depending on whether the map is called from an orchestration or a port.)
EventLog Functoid
  • Will write to eventlog any output of string data type. It takes up 1 parameter and will return 1 parameter. It will return the same string after writing to eventlog.

See Also

Another important place to find a huge amount of BizTalk related articles is the TechNet Wiki itself. The best entry point is BizTalk Server Resources on the TechNet Wiki.