Elaborazione sul lato di ricezione di un messaggio EDI in ingresso su AS2
L'elaborazione sul lato di ricezione di un messaggio EDI tramite AS2 include la ricezione del messaggio AS2, l'invio di un messaggio MDN, l'elaborazione del payload EDI e l'invio di riconoscimenti EDI (se abilitato).
La pipeline di ricezione AS2EdiReceive riceve il messaggio AS2 e disassembla il payload EDI nel messaggio AS2. La pipeline di trasmissione AS2EDISend invia un messaggio MDN in risposta al messaggio AS2 e un riconoscimento EDI viene restituito in risposta al messaggio EDI. È possibile includere queste pipeline in una porta di trasmissione sollecitazione-risposta bidirezionale HTTP (se il messaggio MDN è sincrono) o in una porta di trasmissione unidirezionale HTTP e una porta di ricezione unidirezionale HTTP (se il messaggio MDN è asincrono).
Per ricevere un interscambio EDI su AS2, BizTalk Server eseguirà la procedura seguente:
Elaborazione del messaggio AS2 ricevuto
Invio di un messaggio MDN
Elaborazione del payload EDI ricevuto
Invio di un riconoscimento EDI
Elaborazione del messaggio AS2 ricevuto
Il decodificatore AS2 nella pipeline di ricezione AS2EdiReceive elabora un messaggio AS2 in ingresso. In questo modo viene usata la InboundHTTPHeaders
proprietà di contesto, che l'adapter HTTP crea dalle intestazioni HTTP nel messaggio AS2. Sono incluse le seguenti intestazioni AS2:
AS2-To
AS2-From
AS2-Version
MessageID
OriginalMessageID (solo per messaggi MDN)
Disposition-Notification-To (se è richiesto un messaggio MDN)
Receipt-Delivery-Option (se è richiesto un messaggio MDN)
Signed-Receipt-MICalg (se è richiesto un messaggio MDN)
Il decodificatore AS2 alza queste intestazioni al livello del contesto del messaggio. Vengono quindi eseguite le seguenti operazioni:
Esegue la risoluzione dell'accordo per determinare le proprietà da utilizzare per elaborare il messaggio in ingresso. Per altre informazioni, vedere Risoluzione del contratto per i messaggi AS2 in ingresso.
Autentica il mittente usando la proprietà AS2-From .
Nota
Per altre informazioni sull'elaborazione eseguita dalle pipeline di ricezione AS2 sui messaggi AS2 in ingresso, vedere Elaborazione di un messaggio AS2 in ingresso.
Invio di un messaggio MDN
Se è stato abilitato un messaggio MDN, la pipeline AS2EdiReceive genera un messaggio MDN e lo rilascia nel MessageBox.
Nota
Per altre informazioni sull'elaborazione eseguita dalle pipeline di ricezione AS2 su MDN in uscita, vedere Generazione di un MDN in uscita.
Modalità sincrona
Se un messaggio EDI viene inviato su AS2 in modalità sincrona, BizTalk Server restituirà il messaggio MDN su tale connessione sincrona e quindi chiuderà la connessione. Poiché la connessione è stata chiusa, BizTalk Server non può restituire un riconoscimento EDI (997, TA1 o CONTRL) su tale connessione. I riconoscimenti EDI vengono sempre inviati in modalità asincrona tramite AS2.
Il messaggio MDN verrà generato dalla pipeline AS2EDIReceive, instradato dalla pipeline al MessageBox e quindi automaticamente prelevato dalla pipeline AS2Send che fa parte della porta di ricezione richiesta-risposta.
Modalità asincrona
Se un messaggio con codifica EDIINT/AS2 viene inviato tramite il trasporto HTTP/HTTPS in modalità asincrona, è necessario creare una porta di trasmissione per restituire il messaggio MDN separatamente. È possibile configurare la porta di trasmissione per restituire i riconoscimenti EDI e i messaggi MDN asincroni. Se si tratta di una porta di trasmissione dinamica, verrà utilizzato l'indirizzo nella riga Receipt-Delivery-Option nell'intestazione del messaggio per instradare il messaggio al partner commerciale. Se si tratta di una porta di trasmissione statica, verrà utilizzato l'indirizzo configurato nelle proprietà della porta. Questa porta di trasmissione sottoscrive l'mdN asincrona usando un'espressione EdiIntAS.IsAS2AsynchronousMDN==True
di filtro.
Nell'elaborazione asincrona, la pipeline AS2EdiReceive genererà una risposta HTTP oltre al messaggio MDN. La porta di ricezione restituisce la risposta HTTP al mittente originale tramite la connessione HTTP tra la porta di ricezione e l'entità mittente che chiude la connessione. Questa operazione è necessaria perché la connessione sincrona non viene chiusa dal messaggio MDN.
Se BizTalk trasporta un messaggio con codifica EDIINT/AS2 tramite HTTP/HTTPS, ma l'elaborazione del payload con codifica EDI non riesce, il mittente del messaggio originale riceve un messaggio MDN indicante l'elaborazione AS2 riuscita e un riconoscimento EDI indicante l'errore dell'elaborazione EDI. Il payload con codifica EDI viene sospeso e viene inviato un errore.
Elaborazione del payload EDI ricevuto
Se l'opzione elaborazione batch in ingresso per un contratto EDI è impostata su Divisione interscambio, la pipeline di ricezione AS2EdiReceive associata alla posizione di ricezione della risposta di richiesta bidirezionale analizza il messaggio EDI in un messaggio XML separato per ogni set di transazioni EDI. Se l'opzione Elaborazione batch in ingresso è impostata su Mantieni interscambio, la pipeline di ricezione non analizzerà il messaggio EDI.
La pipeline di ricezione instrada la transazione XML o l'interscambio EDI mantenuto al MessageBox BizTalk.
Se il messaggio deve essere instradato a una applicazione back-end, una porta di trasmissione preleva il messaggio XML e lo instrada all'applicazione.
Nota
La porta di trasmissione può essere di qualsiasi tipo.
Invio del riconoscimento EDI
Se è stato abilitato un riconoscimento EDI, il disassembler EDI nella pipeline di ricezione AS2EdiReceive genererà i riconoscimenti EDI. I riconoscimenti EDI devono essere inviati dalla pipeline di trasmissione AS2EdiSend tramite una porta di trasmissione unidirezionale separata.
Se si configura una porta di ricezione richiesta-risposta bidirezionale per i messaggi EDI/AS2 per restituire un MDN sincrono o una risposta HTTP (nel caso di un MDN asincrono), la proprietà Route ACK per inviare la pipeline sulla porta di ricezione della risposta richiesta (impostata nella pagina Impostazioni host locali del contratto EDI unidirezionale nella finestra di dialogo Proprietà contratto ) verrà ignorata. Anche se la proprietà è selezionata, la pipeline di trasmissione restituirà un messaggio MDN sincrono o una risposta HTTP e non un riconoscimento EDI.
Per altre informazioni, vedere Invio di un riconoscimento EDI.