Messaggi B2B di Exchange tra partner che usano flussi di lavoro in App per la logica di Azure
Si applica a: App per la logica di Azure (consumo + Standard)
Quando si dispone di un account di integrazione che definisce partner commerciali e contratti, è possibile creare un flusso di lavoro business-to-business automatizzato (B2B) che scambia messaggi tra partner commerciali usando App per la logica di Azure. Il flusso di lavoro può usare connettori che supportano protocolli standard del settore, ad esempio AS2, X12, EDIFACT e RosettaNet. È anche possibile includere operazioni fornite da altri connettori in App per la logica di Azure, ad esempio Office 365 Outlook, SQL Server e Salesforce.
Questo articolo illustra come creare un flusso di lavoro dell'app per la logica di esempio che può ricevere richieste HTTP usando un trigger Request, decodificare il contenuto del messaggio usando le azioni DEcode e Decode X12 e restituire una risposta usando l'azione Response. Nell'esempio viene usata la finestra di progettazione del flusso di lavoro nella portale di Azure, ma è possibile seguire passaggi simili per la finestra di progettazione del flusso di lavoro in Visual Studio.
Se non si ha familiarità con le app per la logica, vedere Informazioni su App per la logica di Azure? Per altre informazioni sull'integrazione aziendale B2B, vedere flussi di lavoro di integrazione aziendale B2B con App per la logica di Azure.
Prerequisiti
Un account e una sottoscrizione di Azure. Se non si ha ancora una sottoscrizione, iscriversi per un account Azure gratuito.
Risorsa dell'account di integrazione in cui si definiscono e archiviano elementi, ad esempio partner commerciali, contratti, certificati e così via, per l'uso nei flussi di lavoro di integrazione aziendale e B2B. Questa risorsa deve soddisfare i requisiti seguenti:
È associato alla stessa sottoscrizione di Azure della risorsa dell'app per la logica.
Esiste nella stessa posizione o nell'area di Azure della risorsa dell'app per la logica.
Se si usa il tipo di risorsa App per la logica (consumo), l'account di integrazione richiede un collegamento alla risorsa dell'app per la logica prima di poter usare gli artefatti nel flusso di lavoro.
Se si usa il tipo di risorsa App per la logica (Standard), l'account di integrazione non necessita di un collegamento alla risorsa dell'app per la logica, ma è comunque necessario archiviare altri artefatti, ad esempio partner, contratti e certificati, insieme all'uso delle operazioni AS2, X12 o EDIFACT. L'account di integrazione deve comunque soddisfare altri requisiti, ad esempio usando la stessa sottoscrizione di Azure e esistente nella stessa posizione della risorsa dell'app per la logica.
Nota
Attualmente, solo il tipo di risorsa App per la logica (consumo) supporta le operazioni RosettaNet . Il tipo di risorsa App per la logica (Standard) non include operazioni RosettaNet .
Almeno due partner commerciali nel tuo account di integrazione. Le definizioni per entrambi i partner devono usare lo stesso qualificatore di identità aziendale , ovvero AS2, X12, EDIFACT o RosettaNet.
Contratto AS2 e contratto X12 per i partner che si usano in questo flusso di lavoro. Ogni contratto richiede un partner host e un partner guest.
Risorsa dell'app per la logica con un flusso di lavoro vuoto in cui è possibile aggiungere il trigger Richiesta e quindi le azioni seguenti:
Condizione che invia una risposta in base al fatto che l'azione decode AS2 abbia esito positivo o negativo
Aggiungere il trigger Request
Per avviare il flusso di lavoro in questo esempio, aggiungere il trigger Request.
Nella portale di Azure aprire la risorsa dell'app per la logica e il flusso di lavoro vuoto nella finestra di progettazione del flusso di lavoro.
Nella casella di ricerca della finestra di progettazione selezionare Tutto, se non selezionato. Nella casella di ricerca immettere
when a http request
. Selezionare il trigger Richiesta denominato Quando viene ricevuta una richiesta HTTP.Nel trigger lasciare vuota la casella Schema JSON del corpo della richiesta .
Il motivo è che il trigger riceverà un messaggio X12 in formato file flat.
Al termine, sulla barra degli strumenti della finestra di progettazione selezionare Salva.
Questo passaggio genera l'URL HTTP POST usato in seguito per inviare una richiesta che attiva il flusso di lavoro dell'app per la logica.
Copiare e salvare l'URL da usare in un secondo momento.
Aggiungere l'azione decode AS2
Aggiungere ora le azioni B2B per questo esempio, che usa le azioni AS2 e X12.
Nel trigger selezionare Nuovo passaggio.
Suggerimento
Per nascondere i dettagli del trigger della richiesta, selezionare la barra del titolo del trigger.
Nella casella Di ricerca Scegliere un'operazione selezionare Tutto, se non selezionato. Nella casella di ricerca immettere
as2
e selezionare DEcode AS2.Nel messaggio dell'azione per decodificare la proprietà immettere l'input che si vuole decodificare l'azione AS2, ovvero
body
l'output dal trigger Request. Sono disponibili più modi per specificare questo contenuto come input dell'azione, selezionando dall'elenco di contenuto dinamico o come espressione:Per selezionare da un elenco che mostra gli output dei trigger disponibili, fare clic all'interno della casella Messaggio per decodificare . Dopo aver visualizzato l'elenco di contenuto dinamico, in Quando viene ricevuta una richiesta HTTP, selezionare Il valore della proprietà Corpo , ad esempio:
Suggerimento
Se non vengono visualizzati output trigger, nell'elenco delle proprietà dinamiche, in Quando viene ricevuta una richiesta HTTP, selezionare Visualizza altro.
Per immettere un'espressione che fa riferimento all'output del
body
trigger, fare clic all'interno della casella Messaggio per decodificare . Dopo aver visualizzato l'elenco di contenuto dinamico, selezionare Espressione. Nell'editor di espressioni immettere l'espressione seguente e selezionare OK:triggerOutputs()['body']
In alternativa, nella casella Messaggio da decodificare immettere direttamente l'espressione seguente:
@triggerBody()
L'espressione viene risolta nel token Corpo .
Nella proprietà Intestazioni messaggio dell'azione immettere eventuali intestazioni necessarie per l'azione AS2, che si trovano nell'output
headers
del trigger Request.Per immettere un'espressione che fa riferimento all'output del
headers
trigger, selezionare Cambia intestazioni messaggio in modalità testo.Fare clic all'interno della casella Intestazioni messaggio . Dopo aver visualizzato l'elenco di contenuto dinamico, selezionare Espressione. Nell'editor di espressioni immettere l'espressione seguente e selezionare OK:
triggerOutputs()['Headers']
Nell'azione Decode as2 l'espressione viene ora visualizzata come token:
Per ottenere il token di espressione da risolvere nel token Intestazioni , passare dalla finestra di progettazione alla visualizzazione codice. Dopo questo passaggio, l'azione decode AS2 è simile all'esempio seguente:
Aggiungere l'azione Response come ricevuta del messaggio
Per notificare al partner commerciale che il messaggio è stato ricevuto, è possibile restituire una risposta contenente una notifica di eliminazione messaggi AS2 usando le azioni Condizione e Risposta. Aggiungendo queste azioni immediatamente dopo l'azione AS2, il flusso di lavoro dell'app per la logica può continuare l'elaborazione se l'azione AS2 ha esito positivo. In caso contrario, se l'azione AS2 ha esito negativo, il flusso di lavoro dell'app per la logica interrompe l'elaborazione.
Nell'azione Decodifica AS2 selezionare Nuovo passaggio.
Nella casella Di ricerca Scegliere un'operazione selezionare Predefinita, se non è già selezionata. Nella casella di ricerca immettere
condition
. Selezionare l'azione Condizione .Viene visualizzata la forma della condizione, inclusi i percorsi che determinano se la condizione viene soddisfatta.
Specificare ora la condizione da valutare. Nella casella Scegli un valore immettere l'espressione seguente:
@body('AS2_Decode')?['AS2Message']?['MdnExpected']
Nella casella centrale verificare che l'operazione di confronto sia impostata su
is equal to
. Nella casella a destra immettere il valoreExpected
.Salvare il flusso di lavoro dell'app per la logica. Per ottenere l'espressione da risolvere come token, passare dalla finestra di progettazione alla visualizzazione codice.
Specificare ora le risposte da restituire in base al fatto che l'azione decode AS2 abbia esito positivo o meno.
Nel caso in cui l'azione Decode AS2 abbia esito positivo, nella forma True selezionare Aggiungi un'azione. Nella casella Di ricerca Scegliere un'operazione immettere
response
e selezionare Risposta.Per accedere all'MDN AS2 dall'output dell'azione decode as2 , specificare le espressioni seguenti:
Nella proprietà Headers dell'azione Response immettere l'espressione seguente:
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
Nella proprietà Body dell'azione Response immettere l'espressione seguente:
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Per ottenere le espressioni da risolvere come token, passare dalla finestra di progettazione alla visualizzazione codice:
Per il caso in cui l'azione decode AS2 ha esito negativo, nella forma False selezionare Aggiungi un'azione. Nella casella Di ricerca Scegliere un'operazione immettere
response
e selezionare Risposta. Configurare l'azione Response per restituire lo stato e l'errore desiderati.
Salvare il flusso di lavoro dell'app per la logica.
Aggiungere l'azione decodifica del messaggio X12
Aggiungere ora l'azione Decodifica messaggio X12 .
Nell'azione Risposta selezionare Aggiungi un'azione.
In Scegliere un'operazione, nella casella di ricerca immettere
x12 decode
e selezionare Decodifica messaggio X12.Se l'azione X12 richiede informazioni di connessione, specificare il nome per la connessione, selezionare l'account di integrazione che si vuole usare e quindi selezionare Crea.
Specificare ora l'input per l'azione X12. In questo esempio viene usato l'output dell'azione AS2, ovvero il contenuto del messaggio, ma si noti che questo contenuto è in formato oggetto JSON ed è codificato in base64. È quindi necessario convertire questo contenuto in una stringa.
Nella casella di decodifica del messaggio file X12 Flat immettere l'espressione seguente per convertire l'output AS2:
@base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])
Salvare il flusso di lavoro dell'app per la logica. Per ottenere l'espressione da risolvere come token, passare dalla finestra di progettazione alla visualizzazione codice.
Salvare il flusso di lavoro dell'app per la logica.
Se sono necessari passaggi aggiuntivi per questo flusso di lavoro dell'app per la logica, ad esempio per decodificare il contenuto del messaggio e restituire il contenuto in formato oggetto JSON, continuare ad aggiungere le azioni necessarie al flusso di lavoro dell'app per la logica.
È stata completata la configurazione del flusso di lavoro dell'app per la logica B2B. In un'app reale, è possibile archiviare i dati X12 decodificati in un'app line-of-business (LOB) o in un archivio dati. Ad esempio, esaminare la documentazione seguente:
Per connettere app line-of-business personalizzate e usare queste API nell'app per la logica, è possibile aggiungere altre azioni o scrivere API personalizzate.