SlideShare uma empresa Scribd logo
1 de 39
BizTalk Innovation Day Italy
2013
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)
 Important basic considerations and what new
improvements
 How BizTalk Mapper Works
 Best Practices
 Common mapper problems and solutions


Data Translation
•
•

Change the format of data between
messages
Example: translate between
a flat file and an XML file

Data Transformation
•

Perform computational and other data
operations

•

Copy the data from one message to
another

Map
Destination Schema

Source Schema
Record

Order

PO

PO Number

Status

Date

ItemID

Item No

Qty

Quantity
Order Status

UnitPrice

Total Price

Date

Page 1
Maps can be used in
•

Receive Locations

•

Send ports

•

Inside Orchestrations
Functoids
in Toolbox

Map Grid

BizTalk Mapper
•

Integrated within
Visual Studio

•

Starts when a map is
opened or added to
a project

•

Source and destination
schemas must be part of
the project or contained
in a referenced assembly

Solution
Explorer

Properties
Windows

Source
Schema

Task List and
Output Windows

Destination
Schema
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





<Address>
<xsl:value-of select="Address/text()" />
</Address>
<xsl:variable name="var:v1" select="userCSharp:LogicalExistence(boolean(ZipCode))" />
<xsl:if test="string($var:v1)='true'">
<xsl:variable name="var:v2" select="ZipCode/text()" />
<ZipCode>
<xsl:value-of select="$var:v2" />
</ZipCode>
</xsl:if>
<xsl:variable name="var:v3" select="userCSharp:StringConcat(string(LastName/text())
, ", " , string(FirstName/text()))" />
<FullName>
<xsl:value-of select="$var:v3" />
</FullName>
<xsl:variable name="var:v4"
select="userCSharp:CalculateMyAge(string(DateOfBirth/text()))" />
<Age>
<xsl:value-of select="$var:v4" />
</Age>
<xsl:variable name="var:v5" select="userCSharp:InitCumulativeSum(0)" />
<xsl:for-each select="/s0:PersonOrigin/PhoneCalls">
<xsl:variable name="var:v6" select="userCSharp:StringLeft(string(@PhoneNumber) , &quot;4&quot;)" />
<xsl:variable name="var:v7" select="userCSharp:LogicalEq(string($var:v6) , &quot;+351&quot;)" />
<xsl:variable name="var:v8" select="userCSharp:LogicalNot(string($var:v7))" />
<xsl:if test="string($var:v8)='true'">
<xsl:variable name="var:v9" select="@Cost" />
<xsl:variable name="var:v10" select="userCSharp:AddToCumulativeSum(0,string($var:v9),&quot;1000&quot;)" />
</xsl:if>
</xsl:for-each>
<xsl:variable name="var:v11" select="userCSharp:GetCumulativeSum(0)" />
<TotalInternational>
<xsl:value-of select="$var:v11" />
</TotalInternational>
<xsl:variable name="var:v12" select="userCSharp:InitCumulativeSum(1)" />
<xsl:for-each select="/s0:PersonOrigin/PhoneCalls">
<xsl:variable name="var:v13" select="string(@PhoneNumber)" />
<xsl:variable name="var:v14" select="userCSharp:StringLeft($var:v13 , &quot;4&quot;)" />
<xsl:variable name="var:v15" select="userCSharp:LogicalEq(string($var:v14) , &quot;+351&quot;)" />
<xsl:if test="string($var:v15)='true'">
<xsl:variable name="var:v16" select="@Cost" />
<xsl:variable name="var:v17" select="userCSharp:AddToCumulativeSum(1,string($var:v16),&quot;1000&quot;)" />
</xsl:if>
</xsl:for-each>
<xsl:variable name="var:v18" select="userCSharp:GetCumulativeSum(1)" />
<TotalNational>
<xsl:value-of select="$var:v18" />
</TotalNational>
The order in which we perform the links between the elements
from source to destination has a huge impact in the final result
This statement is true and false at the same time!


•
The order in which we perform the links between the elements
from source to destination has a huge impact in the final result
This statement is true and false at the same time!

•
int myCounter = 0;
public void IncrementCounter()
{
myCounter += 1;
}

public int ReturnCounter()
{
return myCounter;
}
Hard to track relationships
No search capabilities
No cut/copy/paste or undo


