none
Maintaining Original EDI Envelop RRS feed

  • Question

  • Our company acquired another company, both companies received EDI documents from the same customer and we wanted to keep processing separate.  The customer changed the EDI envelop to send all the EDI to us.  So now we receive EDI for the company we acquired.  I want to send the EDI for the acquired company to the acquired company.  When I do, the sender and receiver values get shifted.  I want to send the original EDI onto the acquired company.  How should I go about doing that?
    Monday, April 1, 2013 9:20 PM

Answers

  • Assuming there is a way to definitively detect who the actual receive is, the easiest way* would be to identify the correct receive in a pipeline component, set a custom Promoted Property and route the unparsed message on that.  For local processing, write to a folder where the local EDI host can read it.  The other would get pushed to their EDI system.

    *The easiest thing to do would be to ask the customer to undo their change.

    • Marked as answer by Lou Searles Wednesday, April 10, 2013 6:27 PM
    Sunday, April 7, 2013 5:30 PM
  • Pipeline Component Wizard: http://btsplcw.codeplex.com/

    It's pretty easy if you're familiar with the Stream interface.  To cover more cases than receiving with the File adapter, you should wrap the body part stream in ReadOnlySeekableStream (Microsoft.BizTalk.Streaming).

    Then, just peek as far as you need to determine the true receive and set a routing property.  No need to actually parse the interchange.

    • Marked as answer by Lou Searles Wednesday, April 10, 2013 6:27 PM
    Tuesday, April 9, 2013 8:38 PM

All replies

  • Hi,

    I am trying to involve someone familiar with this topic to further look at this issue. There might be some time delay. Appreciate your patience.

    Regards,


    Chen Yu
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Tuesday, April 2, 2013 9:23 AM
    Moderator
  • Any progress on enlisting the aid of someone familiar with this situation?
    Thursday, April 4, 2013 5:20 PM
  • Hello,

    So what I understand from your above description is that you want to internally route the EDI message to the Acquired company's EDI processing system. 

    In this kind of a situation will you not be able to simply route the incoming EDI messages(without using the EDI capability of BIzTalk) to the Acquired company's EDI processing system, so that the message delivered to the system is still the same message as before. 

    Regards,
    Shashi,
    Biztalk Server Team,
    Microsoft Developer Support.

    Friday, April 5, 2013 1:35 PM
  • Assuming there is a way to definitively detect who the actual receive is, the easiest way* would be to identify the correct receive in a pipeline component, set a custom Promoted Property and route the unparsed message on that.  For local processing, write to a folder where the local EDI host can read it.  The other would get pushed to their EDI system.

    *The easiest thing to do would be to ask the customer to undo their change.

    • Marked as answer by Lou Searles Wednesday, April 10, 2013 6:27 PM
    Sunday, April 7, 2013 5:30 PM
  • Thank you Shashi.

    The issue is determining who gets the file.  These files are in a single folder.  We ftp them to our site using BizTalk.  Once we have them I need to determine where they go.  I could write a program to do that, but I already have BizTalk to do my messaging.  I am using an orchestration to determine the routing.  The receive port use the EDI Receive adapter.  So then the message is XML in the orchestration.  If I use the EDI Send adapter on the send port, the EDI in the transcation set is identical.  The ISA/IEA and GS/GE segments (the envelop) are different.  Because the envelop is used for routing it needs to be what was originally sent.

    Lou Searles

    Tuesday, April 9, 2013 2:49 PM
  • Thank you for your response.

    I am using an orchestration to look at a promoted property for a route value.  Based on the route, I know where to route it.  Because I am checking in an orchestration, the message has already been parsed and is XML.

    I could build a custom pipeline, but I have not done that yet.  Any help building custom pipeline components?

    Lou Searles

    Tuesday, April 9, 2013 2:55 PM
  • Pipeline Component Wizard: http://btsplcw.codeplex.com/

    It's pretty easy if you're familiar with the Stream interface.  To cover more cases than receiving with the File adapter, you should wrap the body part stream in ReadOnlySeekableStream (Microsoft.BizTalk.Streaming).

    Then, just peek as far as you need to determine the true receive and set a routing property.  No need to actually parse the interchange.

    • Marked as answer by Lou Searles Wednesday, April 10, 2013 6:27 PM
    Tuesday, April 9, 2013 8:38 PM
  • Yeah, you can use above suggestion to build the custom pipeline component.

    if you want to only override the edi header information you can do that using a custom pipeline component as mentioned in the below link 

    http://msdn.microsoft.com/en-us/library/dd223988.aspx

    Regards,
    Shashi,
    Biztalk Server Team,
    Microsoft Developer Support.

     
    Thursday, April 11, 2013 7:08 PM