Suchen und Finden
Contents at a Glance
5
Contents
7
About the Authors
16
About the Technical Reviewer
17
Acknowledgments
18
Introduction
19
Who This Book Is For
19
How This Book Is Structured
20
Conventions
20
Prerequisites
21
Downloading the Code
21
Contacting the Authors
22
Creating a Simple Map
24
Using the Development Studio
24
Creating the Map
30
Summary
51
How BizTalk Maps Work
52
Understanding How BizTalk Maps Work
52
Examining the Hidden Constructs in Maps
57
Digging into the HelloWorld Map Rules
61
Summary
78
Using Scripting in Maps
79
Choosing Between Scripts and Functoids
79
Selecting from Available Scripting Languages
85
Choosing Your Scripting Language
102
Combining Types of Scripting
104
Examples of When You Should Use a Script
108
Summary
111
Testing BizTalk Maps
112
Incremental Testing
112
Addressing Architecture Considerations
115
Test Data
119
Testing in the Map Editor
122
Summary
129
Mapping Conditionals
132
Checking If Data Exists
132
Blocking Output When Data Doesn’t Exist
134
Checking If a Specific Condition Exists
136
Checking If a Specific Condition Does Not Exist
138
An If/Else Condition
140
Using the Logical OR for a Single Return Value
142
Using a case Statement
143
Summary
145
Dealing with Numbers
147
Is This a Number?
147
Is This Number an Integer?
151
Rounding Numbers
153
Summing Numbers
155
Counting Records
157
Converting Real Numbers to Integers (and Back Again)
161
Moving the Sign to a Trailing Position
162
Converting a Number to or from Sign-Trailing Overpunch Format
165
Summary
168
Manipulating Strings
169
Trimming Strings
169
Trimming Nonblank Characters from a String
172
Padding a String
173
Selecting Substrings from String Data
174
Concatenating Strings
177
Searching String Data
179
Removing and Replacing Characters from Strings
180
Using the RegEx Function to Remove Garbage from a String
183
Summary
183
Manipulating Dates and Times
184
BizTalk Date and Time Functoids
184
Altering the Format of a Date
186
Calculating a Due Date
189
Comparing Date Intervals
190
Performing Time Zone Conversions
191
Converting Gregorian Dates to Ordinal Dates
192
Converting Ordinal Dates to Gregorian Dates
193
Converting Dates and Times Using the ParseExact Method
195
Getting Dates and Times for an XSLT Script
195
Summary
197
Collecting Data
198
Collecting Nonlooping Data from the Source
198
Collecting Looping Data from the Source
200
Modifying the Target Schema for Data Collection
204
Using Global Variables for Data Collection
205
Loading a Unique List from Input Data
209
Arrays vs. Hash Tables
210
Using an Array to Control Data Selection for Output
210
Summary
217
Accessing External Data
218
Using External Flat Files
219
Using the BizTalk Database Functoids with External Data
231
Locating External Files with Path Names and Connect Strings
236
Summary
240
Using Basic Looping Controls
243
Understanding Loops
243
Understanding BizTalk Mapping Engine’s Basic Looping Concepts
245
Limiting the Output of a Loop
253
Forcing Looping in the Output
256
Simultaneously Forcing and Limiting a Loop
258
Many-to-One Looping
261
One-to-Many Looping
263
One-to-Nested Looping
264
Nested-to-One Looping
268
Summary
271
Handling Advanced Looping
272
Many-to-One Looping with a Source Child Loop
272
One-to-Many Looping with a Child Target Loop
279
Summary
286
Introducing Electronic Data Interchange (EDI)
288
EDI Standards-Based Transactions
289
Versions and Releases
290
Using the Basic Building Blocks of EDI Messages
291
Exploring X12 Interchanges
302
Exploring EDIFACT Interchanges
306
Illustrating the Differences Between X12 and EDIFACT
310
Summary
311
Exploring EDI Looping
312
Looping from EDI to an Application
312
Looping from an Application to EDI
321
Summary
327
Processing EDI Code Pairs
328
Introducing EDI Code Pairs
328
Handling ID Codes in X12 REF and EDIFACT RFF Segments
329
Using a Recursive XSLT Call Template to Process Code Pairs
333
Using Nested XSLT Call Templates to Process Code Pairs
335
Multiple Code Pair Positions in a Single Segment
338
Creating Code Pairs in EDI Output
341
Summary
344
Unraveling the SDQ Segment
345
Exploring the SDQ Segment
345
Mapping Inbound SDQ Data
346
Mapping Outbound SDQ Data
358
Summary
368
Taming the Dreaded 856 ASN HL Loop
369
Exploring the HL Loop
369
Planning to Map the HL Loop
373
Mapping an Inbound 856
373
Mapping an Outbound 856 ASN
380
Creating the Simple Outbound 856 ASN
391
Summary
400
Building Custom Assemblies and Functoids
402
Deciding to Use a Custom Assembly or Custom Functoid
402
Creating an External Assembly for Date Conversion Functions
403
Building a Custom Functoid
405
Adding More Functoids
417
Doing a Custom Database Lookup
417
Summary
421
Examples from the Fringe
422
Modifying Outbound EDI Envelope Data
422
Building BizTalk Maps Outside the Map Editor
426
Breaking Up Large Strings Using Table Looping
432
Summary
448
Index
449
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.