none
Manually generating EDI envelope data and serialization RRS feed

  • Question

  • Hello, 

    I am trying to get around the forced use of parties for x12 envelope generation (ISA, GS etc.). I've searched high and low and I keep finding hints that this is possible but I can't find any concrete information. The article located at:


    suggests that the envelope application logic can be subverted, but does not expand, ala the following

    "If the intermediate XML file has a reserved tag or the ReuseEnvelope context property, the message is a preserved batch and the envelope application logic will not apply."

    I have created a schema which I beleive matches the combined Batch, Service and Document schemas, and populated all nodes with my desired data, however, I am unable to get resulting data to serialize through the EdiSend pipeline to generate true EDI output. 

    I am trying to get around the party requirement because following that model would require me to create literally thousands of parties. Undesirable to say the least. 

    Does anyone have any experience or suggestions to offer? Your help would be most appreciated.

    Thanks.

    Kirps
    Monday, October 13, 2008 8:20 PM

Answers

  • I was actually able to make it work using a schema generated by a colleague combining the X12 Service Schema and the Schema for the particular doc I wanted (4010 850 in this case)

    Key Points were that the ISA02 and ISA04 had to be filled with 10 blank spaces to meet their length requirements (why the pipeline wouldn't just enter these for a blank node I have no idea) AND that the DocType attributes of the FunctionalGroup and TransactionSet nodes had to be filled the the namespace of the schema being used. in my case it was


    http://schemas.microsoft.com/BizTalk/EDI/X12/2006/4010/850#X12_00401_850

    Hope this helps some others struggling with the EDI requirements of BT06 R2, using this method allow me to create EDI files with exactly my specified information in the Envelope without resorting to party settings, In fact, I only have the Global Party configured and am getting desired results for each trading partner.


    Thanks for all your suggestions they ended up pointing me in the right direction.
    Wednesday, October 22, 2008 9:25 PM

All replies

  • A bit of additional information for clarification, I am basically attempting to trick the EdiSend pipeline into beleiving I have a preserved batch or something of that nature. 

    I can't directly preserve the batch because I can't guarantee any of the orchestrations between EdiReceive pipeline input and EdiSend pipeline output are set up to handle batched documents correctly, all previous architechture was based on a single transaction set model.

    Will values written to the ISA/GS etc. context properties overrule those that would be created due to party resolution?

    Again, any help would be appreciated.

    Kirps
    Monday, October 13, 2008 9:01 PM
  • I am not able to get your requirement much. If you want the same party in your all output EDI files, you can create one party for outbound message and set the ISA05,06,07,08 values in the orchestration, since it is constant value you can hard code it or store it somewhere. The destination party properties can be set in the orchestration. Perhaps you need to create all the parties on your receive side or allow biztalk to use global party, if you don't care about authendicating the parties.

     

    Did i get your requirement correct? let me know, i may help you.

     

    Cheers,

    Devaraj

     

    Tuesday, October 14, 2008 7:17 AM
  • No, the requirement is to have full control over the envelope without using the party-based envelope generation. 

    We are an EDI gateway, we have EDI, XML, and Flat Files coming in from hundreds of trading partners which are then translated into the appropriate format for any one of hundreds of recipients and sent out to that trading partner. Meaning that the envelope should reflect the orginal data in the case of an EDI to EDI connection or I must manually create an envelope for connections involving one or more partners utilizing an XML or Flat File that does not contain a standard EDI header. I also cannot directly use preserved batches because I have many orchestrations running which require un-batched files and cannot be changed.

    I would like to be able to be able to directly set the envelope data within my orchestrations, or if that is totally impossible, a custom pipeline. 
    The party-based envelope generation model is insufficient as it would require me to create a party for every unique connection with in my universe, necessitating thousands of parties, which would be a nightmare to manage.

    Basically you can think of us as the hub in a giant hub-and-spoke model, but we need to be invisible as far as the data in our files is concerned.

    Thanks for taking a look.

    Kirps
    Tuesday, October 14, 2008 1:02 PM
  • In the BizTalk SDK you can look at the Message Enrichment example. This explains how to set the X12 or Edifact headers yourself without needing to work with the parties. I agree that in the case of an EDI gateway you can't really work with parties in a practical way. If chosen in the install with BizTalk, the SDK is typically at c:\Program Files\Microsoft BizTalk Server 2006\SDK. To see the Message Encrichment sample, go to C:\Program Files\Microsoft BizTalk Server 2006\SDK\Samples\EDI\MessageEnrichment.

     

    This sample shows you how to work with EDI based in an orchestration but lets you set the ISA and GS headers in a dynamic way.

     

    Thanks,

    Tuesday, October 14, 2008 4:23 PM
    Moderator
  • Thanks Ben,

    I am currently working with the Message Enrichment sample but I have been unable to get the resulting data to serialize back into EDI on through the EdiSend pipeline. That stumbling block was actually the catalyst for my original post. Is that serialization possible? If so, I must just be missing somethign and will keep plugging away, if not, I need to find another way to control my envelopes
    Tuesday, October 14, 2008 4:34 PM
  • In the bindings file for the Message Enrichment sample, it uses the PassThruTransmit pipeline for a FILE port. I think if you use EdiSend for this it will choke on the ISA and GS segments. You may be able to use AS2send to get it sent out as-is from there or use the FILE port.

     

    Thanks,

    Tuesday, October 14, 2008 4:56 PM
    Moderator
  • I was actually able to make it work using a schema generated by a colleague combining the X12 Service Schema and the Schema for the particular doc I wanted (4010 850 in this case)

    Key Points were that the ISA02 and ISA04 had to be filled with 10 blank spaces to meet their length requirements (why the pipeline wouldn't just enter these for a blank node I have no idea) AND that the DocType attributes of the FunctionalGroup and TransactionSet nodes had to be filled the the namespace of the schema being used. in my case it was


    http://schemas.microsoft.com/BizTalk/EDI/X12/2006/4010/850#X12_00401_850

    Hope this helps some others struggling with the EDI requirements of BT06 R2, using this method allow me to create EDI files with exactly my specified information in the Envelope without resorting to party settings, In fact, I only have the Global Party configured and am getting desired results for each trading partner.


    Thanks for all your suggestions they ended up pointing me in the right direction.
    Wednesday, October 22, 2008 9:25 PM
  • Can you please provide the schema your colleague generated?  I would like to do the same thing for a different transaction and I would like to understand how you combine the X12 Service Schema with the Schema for a particular doc.  Thanks!
    Wednesday, April 7, 2010 8:35 PM
  • Hello kirps,

    I am trying to do something similar with 835. Could you Provide your schemas to us? Understanding how to do this and use it would be great not just for me but others also...if possible.

    Regards,

    Chris


    vb.net programmer
    Wednesday, September 28, 2011 7:14 PM