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:

Aggiungere il trigger Request

Per avviare il flusso di lavoro in questo esempio, aggiungere il trigger Request.

  1. 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.

  2. 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.

    Screenshot che mostra portale di Azure e progettazione multi-tenant con

  3. 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.

    Screenshot che mostra le proprietà del trigger multi-tenant e Request trigger.

  4. 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.

    Screenshot che mostra la finestra di progettazione multi-tenant e l'URL generato per il trigger di richiesta.

  5. 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.

  1. Nel trigger selezionare Nuovo passaggio.

    Suggerimento

    Per nascondere i dettagli del trigger della richiesta, selezionare la barra del titolo del trigger.

    Screenshot che mostra la finestra di progettazione multi-tenant e il trigger con

  2. Nella casella Di ricerca Scegliere un'operazione selezionare Tutto, se non selezionato. Nella casella di ricerca immettere as2e selezionare DEcode AS2.

    Screenshot che mostra la finestra di progettazione multi-tenant con l'azione

  3. 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:

      Screenshot che mostra la finestra di progettazione multi-tenant con l'elenco di contenuto dinamico e la proprietà

      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 .

      Screenshot che mostra la finestra di progettazione multi-tenant con l'output della proprietà

  4. Nella proprietà Intestazioni messaggio dell'azione immettere eventuali intestazioni necessarie per l'azione AS2, che si trovano nell'output headers del trigger Request.

    1. Per immettere un'espressione che fa riferimento all'output del headers trigger, selezionare Cambia intestazioni messaggio in modalità testo.

      Screenshot che mostra la finestra di progettazione multi-tenant con l'opzione

    2. 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:

      Screenshot che mostra la finestra di progettazione multi-tenant e la casella

    3. 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:

      Screenshot che mostra la finestra di progettazione multi-tenant e l'output delle intestazioni risolte dal trigger.

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.

  1. Nell'azione Decodifica AS2 selezionare Nuovo passaggio.

  2. Nella casella Di ricerca Scegliere un'operazione selezionare Predefinita, se non è già selezionata. Nella casella di ricerca immettere condition. Selezionare l'azione Condizione .

    Screenshot che mostra la finestra di progettazione multi-tenant e l'azione

    Viene visualizzata la forma della condizione, inclusi i percorsi che determinano se la condizione viene soddisfatta.

    Screenshot che mostra la finestra di progettazione multi-tenant e la forma della condizione con percorsi vuoti.

  3. 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 valore Expected.

  4. 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.

    Screenshot che mostra la finestra di progettazione multi-tenant e la forma della condizione con un'operazione.

  5. Specificare ora le risposte da restituire in base al fatto che l'azione decode AS2 abbia esito positivo o meno.

    1. 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 responsee selezionare Risposta.

      Screenshot che mostra la finestra di progettazione multi-tenant e l'azione

    2. 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']

    3. Per ottenere le espressioni da risolvere come token, passare dalla finestra di progettazione alla visualizzazione codice:

      Screenshot che mostra la finestra di progettazione multi-tenant e l'espressione risolta per accedere a MDN AS2.

    4. 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 responsee selezionare Risposta. Configurare l'azione Response per restituire lo stato e l'errore desiderati.

  6. Salvare il flusso di lavoro dell'app per la logica.

Aggiungere l'azione decodifica del messaggio X12

Aggiungere ora l'azione Decodifica messaggio X12 .

  1. Nell'azione Risposta selezionare Aggiungi un'azione.

  2. In Scegliere un'operazione, nella casella di ricerca immettere x12 decodee selezionare Decodifica messaggio X12.

    Screenshot che mostra la finestra di progettazione multi-tenant e l'azione

  3. 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.

    Screenshot che mostra la finestra di progettazione multi-tenant e la connessione all'account di integrazione.

  4. 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'])

  5. 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.

    Screenshot che mostra la finestra di progettazione multi-tenant e la conversione da contenuto con codifica Base64 a una stringa.

  6. 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.

Passaggi successivi