none
Synchronous EDI work flow RRS feed

  • Question

  • Hi All,<o:p></o:p>

     <o:p></o:p>

    I have been working in BizTalk for short period. I have got a new requirement (EDI 270 & 271)for which i wanted some ideas and opinions as well. I have given the work flow down below, Please let me know if this possible in BizTalk and how it can accomplished with a single and continous work flow. It is kind of urgent requirement, based on the proof of concept only they will approve the CR.<o:p></o:p>

     <o:p></o:p>

    - Client application will be a sending a EDI file through HTTP POST (can HTTP adapter can be used in the receive pipeline?)<o:p></o:p>

    - file will be a xml content with header, user account details and the EDI 270 file content.<o:p></o:p>

    - need to parse the xml data and first authenticate the user based on the credentials posted (not sure how it can be accomplished, can it be done with a custom pipeline ? then how would i store the header and user credentials)<o:p></o:p>

    - If the authentication fails then i need to send a http response with unauthorized code(401). (do i need to have a seperate step in orchestration for authentication ?)<o:p></o:p>

    - If the authentication passes, then i need to validate the 270 source file with the 270 EDI schema. If the file is not correct format, i need to generate a 999 and send the 999 acknowledgment through send pipeline using HTTP adapter. client application will be waiting for HTTPGET to receive the ack.. file<o:p></o:p>

    - If the file is valid format then create a 271 response file and send it back to the client application using the same HTTP adapter as a HTTPGET.<o:p></o:p>

     <o:p></o:p>

    I know its a big CR, thought of getting everyone's opinion on this which would point me to start in the right direction.<o:p></o:p>

     <o:p></o:p>

     <o:p></o:p>

    Thanks in advance.<o:p></o:p>

     <o:p></o:p>

    Venkat<o:p></o:p>

    Sorry forgot to add the bizTalk version, we are using BizTalk 2009 for other EDI process. But i can mention 2010 if it can be done effectively in BizTalk 2010

    Wednesday, October 17, 2012 7:28 PM

Answers

  • Hi Venkat,

    - Client application will be a sending a EDI file through HTTP POST (can HTTP adapter can be used in the receive pipeline?)
    This is correct. HTTPReceive adapter, EDIReceivepipeline and EDI Agreement.

    - file will be a xml content with header, user account details and the EDI 270 file content.

    Not sure what this mean. But what should be scenario. Message which is to be posted is FLAT file and BizTalk will convert it into XML for further processing

    - need to parse the xml data and first authenticate the user based on the credentials posted (not sure how it can be accomplished, can it be done with a custom pipeline ? then how would i store the header and user credentials)<o:p>

    you can implement this this in IIS(Where you are hosting btshttpreceive.dll) or Use https protocol to accomplish authentication. I am not aware if we can do it in some other way(Pls try to search on blogs)

    - If the authentication fails then i need to send a http response with unauthorized code(401). (do i need to have a seperate step in orchestration for authentication ?) This response IIS sends. I don't think you have to do something in CODE

    - If the authentication passes, then i need to validate the 270 source file with the 270 EDI schema. If the file is not correct format, i need to generate a 999 and send the 999 acknowledgment through send pipeline using HTTP adapter. client application will be waiting for HTTPGET to receive the ack..

    999 will be generated automatically in case of BizTalk 2010, for 2009 you have to right code as this feature is not available. Pls look into my blog on how to implement this http://blogs.msdn.com/b/biztalknotes/archive/2012/01/26/how-to-generate-999-acknowledgments-for-hippa-5010-in-biztalk-server-2010.aspx

    - If the file is valid format then create a 271 response file and send it back to the client application using the same HTTP adapter as a HTTPGET.

    USe MAp for transformation. Then use HTTP send port with EDISend pipeline 

    Thursday, October 18, 2012 3:16 AM
  • Hi VEnkat,

    I will suggest to learn ESB first before implementing solution.

    However there is tool available which will help you in acheivng your scenario http://ediguidance.codeplex.com/ (still work in progress)

    There are very few information on net about this scenario

    http://social.msdn.microsoft.com/Forums/no/biztalkesb/thread/98942991-8cb1-4730-ab38-578bc3b39474 


    I will try to implement this scenario and let you know if any success
    Friday, October 19, 2012 8:05 AM

