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.
Where to download?
You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack here:
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”).
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.
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.
Where to download?
You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack here:
BizTalk NoS Ultimate was just released for BizTalk Server 2020. This Visual Studio extension is available for the following versions:
BizTalk Server 2020 – Visual Studio 2019
BizTalk Server 2016 – Visual Studio 2015
BizTalk Server 2013 R2 – Visual Studio 2013
BizTalk Server 2013 – Visual Studio 2012
As I mentioned in previous posts, the purpose of BizTalk NoS Ultimate is to mainly help all BizTalk developers, but why not also all BizTalk administrators, in a lot of different day-to-day situations, by improving the developer experience. By doing so you reduce the development time in new or existing BizTalk projects but also in the analysis, troubleshoot, and documentation experience.
BizTalk NoS Ultimate provides several functionalities like:
Quick search inside artifacts
Fast register/unregister in GAC
Find critical, internal, or external dependencies
JackHammering, which will compare your Visual Studio artifacts with the artifacts deployed in any of your BizTalk environment
Extract the artifacts (Orchestration, map, schema, and so on) from the BizTalk environment and put it in a Visual Studio solution
Many more functionalities like testing your pipeline in Visual Studio in a simple and fast way
Several features are useful in our day by day work and a time saver in a lot of situations.
So, with the release of this new version, I think it is now a good time to start making a walk through all the available features that this extension has to offer.
Expand Solution
Let’s start with the basic new functionalities that are available in the context of the solution. Collapsing a solution is now a default option available in Visual Studio.
However, quickly expanding all project of a solution it isn’t:
Expand Solution – This option will fully expand all the projects in your current solution. This feature can be useful when you want an easy and simple way to have a visualization of the entire structure of the solution.
You can access this feature on the Solution Explorer window menu.
Wild Card Search
I think the name explains the feature itself. This feature will perform a full-text search in all the artifacts of your entire solution, which means that, for example, in schemas, it will search for elements, records, and attributes but also for properties of the schema or map itself. In orchestrations, it will search for shape names, message names, variable names, and so on.
The best way to explain the mode of how this operation works or to find an analogy is: inside Visual Studio, open the artifact (schema, map, orchestration, and so on) with XML (text) Editor and make a search inside that artifact. Now think of this process, automatically, to all artifacts of your solution.
We can also call this as a Search ➤ Selection ➤ Open it operation.
All the artifacts in your entire solution that meet the search requirement will be selected and you will have the option to open them all automatically after the search has finished.
Once again, you can access this feature in the Solution Explorer window menu.
As an example, if I do a Wild Card Search in my solution for ‘Map’ and select Ignore Case, below screenshot will show the outcome. All the artifacts (including folders) that contain the word Map, in any part, will be highlighted in your solution.
You may see in the picture above, that the PessoaOrigem.xsd schema file is selected and if you open it, you will not see any record or element that contains Map word. However, the target namespace contains this word and for that reason, it is being shown on the outcome result of the wild search.
This library includes a suite of functoids that make read configuration parameter values, or config settings, from different sources (locations) and that you can use inside BizTalk mapper.
This project includes the following Custom Functoids:
BTSNTSvc Config Get Functoid: This functoid allows you to get configuration parameters from BTSNTsvc.exe.config. If there is no section specified, the functoid reads from the AppSettings.
The functoid takes two mandatory input parameters:
A string that represents the key name that you want to read from BTSNTsvc.exe.config
A string that represents the section (can be an empty String) from the BTSNTsvc.exe.config that you want to read the key name.
The output of the functoid is a string with the value of the configuration parameters from BTSNTsvc.exe.config
System Environment Variable Get Functoid: This functoid allows you to get configuration parameters from the machine System Environment Variable.
The functoid takes one mandatory input parameters:
A string that represents the key that you want to read from System Environment Variable
The output of the functoid is a string with the value of the configuration parameters from System Environment Variable of the machine.
Custom Config Get Functoid: This functoid allows you to get configuration parameters from a custom configuration file.
The functoid takes two mandatory input parameters:
A string that represents the key (variable name) that you want to read from a custom configuration file
A string that represents the path to the custom configuration file that you want to read the key.
The output of the functoid is a string with the value of the configuration parameters from a custom configuration file.
Windows Registry Config Get Functoid: This functoid allows you to get configuration parameters from Windows Registry.
The functoid takes two mandatory input parameters:
A string that represents the name or path of the subkey to open.
A string that represents the name of the value to retrieve from the registry. This string is not case-sensitive.
The output of the functoid is a string with the value of the configuration parameters from the registry.
Windows Registry Config Get Functoid: This functoid allows you to get configuration parameters from Windows Registry.
The functoid takes two mandatory input parameters:
A string that represents the name or path of the subkey to open.
A string that represents the name of the value to retrieve from the registry. This string is not case-sensitive.
The output of the functoid is a string with the value of the configuration parameters from the registry.
SSO Config Get Functoid: This functoid allows you to get configuration parameters from SSO Database.
The functoid takes two mandatory input parameters:
A string that represents the name of the affiliate application to represent the configuration container to access
A string that represents the property name to read from the.
The output of the functoid is a string with the value of the configuration parameters from SSO.
Rule Engine Config Get Functoid: This functoid allows you to obtain a definition value from a Vocabulary in the Business Rules Engine.
The functoid takes two mandatory input parameters:
A string that represents the definition name (e.g. Value1)
A string that represents the vocabulary name (i.e. Config).
The output of the functoid is a string with the value of the definition name from a specify vocabulary on the Business Rule Engine.
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.
Where to download?
You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack here:
This library includes a suite of functoids that make data encoder that you can use inside BizTalk mapper.
The main purpose of encoding is to transform data so that it can be properly and somehow safely consumed by a different type of system. Don’t get wrong here the goal is not to keep information secret, but rather to ensure that it’s able to be properly consumed.
Encoding transforms data into another format using a scheme that is publicly available so that it can easily be reversed. It does not require a key as the only thing required to decode it is the algorithm that was used to encode it, like, encoding/decoding to ASCII, BASE64, or UNICODE.
And of course, decoding is the opposite, it is the process of converting an encoded format back into the original sequence of characters.
This project includes the following Custom Functoids:
BASE64 Encoder Functoid: This functoid allows you to convert a string type into BASE64 encoded string.
The functoid takes one mandatory input parameters:
A string that represents the text that you want to encode to BASE64
The output of the functoid is a string, Example: U2FuZHJvIFBlcmVpcmE=
BASE64 Decoder Functoid: This functoid allows you to decode BASE64-encoded text strings into the original sequence of characters.
The functoid takes one mandatory input parameters:
BASE64 string representation that you want to decode to a text string
The output of the functoid is a string, Example: Sandro Pereira
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.
Where to download?
You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack here:
First of all, what is BizTalk NoS Ultimate? BizTalk NoS Ultimate is a Visual Studio add-in for BizTalk developers that will improve the experience while developing BizTalk projects. The add-in can be installed as an extension to Microsoft Visual Studio and offers lots of useful functionalities (in addition to existing features) for developers by which they can save valuable time while working on their day-to-day activities and improve the productivity. For me, it is the ultimate tool that all BizTalk developers should have!
BizTalk NoS Ultimate Installation
Installing BizTalk NoS Ultimate in your BizTalk Server 2020 development environment with Visual Studio 2019 is a straightforward task. Most of the pre-requisites will be present and you can simply install the BizTalk NoS Ultimate Visual Studio Extension, that you can download through the below link;
To install BizTalk NoS Ultimate Visual Studio extension, you need to:
Option 1
Open your Visual Studio, on the entry screen select the option Continue without code->
Then on the menu, navigate to Extensions > Manage Extensions
Select Online and search for BizTalk NoS Ultimate
The add-in will be listed in the search results section. Click Download to download and install the add-in
On the VSIX Installer screen
Make sure that the correct version of Visual Studio is selected.
Click Install. This will download and install the add-in to your version of Visual Studio
You need to restart your Visual Studio in order for the changes to take effect
Option 2
If you already have downloaded the BizTalk NoS Ultimate Visual Studio extension file, it will be named something like BizTalkNoS.Addin<version>.vsix
Double-click the extension file to run the installation process
On the VSIX Installer screen
Make sure that the correct version of Visual Studio is selected
Click Install
In the VSIX Installer Complete screen, click Close
Now, if you open or create a new BizTalk Server solution on Visual Studio, you will see BizTalk NoS Ultimate functionalities both at the Project level as in the Artifact level. By right-clicking on one of your BizTalk projects or artifacts you can see the new options provided by this extension.
This library includes a suite of functoids that generate dynamic data; you can use this inside BizTalk mapper. Dynamic Generators functoids are used to generate a specific type of data in runtime, for example, generate a new Globally Unique Identifier (GUID).
This project includes the following Custom Functoids:
Password Generator Functoid: Use this functoid to build a random password.
The functoid takes five mandatory input parameters:
A Boolean that describing if you want to use Lower Case chars
A Boolean that describing if you want to use Numbers
“1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “0”
A Boolean that describing if you want to use Symbols
“!”, “@”, “#”, “$”, “%”, “&”, “*”, “?”
An integer that represents the length of the password
The output of the functoid is a string, for example, 6FcUw7RBFi
GUID Generator Functoid: This functoid allows you to generate a new GUID.
The functoid takes no parameters
The output of the functoid is a string, for example, 8fe5cee8-279b-4f1b-96f2-450cff2c846c
Tiny Id Generator Functoid: This functoid allows you to generate a new Tiny Id.
The functoid takes no parameters
The output of the functoid is a string, for example, _2ZgiIhjCECNxi9QwU96FA
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.
Where to download?
You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack here:
Due to the world COVID-19 pandemic, last Saturday, April 25, was held the first Virtual Global Azure Bootcamp, an event that normally happens in several cities across the world in simultaneous. The restrictions we are facing dictated that this year the format would have to be different. If, on one hand, the social aspect of the event was missing, on the other hand, it opened the door to a wider universe of people to be able to attend. Nevertheless, for me, this event was an amazing success and it was a great pleasure to be once again presenting on this event that I have a special affection for.
I think I’ve been present since the first edition of this event.
Today I’m happy to share with you the slides and the video of the session.
Logic Apps: Best practices, tips, and tricks
10 tips you should know for being more productive and building more reliable, effective Logic Apps. In this session, we will do a reflection to your existing Logic Apps processes and when thru a list of must-have best practices, tips, and tricks that will allow you to build more reliable and effective workflows. At the same time, these will allow you to be more productive and document your workflows from the beginning.
Conversion functoids are used to convert one type of data to another type, for example between windows date into Unix date. Or use to convert between one format of a specific type of data into another format of that type, for example converting DateTime (Short Time Pattern, Short Date Pattern, Full DateTime Pattern, Universal Sortable DateTime Pattern, …) .
This project includes the following Custom Functoids:
Convert from human-readable to epoch date Functoid: This functoid allows you to convert a traditional date (Human Readable Date) into a Unix date (Epoch Date).
Convert from epoch to human readable date Functoid This functoid allows you to convert a Unix date (Epoch Date) into a traditional date (Human Readable Date).
Convert DateTime format Functoid: This functoid allows you to convert DateTime format.
Convert to a Number Functoid: This functoid allows you to convert a string to a number (integer).
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.
Where to download?
You can download this functoid along with all the existing one on the BizTalk Mapper Extensions UtilityPack here:
Due to the world pandemic that we are facing this year, the Global Azure Bootcamp which is usually done in several cities at the same time will be for the first time an online event. And I would like you to invite to join us on the Virtual Global Azure Lisbon that will happen next Saturday – 25th April.
Logic Apps: Best practices, tips, and tricks
I’m thrilled to present once again on this fantastic event! In 2015 I spoke for the first time about Logic Apps, this year I return to the same topic in a session about Logic Apps: Best practices, tips, and tricks!
Abstract: Logic Apps: Best practices, tips, and tricks
10 tips you should know for being more productive and building more reliable, effective Logic Apps. In this session, we will do a reflection to your existing Logic Apps processes and when thru a list of must-have best practices, tips, and tricks that will allow you to build more reliable and effective workflows. At the same time, these will allow you to be more productive and document your workflows from the beginning.
Virtual Global Azure 2020 – Lisbon
This year we will have 7 top Microsoft Azure speakers Livestreamed for free. What are you waiting for? Get your free seat NOW here.
The agenda will be:
9:30 – 10:00 – Welcome
10:00 – 11:00 – Azure Monitor by Pedro Sousa
11:00 – 12:00 – Exciting features of the relational engine of Azure Synapse Analytics (Azure SQL DW) by Niko Neugebauer
12:00 – 13:00 – AKS and Apps by Virgilio Esteves
13:00 – 14:00 – Lunch Break
14:00 – 15:00 – Supercharge your App Service to Global scale by Tiago Costa
15:00 – 16:00 – Extend your Identity to the Cloud by Nuno Árias Silva
16:00 – 17:00 – Logic Apps: Best practices, tips, and tricks by Sandro Pereira
17:00 – 18:00 – Best Practices for Architecture and Real-time Data by Viviane Ribeiro
18:00 – Closing
Again, due to COVID-19, our event has been moved to virtual. We will share a link to Microsoft Teams with all the registered attendees. Join us, and reserve your presence here.