Tuesday, December 8, 2009

Directly Create an EDIFACT Interchange

If you want to create the EDIFACT interchange directly instead of using the built-in functionality of BizTalk, you can create your own schema and send it the EdiSendPipeline. When you use BizTalk's built-in batching functionality, you can see which schema BizTalk uses to prepare the interchange. As far as I see, you can build your custom interchange schema this way:

Import...
  • Microsoft.BizTalk.Edi.BaseArtefacts.EdifactServiceSchema.dll (with namespace "http://schemas.microsoft.com/Edi/EdifactServiceSchema")
  • the EDI schema, e.g. EFACT_D06A_INVOIC_2.0
Create...
  • root node "EdifactInterchangeXml"
  • Below root, Create attribut @DelimiterSetSerializedData and set fixed value to 39:-1:-1:43:58:63:42:44:-1 (if this is how UNA should look like).
  • Below root, create groups UNA, UNB, UNZ and reference the types from the EdifactServiceSchema
  • Below root, create group "TransactionSetGroup" and subgroup "TransactionSet"
  • Below "TransactionSet", create a group that references the EDIFACT schema
  • Below "TransactionSet", create attribute @TransactionSetActivityId
  • Below "TransactionSet", create attribute @DocType and set fixed value to http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006#EFACT_D06A_INVOIC_2.0
The result looks like this:


No comments: