BizTalk Mapper Extensions UtilityPack: DateTime Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: DateTime Functoids for BizTalk Server 2020

Today, after almost 3 years since I did the last update on the package, I updated it with a new suite of functoids that are now part of the BizTalk Mapper Extensions UtilityPack project available for BizTalk Server 2020: DateTime Functoids.

DateTime Functoids

This library includes a suite of functoids to perform several DateTime operations that you can use inside the BizTalk mapper.

This project, for now, only contains a single custom Functoid:

  • Get Current Date Functoid: This functoid allows you to get the current date and/or time in a specific format.
    • This functoid requires one input parameter:
      • date, time, or DateTime format;
    • Examples:
      • Input yyyyMMdd >>> Output = 20230526
      • Input HHmm >>> Output = 1519

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where can I download it?

You can download the complete Azure Function source code here:

Hope you find this helpful! So, if you liked the content or found it helpful and want to help me write more content, you can buy (or help buy) my son a Star Wars Lego! 

Author: Sandro Pereira

Sandro Pereira lives in Portugal and works as a consultant at DevScope. In the past years, he has been working on implementing Integration scenarios both on-premises and cloud for various clients, each with different scenarios from a technical point of view, size, and criticality, using Microsoft Azure, Microsoft BizTalk Server and different technologies like AS2, EDI, RosettaNet, SAP, TIBCO etc.

He is a regular blogger, international speaker, and technical reviewer of several BizTalk books all focused on Integration. He is also the author of the book “BizTalk Mapping Patterns & Best Practices”. He has been awarded MVP since 2011 for his contributions to the integration community.
View all posts by Sandro Pereira

What’s new in BizTalk Server 2020: XSLT 3.0 Support

What’s new in BizTalk Server 2020: XSLT 3.0 Support

Last weekend I delivered a session about BizTalk Server 2020 in action on Global Integration Bootcamp 2020 Madrid, where I spoke about the new features available in the most recent version of the product.

Today I will start this series of blog posts about what’s new in BizTalk Server 2020 by beginning to speak about one of the most expected and log time requested features: XSLT 3.0 Support.

XSLT 3.0 represents a significant upgrade of the XSLT 1.0 (and even XSLT 2.0) standards to become a general-purpose transformation language for the most common data storage and messaging formats.

There are a lot of advantages to using XSLT 3.0 compare with the XSLT 1.0 or, in fact, XSLT 2.0, and the goal here is not to address every single of them, but we can highlight the following one:

  • Extended Function Set, Sequences, Arrays, and Maps: The initial function set for XSLT1.0 was the same as XPath 1.0 functions and was very limited. Minimal math support, no regular expression support, minimal string manipulation capabilities, no support for set (sequence) operations, no support for dates.
    • Grouping:
      • xsl:for-each-group: a set of items can be selected and arranged into groups based on specific criteria (for example, common values); then each group can be processed in turn
        • special XPath functions within for-each-group: current-grouping-key(), currentgroup()
      • Variants of <xsl:for-each-group>:
        • group-adjacent: adjacent items are allocated to the same group if they have common values for the grouping key
        • group-starting-with: whenever an item matches the pattern, a new group is started with this item
        • group-by: whenever an item matches the pattern, a new group is started after this item
    • Sorting:
      • xsl:sort: can be used inside of <xsl:for-each>, <xsl:for-each-group>, <xsl:applytemplates> and <xsl:perform-sort>. It defines the order in which the data is processed by the instruction.
      • Several subsequent sort keys can be defined

BizTalk’s default XSL transform engine implementation is based on .Net Framework XSLT Transformations. This support is limited to XSLT 1.0.

Starting with BizTalk Server 2020, users can choose Saxon:registered: 9 (Saxon 9 HE) as the XSLT transform engine. But most importantly, it will be possible to plug-in your own custom XSLT transform engine.

  • YYou can implement a custom XSLT transform engine by defining XSLT transform implementation derived from abstract class Microsoft.XLANGs.BaseTypes.ITransform2 in assembly Microsoft.XLANGs.BaseTypes.dll.
  • See more details at: Custom XSLT transform implementation.

This makes it possible for BizTalk server maps to support newer versions of XSLT. Using Saxon 9 HE, we can readily use XSLT3.0.

Use XSLT Transform Engine property to specify the XSLT transform engine you wish to use:

This was one of the most expected features, but be careful, this can be a poisoned gift because Saxon 9 HE doesn’t support embedded scripting. As a result, functoids shipped as part of BizTalk may not function well. And for many cases, this can be a showstopper.

The advantages of using XSLT 3.0 with Saxon 9 HE:

  • Development: The XSLT file can be developed separately and hosted in a BizTalk map. It will simplify specific scenarios, especially scenarios that grouping and sorting are required. As we mentioned above, XSLT 3.0 provides an extended set of functions, which was very limited within XSLT 1.0.

Disadvantages when using XSLT 3.0 with Saxon 9 HD:

  • Level of effort: Not quite as intuitive, Functoids are easier to read visually on the map grid and therefore Requires “geeky” coding skills.
  • Overview: You lose the visual map representation. You can conjugate Saxon 9 HE with the BizTalk Mapper, but it is harder to do it.
  • BizTalk Mapper Editor limitations: except for a few built-in Functoids like Scripting Functoid (not all script types will work properly) or advance Functoids, BizTalk Functoids will not work while using the Saxon 9 HE XSLT Transformation Engine.
  • BizTalk Development Tool Integration: it is a brand new feature, and it seems that doesn’t have, at least for now, the same level of integration capabilities with the BizTalk Server development tools that we are usual to have and use if we compared with the default transformation engine

The post What’s new in BizTalk Server 2020: XSLT 3.0 Support appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: Math Functoids  for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: Math Functoids for BizTalk Server 2020

Today we will address the last suite of functoids that are part of the BizTalk Mapper Extensions UtilityPack project available for BizTalk Server 2020: Math Functoids. And with this blog post, we finally arrive to the end of this project migration.

Math Functoids

This library includes a suite of functoids to perform a variety of basic mathematical operations that you can use this inside BizTalk mapper.

This project includes the following Custom Functoids:

  • Negate Number Functoid: Use Negate Functoif to return the input double as its negated form.
    • This functoid requires one input parameter:
      • A number (double or int) to be negated;
    • The output result will be the input value in his negative form. If it’s positive, it will return as negative and vice-versa.
    • Examples:
      • Input 1 >>> Output = -1
      • Input -23,09 >>> Output = 23,09
      • Input 0 >>> Output = 0
BizTalk Server Math Functoids: Negate Number Functoid
  • SmartRound Functoid: Use SmartRound to return the rounded double, by the second parameter input.
    • The functoid takes two mandatory input parameters:
      • Parameter 1: Number to be rounded (double or int)
      • Parameter 2: Number to decimals places
    • The output of the functoid will be the input number rounded up or down to the specified decimal places.
    • Examples:
      • Input 23 rounded to 2 >>> Output = 23,00
      • Input 24,005900 rounded to 3 >>> Output = 24,006
BizTalk Server Math Functoids: SmartRound Functoid

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: Math Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: Database Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: Database Functoids for BizTalk Server 2020

Today we will focus on another set of libraries available for BizTalk Server 2020: Database Functoids. This is part of the BizTalk Mapper Extensions UtilityPack project migration task I been doing in the last few days. 

Database Functoids

This library includes a suite of functoids to perform a variety of database operations, mainly to extract data from a database for use in an output instance message.

