Send-Side Processing of an Outgoing EDI Message over AS2
Send-side processing of an EDI message over AS2 includes sending an AS2 message with the EDI payload and receiving MDN and EDI acknowledgments (if enabled).
The AS2EDISend send pipeline sends an assembled EDI/AS2 message to the receiving trading partner over HTTP/HTTPS. The AS2EDIReceive receive pipeline receives an MDN returned in response to the AS2 message, and an EDI acknowledgment returned in response to the EDI message. Each of these pipelines processes an AS2 message and processes the EDI payload within an AS2 message. You can include these pipelines in an HTTP two-way solicit response send port, or in a one-way HTTP send port and a one-way HTTP receive port.
To send an EDI interchange over AS2, BizTalk Server will perform the following steps:
Processing the EDI payload for sending
Sending the AS2 message
Receiving the returned MDN
Receiving the returned EDI acknowledgment
Processing the EDI Payload for Sending
Before creating an AS2 message, the AS2EdiSend pipeline must process the EDI interchange. If outbound batching is enabled, transaction sets will be batched as described in Assembling a Batched EDI Interchange. The EDI Assembler will create the EDI interchange as described in How the EDI Assembler Works.
Sending the AS2 Message
The AS2 Encoder in the AS2 send pipeline first performs agreement resolution to determine the agreement properties to be used to process the outgoing message. For more information, see Agreement Resolution for Outgoing AS2 Messages.
The AS2 Encoder builds the set of HTTP headers required to send an AS2 message. It adds these headers to the HTTP.UserHttpHeaders
context property, which is a single string of header values. The AS2 Encoder builds the following AS2 headers in HTTP.UserHttpHeaders
. These headers must be in the AS2 messages.
AS2-To
AS2-From
AS2-Version
MessageID
OriginalMessageID (for MDNs only)
If the Request MDN property is checked, the pipeline will set the Disposition-Notification-To, Receipt-Delivery-Option, and Signed-Receipt-MICalg AS2 headers in the message to the values in the corresponding properties; and it will set the Signed-Receipt-Protocol AS2 header to "pcks7-signature" if the Request signed MDN property is checked.
If the
HTTP.UserHttpHeaders
context property does not exist, the AS2 Encoder will create it. IfHTTP.UserHttpHeaders
already exists, the AS2 Encoder will use it, rather than creating it. If you createHTTP.UserHttpHeaders
, write headers to it, and then write it to the context of the message, the AS2 Encoder will use those headers, and they will take priority over headers from other sources. The exception to that is the AS2-From header, which is always taken from the agreement properties.If an AS2 header is not in
HTTP.UserHttpHeaders
, the AS2 Encoder will add it from single context properties. This means that you can add AS2 headers by promoting or writing them to the context of the message (if they are not already inHTTP.UserHttpHeaders
). If an AS2 header is neither inHTTP.UserHttpHeaders
, nor present as a property in the context, the AS2 Encoder will add it from agreement properties intoHTTP.UserHttpHeaders
.After the AS2 Encoder builds the headers in the
HTTP.UserHttpHeaders
property, it writes it to the context of the message. The HTTP Adapter picks upHTTP.UserHttpHeaders
, and prepends the header values fromHTTP.UserHttpHeaders
into the message.
Note
AS2 transport is intended to work only with the HTTP adapter. However, if you manually set the appropriate context properties, you can use the FILE Adapter to transport AS2 messages. For more information, see Sending an AS2 Message over a FILE Send Port.
Processing the Returned MDN
If an MDN is enabled, the receive pipeline associated with the two-way send port receives the MDN from the party that receives the AS2 message.
Note
For more information about the processing that the AS2 send pipelines perform on incoming MDNs, see Sending an Outgoing MDN.
Processing the Returned EDI Acknowledgment
If an EDI acknowledgment is enabled, the receive pipeline associated with the two-way send port also receives an EDI acknowledgment from the receiver of the EDI message (because it filters on the BizTalk EDI ACK message type). For more information, see Processing a Received Acknowledgment.