none
How to handle AS2 MDN

    問題

  • Scenario: (using VS2010 + BTS2010)
    1. send EDI over AS2 from local database to client.
    2. Validate MDN to check if submission was success. (Asynch MDN)
    3. Update status in local db.

    Current implementation:
    I have a orchestration, which pulls out an EDI document from the database and sends it to a http receive port. After the send port, I update the status in my local db.
    There is a http receive port (message only b1receiveportname), to collect the EDI send by the orchestration.
    There is a send port (message only with filter for btsreceiveportname = b1receiveportname), which send the document to the client (http uri) over AS2Send send pipeline.
    There is a http receive port (message only with AS2Reeive Receive Pipeline), which looks for MDN received over http from client.

    Expected:
    Once the MDN is received, validate the MDN to check if the document was delivered successfully. Then update the status in the db.

    Questions:
    - Do I need to keep the orchestration instance running until the MDN is received?
    - How do I validate an MDN for success or failure. There is no schema for MDN correct. So I can create a empty schema with Any record in it? And is check enough to decide success or failure? msgMDNSchema(EdiIntAS.IsAS2FailureMessage == true)
    - Is this the only way (mentioned in here http://biztalkhotrod.com/Documents/BizTalk_HotRod_Issue6_Q2_2009.pdf)


    Thanks and Regards, Vikram
    2011年4月12日 下午 07:41

解答

  • That hotrod article is the best resource I know of for validating the MDN, I have not really seen that requirement documented anywhere else.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • 已標示為解答 VNSuvarna 2011年4月13日 下午 09:11
    2011年4月13日 下午 03:48
    版主

所有回覆

  • That hotrod article is the best resource I know of for validating the MDN, I have not really seen that requirement documented anywhere else.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline
    • 已標示為解答 VNSuvarna 2011年4月13日 下午 09:11
    2011年4月13日 下午 03:48
    版主
  • Ben,

    I am trying this solution out. But why am I not getting EdiIntAS.MessageID (while I am setting in correlation type) and EdiIntAS.IsAS2FailureMessage (in decision shape) in the orchestration? Am I missing some project reference? I am using VS2010. I tried "Microsoft.BizTalk.HttpTransport.dll" as per http://msdn.microsoft.com/en-us/library/bb743547(BTS.70).aspx but still missing something.


    Thanks and Regards, Vikram
    2011年4月14日 下午 03:58
  • Ok I got it under Microsoft.BizTalk.Edi.BaseArtifacts.dll. I will try the solution provided in BizTalk HotRod and see.
    Thanks and Regards, Vikram
    2011年4月14日 下午 06:29
  • Ben, What does this following statement mean: "To receive MDN messages inside the orchestration you can use Microsoft.XLangs.BaseTypes.Any type." (taken from HotRod Issue6).
    - Does it mean to create a schema with a root element and then add a an Any element.
    - Or does it mean to create an empty schema with document type Microsoft.XLangs.BaseTypes.Any.
    - Or does it mean to create a Message in the orchestration of message type Microsoft.XLangs.BaseTypes.Any? But how do I get this Any type in the message type?


    Thanks and Regards, Vikram
    2011年4月15日 下午 05:03
  • I think the idea is to use the Microsoft.XLangs.BaseTypes.Any as the message type. The disadvantage of this is that you cannot use this type in a map. This often lreads to using some .NET code to parse the message and then do validation from there.

    In the type explorer for the message you should be able to find this type - it should always load in the type explorer. This basically serves as an untyped message. System.Xml.XmlDocument works similarly but I am not sure if it would work for the MDN.

    Thanks,


    If this answers your question, please use the "Answer" button to say so | Ben Cline

    2011年4月15日 下午 05:25
    版主
  • Followed the hotrod article to validate the MDN in orchestration. But I am facing the following problem.Please help.

    The requirement is that when we send a file via AS2 and we dont get an MDN back in the stipulated time, I need to route the file to a folder so that the file can be processed after the AS2 connection problems are resolved.  The MDN is synchronous on the request response port. To accomodate that i created a orchestration as mentioned in the hotrod article. I am using direct bind ports for the orchestration. So after the file is received from a folder into the orchestration, correlation is set on the file and is dropped into the messagebox for the request response http port to pick up and send via AS2. The problem i am having is that as soon as the orchestration drops the file in messagebox the receive direct bind port(MDN port) to the orchestration is picking up the file. I understand this is happening beacuse I set the message type as (Microsoft.XLANGs.BaseTypes.Any) . But I am not able to figure out how only the response message from http can be directed to the orchestration and not the original message which the orchestration dropped to send via AS2.

    2012年5月27日 上午 06:52