SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (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
 

Andere mochten auch

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
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
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

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.

Hinweis der Redaktion

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