Grid Pages
•
•
•
•

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

Grid Preview
•

Find and work with a portion
of a large map

Destination Schema

Source Schema
Record

Order

(..)

PO

PO Number

Status

Date

ItemID

Item No

Qty

Quantity

UnitPrice

X

Order Status
Total Price

Date

Page 1

Page 2

Page 3

Page 4

•

•
•
Labels
•

The maximum number of
characters allowed is 256

•

The rest are discarded

Comments
•

The maximum number of
characters allowed is 1024

•

The rest are discarded

•

•
•


•
•

•


•
•
•
•

•
•
•
•

•

•

•

•

•
•


•
•

•
•






Some of the best ways to address some of your needs within the context of
message transformation
Let’s have fun… 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.
www.devscope.
net

BizTalk Innovation
Day Italy 2013

Mais conteúdo relacionado

Mais procurados

Mais procurados (8)

jQuery -Chapter 2 - Selectors and Events
jQuery -Chapter 2 - Selectors and Events jQuery -Chapter 2 - Selectors and Events
jQuery -Chapter 2 - Selectors and Events
 
Web Services with Objective-C
Web Services with Objective-CWeb Services with Objective-C
Web Services with Objective-C
 
AJAX
AJAXAJAX
AJAX
 
Jqueryppt (1)
Jqueryppt (1)Jqueryppt (1)
Jqueryppt (1)
 
Getting started with MongoDB and Scala - Open Source Bridge 2012
Getting started with MongoDB and Scala - Open Source Bridge 2012Getting started with MongoDB and Scala - Open Source Bridge 2012
Getting started with MongoDB and Scala - Open Source Bridge 2012
 
RIB2
RIB2RIB2
RIB2
 
Javascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basicsJavascript, DOM, browsers and frameworks basics
Javascript, DOM, browsers and frameworks basics
 
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSONAn introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
An introduction to DOM , JAVASCRIPT , JQUERY, AJAX and JSON
 

Destaque

Destaque (9)

Lixsql port enterprise integration
Lixsql port   enterprise integrationLixsql port   enterprise integration
Lixsql port enterprise integration
 
Introduction to the azure service bus eai edi features
Introduction to the azure service bus eai edi featuresIntroduction to the azure service bus eai edi features
Introduction to the azure service bus eai edi features
 
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
Windows Azure [R]Evolution - Applications Integration with Azure Service Bus ...
 
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi featuresIntroduction to the Azure Service Bus EAI & EDI featuresiedi features
Introduction to the Azure Service Bus EAI & EDI featuresiedi features
 
BizTalk Mapping Patterns and Best Practices at Bouvet BizTalk Innovation Day ...
BizTalk Mapping Patterns and Best Practices at Bouvet BizTalk Innovation Day ...BizTalk Mapping Patterns and Best Practices at Bouvet BizTalk Innovation Day ...
BizTalk Mapping Patterns and Best Practices at Bouvet BizTalk Innovation Day ...
 
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk ServicesGlobal Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
 
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA ITBizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
BizTalk Server Deep Dive Tips and Tricks For Developers and Admins at TUGA IT
 
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk ServicesSQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
 
Introduction to BizTalk Server 2010
Introduction to BizTalk Server 2010Introduction to BizTalk Server 2010
Introduction to BizTalk Server 2010
 

Semelhante a BizTalk Mapping Patterns and Best Practices at BizTalk Innovation Day Italy 2013

Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
Sergio Bossa
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
 
iOS Multithreading
iOS MultithreadingiOS Multithreading
iOS Multithreading
Richa Jain
 

Semelhante a BizTalk Mapping Patterns and Best Practices at BizTalk Innovation Day Italy 2013 (20)

Tml for Objective C
Tml for Objective CTml for Objective C
Tml for Objective C
 
Terrastore - A document database for developers
Terrastore - A document database for developersTerrastore - A document database for developers
Terrastore - A document database for developers
 
Hidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-PersistenceHidden pearls for High-Performance-Persistence
Hidden pearls for High-Performance-Persistence
 
Extending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScriptExtending Spring MVC with Spring Mobile and JavaScript
Extending Spring MVC with Spring Mobile and JavaScript
 
