Scambiare messaggi EDI come batch o gruppi tra partner commerciali in App per la logica di Azure
Si applica a: App per la logica di Azure (A consumo)
In scenari Business-to-Business (B2B) i partner spesso scambiano messaggi in gruppi o in batch. Quando si crea una soluzione di invio in batch con le App per la logica di Azure, è possibile inviare messaggi a partner commerciali ed elaborare tali messaggi in batch. Questo articolo illustra come è possibile creare batch di messaggi EDI di processo, usando X12 ad esempio, creando un'app per la logica "mittente del batch" e un'app per la logica “che riceve il batch".
L'invio in batch di messaggi X12 funziona come l'invio in batch di altri messaggi. Si usa un trigger batch che raccoglie i messaggi in un batch e un'azione batch che invia messaggi al batch. Inoltre, l'invio in batch X12 include un passaggio di codifica X12 prima che i messaggi siano inviati al partner commerciale o a un altro destinatario. Per ulteriori informazioni sui trigger e sulle azioni di batch, vedere Messaggi dei processi batch.
Questo articolo illustra come creare una soluzione batch creando due app per la logica nella stessa sottoscrizione di Azure, area di Azure seguendo questo ordine specifico:
Un’app per la logica "che riceve il batch", che accetta e raccoglie i messaggi in un batch fino a quando non vengono soddisfatti i criteri specificati per il rilascio e l'elaborazione dei messaggi. In questo scenario, il ricevitore del batch codifica anche i messaggi nel batch usando il contratto X12 specificato o le identità dei partner.
Assicurarsi che venga creato prima di tutto il ricevitore del batch in modo che sia possibile selezionare la destinazione di batch in un secondo momento quando si crea il mittente del batch.
Un flusso di lavoro di app per la logica "mittente del batch", che invia i messaggi al ricevitore del batch creato in precedenza.
Assicurarsi che i flussi di lavoro dell'app per la logica del destinatario batch e del mittente batch usino la stessa sottoscrizione di Azure e la stessa area di Azure. In caso contrario, è possibile selezionare il ricevitore del batch quando si crea il mittente del batch perché non sono visibili tra loro.
Prerequisiti
Una sottoscrizione di Azure. Se non hai una sottoscrizione, puoi utilizzare un account di Azure gratuito.
Conoscenza di base su come creare flussi di lavoro delle app per la logica. Per altre informazioni, vedere Creare un esempio di flusso di lavoro dell'app per la logica a consumo in App per la logica di Azure multi-tenant.
Un account di integrazione esistente che è associato alla sottoscrizione di Azure ed è collegato alle App per la logica.
Almeno due partners esistenti nell'account di integrazione. Ogni partner deve usare il qualificatore X12 (Standard Carrier Alpha Code) come identità di business nelle proprietà del partner.
Un contratto X12 esistente nell'account di integrazione.
Per usare Visual Studio anziché il portale di Azure, assicurarsi di configurare Visual Studio per l'uso di App per la logica di Azure.
Installare o usare uno strumento che può inviare richieste HTTP per testare la soluzione, ad esempio:
- Visual Studio Code con un'estensione da Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge - Strumento console di rete
- Bruno
- curl
Attenzione
Per gli scenari in cui sono presenti dati sensibili, ad esempio credenziali, segreti, token di accesso, chiavi API e altre informazioni simili, assicurarsi di usare uno strumento che protegge i dati con le funzionalità di sicurezza necessarie, funziona offline o in locale, non sincronizza i dati nel cloud e non richiede l'accesso a un account online. In questo modo si riduce il rischio di esporre i dati sensibili al pubblico.
Creare il ricevitore del batch X12
Prima di poter inviare messaggi a un batch, il batch deve esistere come destinazione in cui si inviano i messaggi. Quindi, innanzitutto, è necessario creare l'app per la logica "ricevente il batch", che inizia con il trigger del batch. In questo modo, quando si crea l’app per la logica “mittente del batch” è possibile selezionare l’app per la logica ricevente il batch. Il ricevitore del batch continua a raccogliere i messaggi fino a quando non vengono soddisfatti i criteri specificati per il rilascio e l'elaborazione dei messaggi. Anche se non è necessario che i ricevitori di batch conoscano i mittenti di batch, i mittenti di batch devono conoscere la destinazione in cui inviano i messaggi.
Per questo ricevitore di batch, è necessario specificare la modalità di batch, il nome del batch, i criteri di rilascio, il contratto X12 e altre impostazioni.
Nel portale di Azure, Visual Studio o Visual Studio Code creare un'app per la logica con il nome seguente: BatchX12Messages
Nella finestra di progettazione del flusso di lavoro aggiungere il trigger Batch, che avvia il flusso di lavoro dell'app per la logica.
Seguire questi passaggi generali per aggiungere un trigger Batch denominato messaggi batch.
Impostare le proprietà del ricevitore di batch:
Proprietà valore Note Modalità batch Incorporato Nome batch TestBatch Disponibile solo con modalità batch Inline Criteri di rilascio In base al numero di messaggi, In base alla pianificazione Disponibile solo con modalità batch Inline Numero di messaggi 10 Disponibile solo con i criteri di rilascio In base al numero di messaggi Intervallo 10 Disponibile solo con i criteri di rilascio In base alla pianificazione Frequenza minuto Disponibile solo con i criteri di rilascio In base alla pianificazione Nota
In questo esempio non viene configurata una partizione per il batch, pertanto ogni batch usa la stessa chiave di partizione. Per altre informazioni sulle partizioni, vedere Messaggi dei processi batch.
Oar aggiungere un'azione che consenta di codificare ogni batch:
Se la connessione all’account di integrazione non è stata eseguita in precedenza, creare la connessione. Specificare un nome per la connessione, selezionare l'account di integrazione desiderato e poi Crea.
Impostare queste proprietà per l'azione di codificatore batch:
Proprietà Descrizione Nome del contratto X12 Aprire l'elenco e selezionare il contratto esistente. Se l'elenco è vuoto, verificare di aver collegato l'app per la logica all'account di integrazione che dispone del contratto desiderato.
BatchName Fare clic all'interno di questa casella e quando viene visualizzato l'elenco di contenuto dinamico, selezionare il token Nome batch. PartitionName Fare clic all'interno di questa casella e quando viene visualizzato l'elenco di contenuto dinamico, selezionare il token Nome partizione. Articoli Chiudere la finestra dettagli elemento e quindi fare clic all'interno di questa casella. Quando viene visualizzato l'elenco di contenuto dinamico, selezionare il token Elementi in batch. Per la casella elementi:
Salvare il flusso di lavoro dell'app per la logica.
Se si usa Visual Studio, assicurarsi di distribuire l'app per la logica che riceve il batch in Azure. In caso contrario, non è possibile selezionare il ricevitore di batch quando si crea il mittente del batch.
Testare il flusso di lavoro
Per assicurarsi che il ricevitore di batch funzioni nel modo previsto, è possibile aggiungere un'azione HTTP per scopi di test e inviare un messaggio in batch al servizio contenitore richieste.
Seguire questi passaggi generali per aggiungere l'azione HTTP denominata HTTP.
Impostare le proprietà per l'azione HTTP:
Proprietà Descrizione Metodo Selezionare POST dall'elenco. URI Generare un URI per il contenitore delle richieste e immetterlo. Testo Fare clic all'interno di questa casella e dopo aver aperto l'elenco di contenuto dinamico, selezionare il token corpo, che viene visualizzato nella sezione Codifica in batch in base al nome di contratto. Se il token Corpo non è visualizzato, selezionare Vedi altri accanto a Codifica in batch in base al nome del contratto.
Salvare il flusso di lavoro.
L'app per la logica del ricevitore batch è simile all'esempio seguente:
Creare il mittente del batch X12
A questo punto creare una o più app per la logica che inviano messaggi all’app per la logica che riceve il batch. In ogni mittente del batch specificare l’app per la logica che riceve il batch, il nome del batch, il contenuto del messaggio ed eventuali altre impostazioni. È possibile specificare anche una chiave di partizione univoca per dividere il batch in subset che raccolgano i messaggi a cui è assegnata tale chiave.
Assicurarsi di aver già creato il ricevitore batch. In questo modo, quando si crea il mittente del batch, è possibile selezionare il ricevitore batch esistente come batch di destinazione. Anche se non è necessario che i ricevitori di batch conoscano i mittenti di batch, i mittenti di batch devono conoscere la destinazione in cui inviano i messaggi.
Assicurarsi che i flussi di lavoro dell'app per la logica del destinatario batch e del mittente batch usino la stessa sottoscrizione di Azure e la stessa area di Azure. In caso contrario, è possibile selezionare il ricevitore del batch quando si crea il mittente del batch perché non sono visibili tra loro.
Creare un'altra app per la logica con il seguente nome: SendX12MessagesToBatch
Per aggiungere un'azione per l'invio di messaggi a un batch, seguire questa procedura generale per aggiungere un'azione Invia messaggi a batch denominata Scegliere un flusso di lavoro di App per la logica con trigger batch.
Selezionare l'app per la logica BatchX12Messages creata in precedenza.
Selezionare l'azione BatchX12Messages denominata Batch_messages -< your-batch-receiver >.
Impostare le proprietà del mittente del batch.
Proprietà Descrizione Nome batch Il nome del batch definito dall'app per la logica ricevente, che in questo esempio è "TestBatch" Importante: il nome del batch viene convalidato in fase di esecuzione e deve corrispondere al nome specificato dall'app per la logica ricevente. Se si modifica il nome del batch, l'esecuzione del mittente del batch ha esito negativo.
Contenuto del messaggio Il contenuto del messaggio da inviare, ovvero il token corpo in questo esempio Salvare il flusso di lavoro.
L'app per la logica mittente del batch avrà un aspetto simile all'esempio seguente:
Testare i flussi di lavoro
Per testare la soluzione di invio in batch, inviare messaggi X12 al flusso di lavoro dell'app per la logica del mittente batch usando lo strumento di richiesta HTTP e le relative istruzioni. Presto si dovrebbe iniziare a ricevere i messaggi X12 nel contenitore di richieste, o ogni dieci minuti o in batch da dieci, il tutto con la stessa chiave di partizione.