In this blog post we are going to explore some of the new functoids that are available in the Azure Service Bus Mapper.
At first glance, the Mapper looks pretty similar to the BizTalk 2010 Mapper. Sure there are some different icons, perhaps some lipstick applied but conceptually we are dealing with the same thing right?
Wrong! It isn’t until we take a look at the toolbox that we discover this isn’t your Father’s mapper.
This post isn’t meant to be an exhaustive reference guide for the new mapper but here are some of the new functoids that stick out for me.
Functoid Section | Functoid Name | Description |
Loop Operations | MapEach Loop | This functoid will loop over a repeating record from the source document and evaluate an operation at each iteration of the loop. If the criteria of the operation is met then a record in the target document will be created. |
Expressions | Arithmetic Expression | No we haven’t lost our Addition or Subtraction functionality! Many functoids that you would have found in the BizTalk 2010 Mathematical Functoids section have been consolidated in the Arithmetic Expression operation. |
Expressions | Logical Expression | Similar to the Arithmetic Expressions, these have now been consolidated and can be found within a single Expression including >, <, >=, <=, ==, !=, Logical Negation, Conditional ADD and Conditional OR |
Expressions | If-Then-Else | A much anticipated operation! BizTalk developers have been wanting a If-Then-Else functoid in BizTalk for many years. If a condition has been evaluated to True then we can provide a particular value. Otherwise we can provide different value when the condition has not been satisfied. |
List Operations | All of them | Complete new functionality provides us with the ability to manipulate Lists within a map. Functionality includes creating a list, adding an item to the list, selecting a unique group, selecting a value, selecting entries, getting items, and ordering the list. Wow! Will be interesting to see how this progresses. |
Date/Time Operations | DateTime Reformat | This one should be useful. I am constantly re-formatting dates when integrating with SAP. Usually this formatting winds up in a Helper assembly which tends to be overkill for what really needs to take place. |
Misc Operations | Data Lookup | This one is interesting. It allows us to access data from SQL Azure within a transform at runtime. |
Misc Operations | Generate ID | This functoid will generate a GUID. It is the equivalent of calling the GUID.NewGuid method in .Net. |
Misc Operations | Get Context Property | Another useful operation! This operation allows us to retrieve a value from context. This is something that just isn’t possible in BizTalk. |
I can’t take credit for discovering this, but while chatting with Mikael Håkansson he mentioned “hey – where is the scripting functoid?” Perhaps this is just a limitation of the CTP but definitely something that needs to be addressed for RTM. It is always nice to be able to fall back on a .Net helper assembly or custom XSLT.
I had noticed the scripting functoid was missing in the September CTP and mentioned it a bunch of times to the PG team. It is the one I would use by far as a fallback mechanism for any functoid that did not exist.
It is sorely lacking for sure.
I completely agree Ben. Many times we have had to fall back to custom XSLT to deal with a mapping challenge that we couldn’t solve with the out of the box functoids.
My understanding is that the underlying mapping technology is XAML instead of XSLT. Is that true? If so, why the change?
I haven’t heard that it is XAML but I haven’t heard what the underlying technology is so I am not sure. Something that I will have to keep an eye open for.
Kent
According to MS article (http://msdn.microsoft.com/en-us/library/windowsazure/hh689910.aspx) “Transforms are created using Extensible Application Markup Language (XAML).”
WOW!!!!