This project includes the following Custom Functoids:

  • Adv Database Lookup Functoid: Use the Adv Database Lookup functoid to extract information from a database and store it as a Microsoft ActiveX Data Objects (ADO) recordset.
    • This functoid requires the following 3 inputs:
      • a database connection string;
      • A table name;
      • and a WHERE clause.
    • Returns a recordset containing the result records.
  • Adv Value Extractor: Use the Adv Value Extractor functoid to extract the appropriate column value from a recordset returned by the Adv Database Lookup function.
    • This functoid requires two inputs parameters:
      • a link to the Adv Database Lookup functoid;
      • and a column name.
    • Returns a string with the value of the specified column;

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: Database Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: Logical Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: Logical Functoids for BizTalk Server 2020

Todas we will address one of my favorites suite of functoids that will be available for BizTalk Server 2020: Logical Functoids. This is part of the BizTalk Mapper Extensions UtilityPack project migration task I been doing in the last few days. 

Logical Functoids

This library includes a suite of functoids to perform a variety of logical operations, often controlling whether a particular element or attribute is created in an output instance message. Most of the Logical Functoids are a replica of the existent Logical Functoids that came with BizTalk Server with the advantage that these will allow you to connect with others Custom String Functoids. They are fully compatible with existing functoids and don’t produce any more additional code.

This project includes the following Custom Functoids:

  • Advance Logical AND Functoid: Use the Advance Logical AND functoid to return the logical AND of input parameters. It determines whether all of the specified input parameters are true.
    • This functoid requires a minimum of two input parameters and a maximum of one hundred:
      • Parameter 1: A value that can be evaluated as either True or False.
      • Parameters 2 – 100: Values that can be evaluated as either True or False.
    • Returns the logical AND of parameters. True if all of the specified input parameters evaluate to True; False otherwise.
  • Advance Equal Functoid: Use the Advance Equal functoid to return the value “true” if the first input parameter is equal to the second input parameter. It tests whether the two input parameters are equal.
    • This functoid requires two input parameters:
      • Parameter 1: A value to be tested for equality with parameter 2.
      • Parameter 2: A value to be tested for equality with parameter 1.
    • Returns True if the values of the two input parameters are equal; False otherwise.
  • Advance Greater Than Functoid: Use the Advance Greater Than functoid to return the value “true” if the first input parameter is greater than the second input parameter. It tests whether the first input parameter is greater than the second input parameter.
    • This functoid requires two input parameters:
      • Parameter 1: A value to be tested to determine whether it is greater than parameter 2.
      • Parameter 2: A value to be tested to determine whether it is greater than parameter 1.
    • Returns True if the value of the first input parameter is greater than the value of the second input parameter; False otherwise.
  • Advance Greater Than or Equal To Functoid: 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. It tests whether the first input parameter is greater than or equal to the second input parameter.
    • This functoid requires two input parameters:
      • Parameter 1: A value to be tested to determine whether it is greater than or equal to parameter 2.
      • Parameter 2: A value to be tested to determine whether it is greater than or equal to parameter 1.
    • Returns True if the value of the first input parameter is greater than or equal to the value of the second input parameter; False otherwise.
  • Advance Less Than Functoid: Use the Advance Less Than functoid to return the value “true” if the first input parameter is less than the second input parameter. It tests whether the first input parameter is less than the second input parameter.
    • This functoid requires two input parameters:
      • Parameter 1: A value to be tested to determine whether it is less than parameter 2.
      • Parameter 2: A value to be tested to determine whether it is less than parameter 1.
    • Returns True if the value of the first input parameter is less than the value of the second input parameter; False otherwise.
  • Advance Less Than or Equal To Functoid: 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. It tests whether the first input parameter is less than or equal to the second input parameter.
    • This functoid requires two input parameters:
      • Parameter 1: A value to be tested to determine whether it is less than or equal to parameter 2.
      • Parameter 2: A value to be tested to determine whether it is less than or equal to parameter 1.
    • Returns True if the value of the first input parameter is less than or equal to the value of the second input parameter; False otherwise.
  • Advance Not Equal Functoid: Use the Advance Not Equal functoid to return the value “true” if the first input parameter is not equal to the second input parameter. It tests whether the two input parameters are not equal.
    • This functoid requires two input parameters:
      • Parameter 1: A value to be tested for inequality with parameter 2.
      • Parameter 2: A value to be tested for inequality with parameter 1.
    • Returns True if the values of the two input parameters are not equal; False otherwise.
  • Advance Logical NOT Functoid: Use the Advance Logical NOT functoid to return the logical inversion of the input parameter. Use to logically negate the value of the Boolean input parameter.
    • This functoid requires one input parameter only:
      • Parameter 1: A value that can be evaluated as either True or False.
    • Returns True if the specified input parameter evaluates to False; False otherwise.
  • Advance Logical OR Functoid: Use the Advance Logical OR functoid to return the logical OR of input parameters. The input parameters have to be Boolean or numeric. It determines whether any of the specified input parameters are true.
    • This functoid requires a minimum of two input parameters and a maximum of one hundred:
      • Parameter 1: A value that can be evaluated as either True or False.
      • Parameters 2 – 100: Values that can be evaluated as either True or False.
    • Returns True if any of the specified input parameters evaluate to True; False otherwise.
  • If-Then-Else Functoid: 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.
    • This functoid requires three input parameters:
      • A boolean representing the result of a previous condition
      • The value to be returned if the condition is True.
      • The value to be returned if the condition is False.
    • If the condition is True, then the value of the second input parameter is returned, otherwise, the third input is returned.

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: Logical Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: SharePoint Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: SharePoint Functoids for BizTalk Server 2020

