170 recipes for BizTalk Server 2006 developers and administrators

BizTalk 2006 Recipes is based on the experiences of the most savvy experts in the industry. Designed as a troubleshooting guide with in-depth solutions, the book is ideal for all levels of BizTalk 2006 users.

Leave A Comment »

Recurring EDI Error

The following error is extremely common in EDI deployments:

6: Missing or invalid or duplicate Transaction set identifier ‘http://schemas.microsoft.com/BizTalk/EDI/X12/2006#X12_00401_850′

It generally means one of two things:

1. The EDI schema is not deployed properly (or is partially deployed).

2. The schema has been deployed more than once and two (or more) versions of it appear in the GAC.

Leave A Comment »

Pro RFID in BizTalk Server 2009

The book, “Pro RFID in BizTalk Server 2009“, is now available.

http://www.amazon.com/Pro-RFID-BizTalk-Server-2009/dp/1430218371

Co-authors include:

Venkatesh Ram (http://s3edge.com/about_management_team.php)

Mark Simms (http://blogs.msdn.com/masimms/)

Leave A Comment »

TechEd 2009: Los Angeles

I have been invited to present on several topics at Microsoft TechEd 2009, May 11th-15th.  The topics include:

  • Achieving Success with Integration in the Enterprise Using Microsoft BizTalk Server 2009
  • Integrating with Partners – Learn to Develop with EDI/AS2 in BizTalk Server 2009
Leave A Comment »

Using Inline XSLT to Create Target Nodes

Creating nodes using Inline XSLT often eliminates much of the complexity around mapping.  To demonstrate how to use XSLT, this post will illustrate an XSLT script that created three N1 target records using two “dynamic” input records and one “static” record.

The input has two out of the three records, the third record is hard coded into the XSLT.

The Map looks as follows:

The Map

The Map

As can be seen, the source XML has a node called “TradingPartners” that contains the two dynamic records.  The XSLT script will loop through all of the incoming TradingPartner nodes and create N1 elements based on those.  Once all of the TradingPartner nodes have been looped through, the XSLT will create one final element based on static values.  The XSLT script is shown here:
<xsl:for-each select=”//*[local-name()='TradingPartner']“>
<xsl:element name=”ns0:N1″>
<xsl:element name=”N101″><xsl:value-of select=”*[local-name()='IDCode']“/></xsl:element>
<xsl:element name=”N102″><xsl:value-of select=”*[local-name()='TPKnownAs']“/></xsl:element>
<xsl:element name=”N103″>9</xsl:element>
<xsl:element name=”N104″><xsl:value-of select=”*[local-name()='TPDUNS']“/></xsl:element>
</xsl:element>
</xsl:for-each>
<xsl:element name=”ns0:N1″>
<xsl:element name=”N101″>SF</xsl:element>
<xsl:element name=”N102″>STATIC TRADING PARTNER NAME, INC.</xsl:element>
<xsl:element name=”N103″>9</xsl:element>
<xsl:element name=”N104″>012345697654</xsl:element>
</xsl:element>

* Note that the value-of XSL is looking for “local-name()”.  This enables source documents with namespace prefixes (such as ns0) in them to be mapped.  In this case, the source is <ns0:TradingPartner>. 

Leave A Comment »

Mapping Hierarchical (Structured) XML to Flat XML

To illustrate how to map a hierarchical EDI structure to a target flat structure, I’ll work with the DTM field in an 867.  Assume the following rules:
1. If the DTM01 node = 003, map DTM02 to one node in target schema.
2. If the DTM01 node = 004, map DTM02 to a different node in target schema.
By default, I know that I need to place two “Equals” functoids and two “Value Mapping” functoids to get the values across, as shown here:
Incorrect Mapping (checks only the first occurance of DTM)

Incorrect Mapping (checks only the first occurance of DTM)

With the incorrect output (shown here) showing only one of the targeted nodes.  This is because the map is not looping through all of the source DTM nodes.
Output of Incorrect Mapping

Output of Incorrect Mapping

Knowing that there always two or more DTM nodes in the source, the map will need to be forced to loop through all occurances.  This can be done by adding a “Loop” functoid, with the input being the root DTM node, and the output being both of the desired output nodes.  This map looks as follows:
Correct Mapping (with Loop Functoid)

Correct Mapping (with Loop Functoid)

This will cause the map to loop through all occurances of the source.  Only those occurances which match the “Equals” logic will be mapped across.  The correct output is shown here:
Result

Result

Leave A Comment »

BizTalk RFID

I’ve got a new book coming out in March 2009 on BizTalk RFID.  An early link to the book as at http://www.amazon.com/Pro-RFID-BizTalk-Server-2006/dp/1430218371/ref=sr_1_3?ie=UTF8&s=books&qid=1222812317&sr=1-3

I am co-authoring this book with Mark Simms and Venkatesh Ram, both incredible experts in RFID technology and its application.

The final book title will be Pro RFID in BizTalk Server 2009.

Leave A Comment »

Tech-Talk from TechEd 2008

The following talk was with done with Greg Hughes at TechEd in Orlando.

Achieving Success with BizTalk Server 2006 R2 and EDI Implementations

Leave A Comment »

Editing with Apress

I work as an editor with Apress publishing; should anyone have any interest in writing on a technical topic, send me your ideas and I can work with you to come up with an approach and content that will be of interest and value to the community.  Publishing a book is an excellent step in anyone’s career, and I can help you through the process.

Leave A Comment »

TechEd Orlando 2008

A fantastic event, with some great people working in the SOA/BizTalk track.  I appreciate the opportunity to have spoken to those who attended the BizTalk EDI sessions, and hope that I was able to bring value to the audience.  The breakout session was recorded and will be posted to TechEd Online, for those who may have interest.

Leave A Comment »