All replies

  • Hi Venkat,

    - Client application will be a sending a EDI file through HTTP POST (can HTTP adapter can be used in the receive pipeline?)
    This is correct. HTTPReceive adapter, EDIReceivepipeline and EDI Agreement.

    - file will be a xml content with header, user account details and the EDI 270 file content.

    Not sure what this mean. But what should be scenario. Message which is to be posted is FLAT file and BizTalk will convert it into XML for further processing

    - need to parse the xml data and first authenticate the user based on the credentials posted (not sure how it can be accomplished, can it be done with a custom pipeline ? then how would i store the header and user credentials)<o:p>

    you can implement this this in IIS(Where you are hosting btshttpreceive.dll) or Use https protocol to accomplish authentication. I am not aware if we can do it in some other way(Pls try to search on blogs)

    - If the authentication fails then i need to send a http response with unauthorized code(401). (do i need to have a seperate step in orchestration for authentication ?) This response IIS sends. I don't think you have to do something in CODE

    - If the authentication passes, then i need to validate the 270 source file with the 270 EDI schema. If the file is not correct format, i need to generate a 999 and send the 999 acknowledgment through send pipeline using HTTP adapter. client application will be waiting for HTTPGET to receive the ack..

    999 will be generated automatically in case of BizTalk 2010, for 2009 you have to right code as this feature is not available. Pls look into my blog on how to implement this http://blogs.msdn.com/b/biztalknotes/archive/2012/01/26/how-to-generate-999-acknowledgments-for-hippa-5010-in-biztalk-server-2010.aspx

    - If the file is valid format then create a 271 response file and send it back to the client application using the same HTTP adapter as a HTTPGET.

    USe MAp for transformation. Then use HTTP send port with EDISend pipeline 

    Thursday, October 18, 2012 3:16 AM
  • Hi Anand,

    Thanks for the details. I understand 999 ack... is created automatically but how do i get the file and send it as a response back. same way for the 271 response, i will be using biztalk mapping to generate the export file, but i need to send it back as a response.

    Thanks,

    Venkat

    Thursday, October 18, 2012 11:13 AM
  • I am not sure if you can achieve your scenario synchronously, since once Biztalk receive and process the message (271) we have to convert it into EDI again. This can be done only if we can select correspondning send port in EDI agreement. But you cannot add Request Response port in EDI agreement.

    Howeevr You can try this option, 90% this will not work but you can try:

    Use Request Response Receive port to receive message (EDIReceivepipline, EDISendpipeline, HTTP adapter).

    Create a orchestation With logical request-response port.

    Transfform message using map in orchestration

    Send message using same  logical request-response port

    Bind it with Request Response Receive port

    Correct way to implement the scenario:

    REceive message and Send MDN over synschronouse mode

    Do further processing (convert to 271) and send it to client http receive location.


    • Edited by Anand PS Thursday, October 18, 2012 12:05 PM
    Thursday, October 18, 2012 12:04 PM
  • Hi Anand,

    Thanks for the fast replies. Any chance that it can be done using BizTalk ESB? 

    Friday, October 19, 2012 7:02 AM
  • You can implement this scenario, however you have to write custom receive pipeline with EDI component and Itinery componnent for proper message processing.

    Or You can split soliton into 2

    One application to just receive message and publish it local file location

    Second application for ESB processing

    Friday, October 19, 2012 7:34 AM
  • I am totally new to ESB, i need to see if i can find something. is there a way i can contact you through email. i am not sure how to send a IM.
    Friday, October 19, 2012 7:56 AM
  • Hi VEnkat,

    I will suggest to learn ESB first before implementing solution.

    However there is tool available which will help you in acheivng your scenario http://ediguidance.codeplex.com/ (still work in progress)

    There are very few information on net about this scenario

    http://social.msdn.microsoft.com/Forums/no/biztalkesb/thread/98942991-8cb1-4730-ab38-578bc3b39474 


    I will try to implement this scenario and let you know if any success
    Friday, October 19, 2012 8:05 AM
  • Thanks Anand. I will have to learn ESB and see if it helps.
    Friday, October 19, 2012 8:27 AM