Let’s continuing the BizTalk Mapper Extensions UtilityPack project migration and do an overview on another set of libraries available for BizTalk Server 2020: SharePoint Functoids that if I’m not mistaken was created René Brauwers.

SharePoint Functoids

This library includes a suite of functoids that you can use this inside BizTalk mapper to help you to easily integrate with SharePoint.

This project includes the following Custom Functoids:

  • Add SharePoint 2013 Document Set Functoid: Creates a Document Set in an existing SharePoint 2013 List. It is a requirement that the SharePoint list contains a custom content-type of type document set.
    • The following parameters are required:
      • string siteUrl = SharePoint Site Url
      • string listName = SharePoint List Name containing the custom content-type Document Set
      • string docSetContentTypeName = Document Set Content Type name
      • string newDocSetName=Name of the to document set to created
    • Comment: An custom content-type of type documentset needs to be available in SharePoint.

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: SharePoint Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: XPath Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: XPath Functoids for BizTalk Server 2020

Today we will focus on another set of libraries available for BizTalk Server 2020: XPath Functoids. This library was created a few years ago by Martijn Schiedon and is part of the BizTalk Mapper Extensions UtilityPack project that now is being migrate to BizTalk Server 2020.

XPath Functoids

This library includes a suite of functoids that provides XPath methods that you can use this inside BizTalk mapper.

This project includes the following Custom Functoids:

  • XPath Functoid: This functoid natively integrates custom XPath queries in the BizTalk mapper. This unique functoid which is a powerful competitor to the Scripting Functoid or a custom XSLT stylesheet and mixes exceptionally well with other functoids.
    • The functoid takes one mandatory input parameter and one optional parameter:
      • The first parameter specifies an absolute or relative XPath expression, which becomes a native part of the generated XSLT.
      • The (optional) second parameter is a link to the source tree node that becomes the (looping) context for the XPath expression.
    • This defines the current context node for the XPath expression and allows the use of relative XPath expressions.
    • Additionally, the mapper will generate a looping construct for that linked node where appropriate.
    • The functoid output can be linked to a destination schema node or serve as input to other functoids.

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: XPath Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: Custom Advanced Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: Custom Advanced Functoids for BizTalk Server 2020