Multilingualism makes better programmers
Multilingualism makes better programmersMultilingualism makes better programmers
Multilingualism makes better programmers
 
Native Phone Development 101
Native Phone Development 101Native Phone Development 101
Native Phone Development 101
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Webservices
WebservicesWebservices
Webservices
 
Html5 and web technology update
Html5 and web technology updateHtml5 and web technology update
Html5 and web technology update
 
Relevance trilogy may dream be with you! (dec17)
Relevance trilogy  may dream be with you! (dec17)Relevance trilogy  may dream be with you! (dec17)
Relevance trilogy may dream be with you! (dec17)
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
 
Web automation with #d8rules (European Drupal Days 2015)
Web automation with #d8rules (European Drupal Days 2015)Web automation with #d8rules (European Drupal Days 2015)
Web automation with #d8rules (European Drupal Days 2015)
 
Hazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMSHazelcast and MongoDB at Cloud CMS
Hazelcast and MongoDB at Cloud CMS
 
treeview
treeviewtreeview
treeview
 
treeview
treeviewtreeview
treeview
 
Spring.io
Spring.ioSpring.io
Spring.io
 
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharperGDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
GDG Almaty Meetup: Reactive full-stack .NET web applications with WebSharper
 
Dartprogramming
DartprogrammingDartprogramming
Dartprogramming
 
Event Programming JavaScript
Event Programming JavaScriptEvent Programming JavaScript
Event Programming JavaScript
 
iOS Multithreading
iOS MultithreadingiOS Multithreading
iOS Multithreading
 

Mais de Sandro Pereira

HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
Sandro Pereira
 
How to process Flat Files documents (TXT, CSV …) in BizTalk Server
How to process Flat Files documents (TXT, CSV …) in BizTalk ServerHow to process Flat Files documents (TXT, CSV …) in BizTalk Server
How to process Flat Files documents (TXT, CSV …) in BizTalk Server
Sandro Pereira
 

Mais de Sandro Pereira (20)

20201010 - Collabdays 2020 - Sandro Pereira - Power Automates: best practice...
20201010 -  Collabdays 2020 - Sandro Pereira - Power Automates: best practice...20201010 -  Collabdays 2020 - Sandro Pereira - Power Automates: best practice...
20201010 - Collabdays 2020 - Sandro Pereira - Power Automates: best practice...
 
Integrate 2020 - Sandro Pereira - BizTalk Server 2020 migration path
Integrate 2020 - Sandro Pereira - BizTalk Server 2020 migration pathIntegrate 2020 - Sandro Pereira - BizTalk Server 2020 migration path
Integrate 2020 - Sandro Pereira - BizTalk Server 2020 migration path
 
ACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricks
ACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricksACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricks
ACSUG June 2020 - Azure Logic Apps: Best practices, tips and tricks
 
Global Azure 2020 - Sandro Pereira - Logic apps: Best practices tips and tricks
Global Azure 2020 - Sandro Pereira - Logic apps: Best practices tips and tricksGlobal Azure 2020 - Sandro Pereira - Logic apps: Best practices tips and tricks
Global Azure 2020 - Sandro Pereira - Logic apps: Best practices tips and tricks
 
2019 06-25 - integrate 2019 US/UK - Sandro Pereira - BizTalk Server Fast and ...
2019 06-25 - integrate 2019 US/UK - Sandro Pereira - BizTalk Server Fast and ...2019 06-25 - integrate 2019 US/UK - Sandro Pereira - BizTalk Server Fast and ...
2019 06-25 - integrate 2019 US/UK - Sandro Pereira - BizTalk Server Fast and ...
 
2018 06-05 - integrate 2018 - Sandro Pereira - BizTalk Server notes from the ...
2018 06-05 - integrate 2018 - Sandro Pereira - BizTalk Server notes from the ...2018 06-05 - integrate 2018 - Sandro Pereira - BizTalk Server notes from the ...
2018 06-05 - integrate 2018 - Sandro Pereira - BizTalk Server notes from the ...
 
Integrate 2017 US - Sandro Pereira - BizTalk Server Fast and Loud
Integrate 2017 US - Sandro Pereira - BizTalk Server Fast and LoudIntegrate 2017 US - Sandro Pereira - BizTalk Server Fast and Loud
Integrate 2017 US - Sandro Pereira - BizTalk Server Fast and Loud
 
