Module 3: Creating Maps Overview Lesson 1: Creating a BizTalk Map Lesson 2: Configuring Basic Functoids Lesson 3: Configuring Advanced Functoids Lesson 1: Creating a BizTalk Map What Is a BizTalk Map? Creating a Map by Using the BizTalk Mapper Creating Links Basic and Complex Map Links Validating, Testing and Debugging a Map Demonstration: Creating and Testing a BizTalk Map What Is a BizTalk Map? A map defines the correspondence between records and fields in two different schemas Data Transformation Perform computational and other data operations Copy the data from one message to another Data Translation Change the format of data between messages Example: translate between a flat file and an XML file Source Schema PO Map Destination Schema PurchaseOrder PO PO_Number Status Date ItemID Item_No Qty Quantity UnitPrice Date Order_Status Creating a Map by Using the BizTalk Mapper 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 Source Schema Map Grid Destination Schema Creating Links Link Type Usage Record Order PO PO No Status Date ItemID Item No Create a single link by dragging and dropping Can be made between nodes or records Simple link (one-to-one) Record Order PO PO No Status Status Flag ItemID Item No Structure link (multiple) Record PO Status Item Order Status Item PO Name-matching link (multiple) Create multiple links simultaneously Relevant schema structures must be the same Use when node names are different but order is the same (or similar) Create multiple links simultaneously Record or field names must match Similar but not identical schema structures Basic and Complex Map Links Mapping Operation Record Order PO PO_Number Status Date ItemID Item_No Qty Quantity UnitPrice Order_Status Date Usage Most common type of mapping Values simply copied from input message to output message Supports most types of transformations and translations Basic PO Order ID PO_Num Status Date Items Detail Item Field1 Field2 Complex FieldA FieldB Records can occur multiple times for a single message (looping) Source schema must specify repeating element Compiler will automatically generate an XSLT for-each loop Validating, Testing and Debugging a Map Demonstration: Creating and Testing a BizTalk Map In this demonstration, you will see how to: Use the BizTalk Mapper Add source and destination schemas to the map Create a simple link Automate multiple links Test and validate a map Lesson 2: Configuring Basic Functoids Data Manipulation with Functoids Using Basic Functoids Adding Functoids to a Map Using Map Grid Pages Demonstration: Adding Functoids to a Map Data Manipulation with Functoids Functoids Use to manipulate mapped data Can use predefined functoids or create custom functoids Custom functoids can call scripts Source Schema Record PO Map (..) Destination Schema Order PO Number Status Date ItemID Item No Quantity Qty UnitPrice Date X Order Status Total Price Using Basic Functoids Category Usage Conversion To convert to and from ASCII and between numeric bases, such as hexadecimal and octal Cumulative To perform mathematical operations in looping records, such as averages and concatenation Date and Time To retrieve the current date and time, and to calculate delta times Logical To perform a variety of logical operations, such as greater than and logical existence Mathematical To perform a variety of mathematical operations, such as addition and multiplication Scientific To perform a variety of scientific operations, such as logarithms and trigonometry String To perform a variety of string functions, such as trimming and concatenation Adding Functoids to a Map 2 1 Link functoids to fields Drag functoid from Toolbox to map 3 Configure functoid inputs Using Map Grid Pages Use pages to reduce complexity of a map Grid Pages Create up to 20 different pages Isolate different parts of a map Work with different parts of a map separately Must create connected functoids on the same layer Record PO Find and work with a portion of a large map (..) Status Qty UnitPrice Order PO Number Date Item No ItemID Date Grid Preview Destination Schema Source Schema X Quantity Order Status Total Price Page 1 Page 2 Page 3 Page 4 Demonstration: Adding Functoids to a Map In this demonstration, you will see how to: Create multiple map pages Add basic functoids to a map Lesson 3: Configuring Advanced Functoids Using Advanced Functoids Using Looping Functoids Using Database Functoids Using a Scripting Functoid Demonstration: Configuring Advanced Functoids Using Advanced Functoids Use Advanced functoids to: Manage looping records Define conditional mapping Define custom scripts Copy the entire elements of data Using Looping Functoids Looping functoids include: Looping functoid Index functoid Record Count functoid Table-driven functoids: Table Looping functoid Table Extractor functoid Using Database Functoids Database functoids Used to extract data from a database Uses ADO datasets Database functoids include: Database Lookup Error Return Format Message Value Extractor Using a Scripting Functoid Scripting functoid Use when standard functoids do not provide required results Can call an external .NET assembly Supported languages Visual Basic C# JScript XSLT XSLT Call Template Demonstration: Configuring Advanced Functoids In this demonstration, you will see how to: Use a Looping functoid Use a Record Count functoid Lab: Creating a BizTalk Map Exercise 1: Creating a Map Exercise 2: Adding Basic Functoids to a Map Exercise 3: Adding Database Functoids to a Map