Today we will focus on another set of libraries available for BizTalk Server 2020: Custom Advanced Functoids. This is part of the BizTalk Mapper Extensions UtilityPack project migration task I been doing in the last few days. 

Custom Advanced Functoids

This library includes a suite of functoids that provides methods for Conditional mapping that you can use this inside BizTalk mapper.

This project includes the following Custom Functoids:

  • Default Value Mapping functoid: The Value Mapping and Value Mapping (Flattening) functoids are used to provide a conditional mapping from an input instance message to an output instance message. When their first input parameter is true, the second input parameter is put into the specified element or attribute in the output instance message; otherwise, that element or attribute is not created in the output instance message. The Default Value Mapping has similar but different behavior. 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.
    • The functoid takes two mandatory input parameters:
      • String value to tested as Null or Empty
      • String value that will act as Default Value in case of the first input will be Null or empty.
    • 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, Example: P0011

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: Custom Advanced Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: String Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: String Functoids for BizTalk Server 2020

One step closer to finishing this BizTalk Mapper Extensions UtilityPack project migration. Today we will focus on another set of libraries available for BizTalk Server 2020: String Functoids.

String Functoids

This library includes a suite of functoids that provides many methods for safely creating, manipulating, and comparing strings that you can use this inside BizTalk mapper.

This project includes the following Custom Functoids:

  • String Constant functoid: This functoid allows you to set constant values (strings) inside de maps.
    • The functoid takes one mandatory input parameters:
      • String value to return out
    • The output of the functoid is the string set in the output, Example: P0011
  • String ToTitleCase functoid: 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)
    • The functoid takes one mandatory input parameters:
      • The string to convert to title case
    • The output of the functoid is a string converted to title case, Example: Sandro Augusto Sousa Pereira
  • String Advance Compare Functoid: This functoid allows you to compare two specified String objects, ignoring or honoring their case, and returns a boolean that indicates if they are equal or not.
    • The functoid takes three mandatory input parameters:
      • The first string to compare
      • The second string to compare
      • A boolean value: set True to ignore case during the comparison; otherwise, False.
    • The output of the functoid is a boolean that indicates if they are equal or not, Example: True
  • String Replace Functoid: 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).
    • The functoid takes three mandatory input parameters:
      • A string where we will replace the values
      • A string to be replaced.
      • A string to replace all occurrences of oldValue.
    • The output of the functoid is a string that is equivalent to the current string except that all instances of oldValue are replaced with newValue. If oldValue is not found in the current instance, the method returns the current instance unchanged, Example: Sandro Pereira: BizTalk
  • String Normalize Functoid: 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.
    • The functoid takes one mandatory input parameters:
      • The string to normalize
    • The output of the functoid is a string normalize without consecutive spaces, lines or tabs, Example: Sandro Augusto
      Sousa Pereira
  • String PadLeft Functoid: 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.
    • The functoid takes three mandatory input parameters:
      • A string that will be a pad on the left with a specified Unicode character
      • The number of characters in the resulting string, equal to the number of original characters plus any additional
        padding characters.
      • A Unicode padding character.
    • The output of the functoid is a new string that is equivalent to this instance, but right-aligned and padded on the left with as many paddingChar characters as needed to create a length of totalWidth. However, if totalWidth is less than the length of this instance, the method returns a reference to the existing instance. If totalWidth is equal to the length of this instance, the method returns a new string that is identical to this instance, Example: *BTS
  • String PadRight Functoid: 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.
    • The functoid takes three mandatory input parameters:
      • A string that will be a pad on the right with a specified Unicode character
      • The number of characters in the resulting string, equal to the number of original characters plus any additional
        padding characters.
      • A Unicode padding character.
    • The output of the functoid is a new string that is equivalent to this instance, but left-aligned and padded on the right with as many paddingChar characters as needed to create a length of totalWidth. However, if totalWidth is less than the length of this instance, the method returns a reference to the existing instance. If totalWidth is equal to the length of this instance, the method returns a new string that is identical to this instance, Example: BTS*
  • String Remove Leading Zeros Functoid: This functoid allows you to remove any leading zeros from an input string.
    • The functoid has one mandatory parameter:
      • Input string that may contain leading zeros that need to be removed.
    • The output of the functoid is an integer that is equal to the input instance but with the leading zeros removed.

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: String Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.

