Condividi tramite


Elaborazione sul lato di ricezione di un messaggio non EDI in ingresso su AS2

Le pipeline AS2 fornite con BizTalk Server possono essere usate per elaborare un messaggio EDI o un messaggio NON EDI nel trasporto AS2. Per i due diversi tipi di payload vengono utilizzate pipeline diverse. È possibile utilizzare la pipeline AS2EdiReceive per elaborare un messaggio EDI in ingresso tramite AS2 e la pipeline AS2Send per restituire il messaggio MDN associato, se abilitato. È possibile utilizzare la pipeline AS2Receive per elaborare un messaggio non EDI in ingresso tramite AS2 e la pipeline AS2Send per restituire il messaggio MDN associato, se abilitato. Il messaggio non EDI può essere qualsiasi payload binario.

La pipeline di ricezione AS2Receive decodifica il messaggio AS2 e quindi esegue il disassemblaggio nel messaggio AS2. Una pipeline di trasmissione AS2Send codifica il messaggio MDN. È possibile includere le pipeline AS2Receive e AS2Send 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). Se è necessario eseguire il disassembly di un payload non EDI, è necessario eseguire questa operazione in un'altra pipeline di ricezione, perché BizTalk Server consente solo un disassembler in una pipeline di ricezione. Ciò richiederà una porta di invio loopback e una posizione di ricezione (vedere la sezione Elaborazione del payload non EDI ricevuto di seguito).

Per ricevere un interscambio non EDI su AS2, BizTalk Server eseguirà la procedura seguente:

  • Elaborazione del messaggio AS2 ricevuto

  • Invio di un messaggio MDN

  • Elaborazione del payload non EDI ricevuto

Elaborazione del messaggio AS2 ricevuto

Il decodificatore AS2 nella pipeline di ricezione AS2Receive elabora un messaggio AS2 in ingresso. Lo fa usando la proprietà di contesto, che l'adapter InboundHTTPHeaders 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.

  • Autenticazione del mittente tramite le proprietà AS2-From e AS2-To.

    Nota

    Per altre informazioni sull'elaborazione eseguita dalle pipeline di ricezione AS2 nei 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 AS2Receive genera un messaggio MDN e lo rilascia nel MessageBox. La modalità di restituzione del messaggio MDN al mittente del messaggio originale dipende dal trasporto AS2, ovvero se è di tipo sincrono o asincrono.

Nota

Per altre informazioni sull'elaborazione eseguita dalle pipeline di ricezione AS2 nelle mdN in uscita, vedere Generazione di un MDN in uscita.

Modalità sincrona

Se un messaggio non EDI viene inviato su AS2 in modalità sincrona, BizTalk Server restituirà l'MDN su tale connessione sincrona e quindi chiudere la connessione. Il messaggio MDN verrà generato dalla pipeline AS2Receive, 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 non EDI viene inviato tramite il trasporto HTTP/HTTPS in modalità asincrona, è necessario creare una porta di trasmissione per restituire il messaggio MDN separatamente. 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 definito nelle proprietà della porta. Questa porta di invio sottoscrive l'MDN asincrona usando un'espressione EdiIntAS.IsAS2AsynchronousMDN==True di filtro. Nell'elaborazione asincrona la pipeline AS2Receive 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.

Elaborazione del payload non EDI ricevuto

Quando si riceve tramite AS2 un messaggio non codificato in EDI ed è necessario eseguire il disassemblaggio nel payload, l'operazione dovrà essere eseguita in una pipeline di ricezione diversa dalla pipeline AS2Receive. Questa operazione è necessaria perché BizTalk Server consente un disassembler solo in una pipeline di ricezione. In questo scenario sarà necessario un meccanismo di loopback che utilizza una porta di trasmissione e un indirizzo di ricezione. Nella prima fase la pipeline EDIReceive elabora il messaggio AS2 e lo invia nel formato nativo al MessageBox. Nella seconda fase una pipeline di ricezione genera il messaggio XML dal formato nativo del messaggio.

Verrà eseguita la seguente elaborazione sul lato di ricezione di un messaggio non EDI tramite AS2 in BizTalk Server:

  • La pipeline di ricezione AS2Receive associata all'indirizzo di ricezione richiesta-risposta bidirezionale analizza le intestazioni AS2 dal messaggio non EDI e quindi instrada il messaggio non EDI al MessageBox di BizTalk.

  • Una porta di invio di loopback (FILE o MSMQ) seleziona il messaggio non EDI da MessageBox, perché filtra nella proprietà IsAS2PayloadMessage == TrueBizTalk . La pipeline di trasmissione PassThruTransmit associata a questa porta di trasmissione passa il messaggio nel relativo formato non EDI, inoltrandolo a una cartella o a una coda MSMQ.

  • Un indirizzo di ricezione di loopback preleva il messaggio. La pipeline di ricezione associata all'indirizzo di ricezione di loopback genera un messaggio XML dal messaggio non EDI e lo instrada al MessageBox.

  • Se il messaggio deve essere instradato a una applicazione back-end, una porta di trasmissione preleva il messaggio XML e lo instrada all'applicazione.

Vedere anche

Come vengono ricevuti i messaggi AS2 in BizTalk Server
Elaborazione sul lato di invio di un messaggio EDI in uscita su AS2