Sandro Pereira - BizTalk Server Fast and Loud
Sandro Pereira - BizTalk Server Fast and LoudSandro Pereira - BizTalk Server Fast and Loud
Sandro Pereira - BizTalk Server Fast and Loud
 
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
HOW CAN POWERAPPS AND MICROSOFT FLOW ALLOWS YOUR POWER USERS TO QUICKLY BUILD...
 
BizTalk Mapping Patterns and Best Practices at BizTalk User Group Sweden in G...
BizTalk Mapping Patterns and Best Practices at BizTalk User Group Sweden in G...BizTalk Mapping Patterns and Best Practices at BizTalk User Group Sweden in G...
BizTalk Mapping Patterns and Best Practices at BizTalk User Group Sweden in G...
 
API Management: Rise of the Planet of the Apps (2016 09-26 - Porto.Data)
API Management: Rise of the Planet of the Apps (2016 09-26 - Porto.Data)API Management: Rise of the Planet of the Apps (2016 09-26 - Porto.Data)
API Management: Rise of the Planet of the Apps (2016 09-26 - Porto.Data)
 
2015-12-02 - WebCamp - Microsoft Azure Logic Apps
2015-12-02 - WebCamp - Microsoft Azure Logic Apps2015-12-02 - WebCamp - Microsoft Azure Logic Apps
2015-12-02 - WebCamp - Microsoft Azure Logic Apps
 
BizTalk & SQL: Together for Developers & Admins
BizTalk & SQL: Together for Developers & AdminsBizTalk & SQL: Together for Developers & Admins
BizTalk & SQL: Together for Developers & Admins
 
Introduction to Microsoft Azure App Service (Logic and API Apps)
Introduction to Microsoft Azure App Service (Logic and API Apps)Introduction to Microsoft Azure App Service (Logic and API Apps)
Introduction to Microsoft Azure App Service (Logic and API Apps)
 
How to process Flat Files documents (TXT, CSV …) in BizTalk Server
How to process Flat Files documents (TXT, CSV …) in BizTalk ServerHow to process Flat Files documents (TXT, CSV …) in BizTalk Server
How to process Flat Files documents (TXT, CSV …) in BizTalk Server
 
BizTalk Server Deep Dive Tips & Tricks for Developers and Admins
BizTalk Server Deep Dive Tips & Tricks for Developers and AdminsBizTalk Server Deep Dive Tips & Tricks for Developers and Admins
BizTalk Server Deep Dive Tips & Tricks for Developers and Admins
 
Integration Tales: Logic & API apps to the rescue!
Integration Tales: Logic & API apps to the rescue!Integration Tales: Logic & API apps to the rescue!
Integration Tales: Logic & API apps to the rescue!
 
BizTalk: Server, Services and Apps
BizTalk: Server, Services and AppsBizTalk: Server, Services and Apps
BizTalk: Server, Services and Apps
 
BizTalk Server – How maps work
BizTalk Server – How maps workBizTalk Server – How maps work
BizTalk Server – How maps work
 
BizTalk Server – Basics principles of maps
BizTalk Server – Basics principles of mapsBizTalk Server – Basics principles of maps
BizTalk Server – Basics principles of maps
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