BizTalk Mapper Extensions UtilityPack: CRM Functoids for BizTalk Server 2020

BizTalk Mapper Extensions UtilityPack: CRM Functoids for BizTalk Server 2020

Another day and another blog post about BizTalk Mapper Extensions UtilityPack project migration. Today we will focus on another set of libraries available for BizTalk Server 2020: CRM Functoids created a few years ago by Salvatore Pellitteri.

CRM Functoids

This functoids allow you to Integrate Directly with the Dynamics CRM SOAP API, avoiding the use of inline XSLT Call template script function.

MSCRM requires that different data types are specified in a different way. For this reason, we provide a set of functoid each for a specific data type.

This project includes the following Custom Functoids:

  • MSCRM Map Helper Base Types Functoid: Use this functoid when you want map CRM base data types such as xs:string, xs:int, and so on.
    • The functoid takes three mandatory input parameters:
      • Source Field: Link from source schema field value.
      • Target Field Name: CRM target field name.
      • Target Field Type: CRM target field type (Example: “xs:dateTime”).
    • The output of this functoid should be linked to:
      • ///entity/Attributes/KeyValuePairOfstringanyType/key.
  • MSCRM Map Helper GUID Functoid: Use this functoid when you want map CRM GUID type.
    • The functoid takes two mandatory input parameters:
      • Source Field: Link from source schema field value.
      • Target Field Name: CRM target field name
    • The output of this functoid should be linked to:
      • ///entity/Attributes/KeyValuePairOfstringanyType/key
    • You may use this functoid in combination with CRM Lookup functoid, where first find for entity GUID and then use the result to map to the destination schema.
  • MSCRM Map Helper Money Functoid: Use this functoid when you want map CRM money type.
    • The functoid takes two mandatory input parameters:
      • Source Field: Link from source schema field value.
      • Target Field Name: CRM target field name.
    • The output of this functoid should be linked to:
      • ///entity/Attributes/KeyValuePairOfstringanyType/key
  • MSCRM Map Helper Option Value Functoid: Use this functoid when you want map CRM option value type.
    • The functoid takes two mandatory input parameters:
      • Source Field: Link from source schema field value.
      • Target Field Name: CRM target field name.
    • The output of this functoid should be linked to:
      • ///entity/Attributes/KeyValuePairOfstringanyType/key
  • MSCRM Map Helper References Functoid: Use this functoid when you want map CRM reference type.
    • The functoid takes three mandatory input parameters:
      • Source Field: Link from source schema field value.
      • Target Field Name: CRM target field name.
      • Entity Name: CRM referenced entity.
    • The output of this functoid should be linked to:
      • ///entity/Attributes/KeyValuePairOfstringanyType/key

How to use it

You need to use these functoids in two steps:

  • First Step: specify the CRM Entity Name on the LogicalName element.
  • Second Step: define the Key values

BizTalk Mapper Extensions UtilityPack

BizTalk Mapper Extensions UtilityPack is a set of libraries with several useful functoids to include and use it in a map, which will provide an extension of BizTalk Mapper capabilities.

BizTalk Mapper Extensions UtilityPack for BizTalk Server 2020

Where to download?

You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack  here:

BizTalk Mapper Extensions UtilityPack GitHub RepositoryBizTalk Mapper Extensions UtilityPack
GitHub

The post BizTalk Mapper Extensions UtilityPack: CRM Functoids for BizTalk Server 2020 appeared first on SANDRO PEREIRA BIZTALK BLOG.