BizTalk Mapping Patterns & an Introduction to WABS Maps, Maps or Transformations are one of the most common components in the integration processes. They act as essential translators in the decoupling between the different systems to connect.
In the last couple of month I have been writing a free eBook about “BizTalk Mapping Patterns and Best Practices” that will soon be released, and this will be a good opportunity for you to see what you can expect. In this session I will try to address and explain some common mapper problems, specifying best practices and some of the best ways to address common problems by choosing the right approach. For me there is no perfect solution to solve a particular mapping problem, and most of the times we can find several ways to solve it depending on the experience and knowledge that we have or technologies and tools that we like to use, but all of them have advantages and disadvantages. Not always the best solution is the best approach to address the problem, you must understanding the problem and the requirements, researching the available options and taking actions to achieve your goals sometimes base on:
•What’s the best approach to have performance? Is my message so big that I really need to worry about performance? Do I really need High performance?
•Can I easily maintain this map? It is easy to read and understand? What the estimated effort for debug, finding and fix problems?
•What the expertise levels required to create and maintain this map approach? What much time do I need to develop?
Finally I will try to make an introduction to the Windows Azure BizTalk Service maps, at the first glance the map editor seems to be the same that we used in BizTalk, but although the concept be the same this is a very different editor. And hopefully you will enhance your skills when using BizTalk Server and WABS Mapper editor
BizTalk Summit 2014, London March 03-04
Brought to you by BizTalk360
BizTalk Mapping Patterns & An Introduction to WABS Maps
1. brought to you by
BizTalk Mapping Patterns & an Introduction to WABS Maps
SANDRO PEREIRA
2. Senior Software Developer at DevScope
Microsoft Integration MVP since 2011
Writer of numerous articles for Portuguese eMagazine “Programar”
Author “Sandro Pereira BizTalk Blog” http://sandroaspbiztalkblog.wordpress.com
Member of “BizTalkAdminsblogging.com” and “BizTalk Brasil” community
Member NetPonto community
MSDN BizTalk Forums Moderator
TechNet Wiki author (Wiki Ninja)
TechNet Gallery, Code Gallery and CodePlex contributor
Public speaker
Technical Reviewer PACKT Publishing
BizTalk Server 2010 Cookbook (April 2012)
3. BizTalk Mapper Patterns
Common mapper problems and solutions
Introduction to Windows Azure BizTalk Services Maps
Main differences between BizTalk Mapper Design and the
WABS Transform Designer
Best Practices (if we have time)
6. DIRECT TRANSLATION PATTERN
How can we transform the incoming message if the target message have a different
semantic representation?
DATA TRANSLATION PATTERN
How can we transform the incoming message if the target message have a different data
formats?
CONTENT ENRICHER PATTERN
How can we transform the incoming message if the message originator does not have all
the required data items available expected by the target message?
7. AGGREGATOR PATTERN
How do we combine the results of individual, but related messages, so that they can be
processed as a whole to generate the target message?
CONTENT FILTER PATTERN (Data Cleaning Pattern)
How can we transform the incoming message if the target message requires less
information that the originator message?
SPLITTER PATTERN
How can we process an incoming message into a series of outgoing messages so that
they can be sent to multiple recipient and processed in different ways?
8. GROUPING PATTERN
How can we transform the incoming message if the target message requires that the body
of the message must be delivered grouped in a certain way?
SORTING PATTERN
How can we transform the incoming message if the target message requires that the body
of the message must be delivered in a certain order?
CONDITIONAL PATTERN
How can we transform the incoming message if the target message requires that the data
items available in message originator can be passed according on a set of conditions?
9. LOOPING PATTERN
How can we transform the incoming message if the target and/or originator message
have a complex and recursive structures? How can we apply a set of common procedures
to be apply many times?
CANONICAL DATA MODEL PATTERN
How do you process messages that are semantically equivalent, but arrive in a different
format? And How can you minimize dependencies when integrating applications that use
different data formats?
NAME-VALUE TRANSFORMATION PATTERN
How can we transform the incoming message if the target message requires a name–
value pair (NVP) structure? Or if the target message requires a hierarchical schema but the
originator message have a NVP structure?
10. Demos
BizTalk Mapper Patterns specifying best practices and some of the best ways to
address some of your needs within the context of message transformation.
11.
12. BizTalk Mapper Design
• Functoids (Advanced, Conversion, Cumulative,
Database, Date and Time, Logical, Mathematical,
Scientific, String)
• The transformation are created using XSLT
Transform Designer
• Operations (String Operations, Loop Operations, List
Operations, Cumulative Operations, Date / Time
Operations, Miscellaneous Operations, Expressions)
• The transformation are created using Extensible
Application Markup Language (XAML)
13. BizTalk Mapper Design
• All functionalities at design time
• Debugging, Testing and validate
Transform Designer
• Limited operations
• Only support testing (and validation while
testing)
14. BizTalk Mapper Design
• Importing Custom XSLT external code
• Importing External .NET assembly
Transform Designer
• Importing Custom XSLT external code
Note:
• Custom Inline XSLT is not supported.
• You can only use CSharp Scripting inside WABS maps.
15. Demos
WABS Maps an introduction to the new Map Editor. How to migrate BizTalk
Maps to WABS Maps and how to apply some of the Mapper Patterns in this
new editor.
16.
17. Hard to track relationships
No search capabilities
No cut/copy/paste or undo
18. Page 4Page 3Page 2
Grid Pages
Grid Preview
• Create unlimited
different pages
• Isolate different parts
of a map
• Work with different parts of
a map separately
• Must create connected
functoids on the same layer
• Find and work with a portion of
a large map
Page 1
ItemID
Qty
UnitPrice
Record
PO
Status
Order
PO Number
Date
Item No
Quantity
Order Status
Destination Schema
Date Total Price
(..)
X
Source Schema
28. Better UI for complex or large
transformations
• Reduce background “noise” using highlight
propagation
• Auto-scrolling and sibling coalescing help locate
nodes
Enhanced functionality
• Support for search
• Improved productivity with
cut/copy/paste/move/ undo
• Predictive match
• Improved support for documenting map and
readability