BizTalk Mapping Patterns and Best Practices at BizTalk Innovation Day Italy 2013

  • 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.  Important basic considerations and what new improvements  How BizTalk Mapper Works  Best Practices  Common mapper problems and solutions
  • 4.
  • 5.
  • 6.  Data Translation • • Change the format of data between messages Example: translate between a flat file and an XML file Data Transformation • Perform computational and other data operations • Copy the data from one message to another Map Destination Schema Source Schema Record Order PO PO Number Status Date ItemID Item No Qty Quantity Order Status UnitPrice Total Price Date Page 1
  • 7. Maps can be used in • Receive Locations • Send ports • Inside Orchestrations
  • 8. Functoids in Toolbox Map Grid BizTalk Mapper • Integrated within Visual Studio • Starts when a map is opened or added to a project • Source and destination schemas must be part of the project or contained in a referenced assembly Solution Explorer Properties Windows Source Schema Task List and Output Windows Destination Schema
  • 9. 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
  • 11.
  • 13. <xsl:variable name="var:v1" select="userCSharp:LogicalExistence(boolean(ZipCode))" /> <xsl:if test="string($var:v1)='true'"> <xsl:variable name="var:v2" select="ZipCode/text()" /> <ZipCode> <xsl:value-of select="$var:v2" /> </ZipCode> </xsl:if>
  • 14.
  • 15. <xsl:variable name="var:v3" select="userCSharp:StringConcat(string(LastName/text()) , ", " , string(FirstName/text()))" /> <FullName> <xsl:value-of select="$var:v3" /> </FullName>
  • 17. <xsl:variable name="var:v5" select="userCSharp:InitCumulativeSum(0)" /> <xsl:for-each select="/s0:PersonOrigin/PhoneCalls"> <xsl:variable name="var:v6" select="userCSharp:StringLeft(string(@PhoneNumber) , &quot;4&quot;)" /> <xsl:variable name="var:v7" select="userCSharp:LogicalEq(string($var:v6) , &quot;+351&quot;)" /> <xsl:variable name="var:v8" select="userCSharp:LogicalNot(string($var:v7))" /> <xsl:if test="string($var:v8)='true'"> <xsl:variable name="var:v9" select="@Cost" /> <xsl:variable name="var:v10" select="userCSharp:AddToCumulativeSum(0,string($var:v9),&quot;1000&quot;)" /> </xsl:if> </xsl:for-each> <xsl:variable name="var:v11" select="userCSharp:GetCumulativeSum(0)" /> <TotalInternational> <xsl:value-of select="$var:v11" /> </TotalInternational>
  • 18. <xsl:variable name="var:v12" select="userCSharp:InitCumulativeSum(1)" /> <xsl:for-each select="/s0:PersonOrigin/PhoneCalls"> <xsl:variable name="var:v13" select="string(@PhoneNumber)" /> <xsl:variable name="var:v14" select="userCSharp:StringLeft($var:v13 , &quot;4&quot;)" /> <xsl:variable name="var:v15" select="userCSharp:LogicalEq(string($var:v14) , &quot;+351&quot;)" /> <xsl:if test="string($var:v15)='true'"> <xsl:variable name="var:v16" select="@Cost" /> <xsl:variable name="var:v17" select="userCSharp:AddToCumulativeSum(1,string($var:v16),&quot;1000&quot;)" /> </xsl:if> </xsl:for-each> <xsl:variable name="var:v18" select="userCSharp:GetCumulativeSum(1)" /> <TotalNational> <xsl:value-of select="$var:v18" /> </TotalNational>
  • 19. The order in which we perform the links between the elements from source to destination has a huge impact in the final result This statement is true and false at the same time!  •
  • 20. The order in which we perform the links between the elements from source to destination has a huge impact in the final result This statement is true and false at the same time!  •
  • 21. int myCounter = 0; public void IncrementCounter() { myCounter += 1; } public int ReturnCounter() { return myCounter; }
  • 22.
  • 23. Hard to track relationships No search capabilities No cut/copy/paste or undo
  • 24.  Grid Pages • • • • 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 Grid Preview • Find and work with a portion of a large map Destination Schema Source Schema Record Order (..) PO PO Number Status Date ItemID Item No Qty Quantity UnitPrice X Order Status Total Price Date Page 1 Page 2 Page 3 Page 4
  • 26.
  • 27. Labels • The maximum number of characters allowed is 256 • The rest are discarded Comments • The maximum number of characters allowed is 1024 • The rest are discarded
  • 29.
  • 30.
  • 36. Some of the best ways to address some of your needs within the context of message transformation
  • 37. Let’s have fun… 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.
  • 38.

Notas do Editor

  1. 02- JoinMultipleMessages03- HowToSendOrchestrationVariablesIntoMaps04- WorkingWithConstantValues05- MappingWorkingWithMultipleOutputMessages06 – WorkingWithConditions07- BizTalkMapperIFinLoppingRecord08- MuenchianGroupingSortingWithoutLosingMapFunctionalitie10- SandroPereira.MappingToNameValueRecord11- SandroPereira.NameValueToHierarchicalCommonMappingLogicConstructs