Mensagens do Exchange B2B entre parceiros que utilizam fluxos de trabalho no Azure Logic Apps

Aplica-se a: Azure Logic Apps (Consumo + Standard)

Quando tem uma conta de integração que define parceiros comerciais e contratos, pode criar um fluxo de trabalho empresarial (B2B) automatizado que troca mensagens entre parceiros comerciais com o Azure Logic Apps. O fluxo de trabalho pode utilizar conectores que suportem protocolos padrão da indústria, como AS2, X12, EDIFACT e RosettaNet. Também pode incluir operações fornecidas por outros conectores no Azure Logic Apps, como Office 365 Outlook, SQL Server e Salesforce.

Este artigo mostra como criar um fluxo de trabalho de aplicação lógica de exemplo que pode receber pedidos HTTP com um Acionador de pedidos , descodificar conteúdos de mensagens com as ações Descodificar e Descodificar X12 do AS2 e devolver uma resposta com a ação Resposta . O exemplo utiliza o estruturador de fluxos de trabalho no portal do Azure, mas pode seguir passos semelhantes para o estruturador de fluxos de trabalho no Visual Studio.

Se não estiver familiarizado com aplicações lógicas, veja O que é o Azure Logic Apps? Para obter mais informações sobre a integração empresarial B2B, veja B2B enterprise integration workflows with Azure Logic Apps (Fluxos de trabalho de integração empresarial B2B com o Azure Logic Apps).

Pré-requisitos

  • Uma conta e subscrição do Azure. Se ainda não tiver uma subscrição, inscreva-se numa conta gratuita do Azure.

  • Um recurso de conta de integração onde define e armazena artefactos, como parceiros comerciais, contratos, certificados, etc., para utilização na integração empresarial e fluxos de trabalho B2B. Este recurso tem de cumprir os seguintes requisitos:

    • Está associado à mesma subscrição do Azure que o recurso da aplicação lógica.

    • Existe na mesma localização ou região do Azure que o recurso da aplicação lógica.

    • Se estiver a utilizar o tipo de recurso da Aplicação Lógica (Consumo), a sua conta de integração necessita de uma ligação para o recurso da aplicação lógica antes de poder utilizar artefactos no fluxo de trabalho.

    • Se estiver a utilizar o tipo de recurso da Aplicação Lógica (Standard), a sua conta de integração não precisa de uma ligação para o recurso da aplicação lógica, mas ainda é necessária para armazenar outros artefactos, como parceiros, contratos e certificados, juntamente com a utilização das operações AS2, X12 ou EDIFACT. A sua conta de integração ainda tem de cumprir outros requisitos, como utilizar a mesma subscrição do Azure e existir na mesma localização que o recurso da aplicação lógica.

    Nota

    Atualmente, apenas o tipo de recurso da Aplicação Lógica (Consumo) suporta operações rosettaNet . O tipo de recurso da Aplicação Lógica (Standard) não inclui operações rosettaNet .

  • Pelo menos dois parceiros comerciais na sua conta de integração. As definições para ambos os parceiros têm de utilizar o mesmo qualificador de identidade empresarial , que é AS2, X12, EDIFACT ou RosettaNet.

  • Um contrato AS2 e um contrato X12 para os parceiros que está a utilizar neste fluxo de trabalho. Cada contrato requer um parceiro anfitrião e um parceiro convidado.

  • Um recurso de aplicação lógica com um fluxo de trabalho em branco onde pode adicionar o acionador Pedir e, em seguida, as seguintes ações:

Adicionar o acionador De pedido

Para iniciar o fluxo de trabalho neste exemplo, adicione o acionador Pedir.

  1. No portal do Azure, abra o recurso da aplicação lógica e o fluxo de trabalho em branco no estruturador do fluxo de trabalho.

  2. Na caixa de pesquisa do estruturador, selecione Tudo, se não estiver selecionado. Na caixa de pesquisa, introduza when a http request. Selecione o acionador Pedir com o nome Quando é recebido um pedido HTTP.

    Captura de ecrã a mostrar portal do Azure e estruturador multi-inquilino com

  3. No acionador, deixe a caixa Esquema JSON do corpo do pedido vazia.

    O motivo é que o acionador receberá uma mensagem X12 no formato de ficheiro simples.

    Captura de ecrã a mostrar o estruturador multi-inquilino e as propriedades do Acionador de pedidos.

  4. Quando terminar, na barra de ferramentas do estruturador, selecione Guardar.

    Este passo gera o URL HTTP POST que utiliza mais tarde para enviar um pedido que aciona o fluxo de trabalho da aplicação lógica.

    Captura de ecrã a mostrar o estruturador multi-inquilino e o URL gerado para o Acionador de pedidos.

  5. Copie e guarde o URL para utilizar mais tarde.

Adicionar a ação de descodificar AS2

Agora, adicione as ações B2B para este exemplo, que utiliza as ações AS2 e X12.

  1. Por baixo do acionador, selecione Novo passo.

    Dica

    Para ocultar os detalhes do Acionador do pedido, selecione a barra de título do acionador.

    Captura de ecrã a mostrar o estruturador multi-inquilino e o acionador com

  2. Na caixa de pesquisa Escolher uma operação , selecione Tudo, se não estiver selecionado. Na caixa de pesquisa, introduza as2e selecione AS2 Descodificar.

    Captura de ecrã a mostrar o estruturador multi-inquilino com a ação

  3. Na propriedade Mensagem da ação para descodificar , introduza a entrada que pretende que a ação AS2 descodifique, que é a body saída do acionador Pedido. Tem várias formas de especificar este conteúdo como entrada da ação ao selecionar a partir da lista de conteúdos dinâmicos ou como uma expressão:

    • Para selecionar a partir de uma lista que mostra as saídas do acionador disponíveis, clique dentro da caixa Mensagem para descodificar . Depois de a lista de conteúdos dinâmicos aparecer, em Quando um pedido HTTP é recebido, selecione Valor da propriedade Corpo , por exemplo:

      Captura de ecrã a mostrar o estruturador multi-inquilino com a lista de conteúdos dinâmicos e a propriedade

      Dica

      Se não forem apresentadas saídas de acionadores, na lista de propriedades dinâmicas, em Quando é recebido um pedido HTTP, selecione Ver mais.

    • Para introduzir uma expressão que faça referência à saída do body acionador, clique dentro da caixa Mensagem para descodificar . Depois de a lista de conteúdos dinâmicos aparecer, selecione Expressão. No editor de expressões, introduza a seguinte expressão e selecione OK:

      triggerOutputs()['body']

      Em alternativa, na caixa Mensagem a descodificar , introduza diretamente a seguinte expressão:

      @triggerBody()

      A expressão é resolvida para o token Corpo .

      Captura de ecrã a mostrar o estruturador multi-inquilino com a saída da propriedade

  4. Na propriedade Cabeçalhos de mensagens da ação, introduza os cabeçalhos necessários para a ação AS2, que estão na headers saída do acionador Pedido.

    1. Para introduzir uma expressão que faça referência à saída do headers acionador, selecione Mudar cabeçalhos de mensagem para o modo de texto.

      Captura de ecrã a mostrar o estruturador multi-inquilino com a opção

    2. Clique dentro da caixa Cabeçalhos de mensagem. Depois de a lista de conteúdos dinâmicos aparecer, selecione Expressão. No editor de expressões, introduza a seguinte expressão e selecione OK:

      triggerOutputs()['Headers']

      Na ação Descodificar AS2 , a expressão aparece agora como um token:

      Captura de ecrã a mostrar o estruturador multi-inquilino e a caixa

    3. Para que o token de expressão seja resolvido no token Cabeçalhos , alterne entre o estruturador e a vista de código. Após este passo, a ação Descodificar AS2 tem o seguinte aspeto:

      Captura de ecrã a mostrar o estruturador multi-inquilino e a saída dos cabeçalhos resolvidos a partir do acionador.

Adicionar a ação Resposta como recibo de mensagem

Para notificar o parceiro comercial de que a mensagem foi recebida, pode devolver uma resposta que contém uma Notificação de Eliminação de Mensagens (MDN) AS2 através das ações Condição e Resposta. Ao adicionar estas ações imediatamente após a ação AS2, o fluxo de trabalho da aplicação lógica pode continuar a processar se a ação AS2 for bem-sucedida. Caso contrário, se a ação AS2 falhar, o fluxo de trabalho da aplicação lógica deixa de ser processado.

  1. Na ação Descodificar AS2 , selecione Novo passo.

  2. Na caixa de pesquisa Escolher uma operação , selecione Incorporado, se ainda não estiver selecionado. Na caixa de pesquisa, introduza condition. Selecione a ação Condição .

    Captura de ecrã a mostrar o estruturador multi-inquilino e a ação

    Agora, a forma da condição é apresentada, incluindo os caminhos que determinam se a condição é cumprida.

    Captura de ecrã a mostrar o estruturador multi-inquilino e a forma da condição com caminhos vazios.

  3. Agora, especifique a condição a avaliar. Na caixa Escolher um valor , introduza a seguinte expressão:

    @body('AS2_Decode')?['AS2Message']?['MdnExpected']

    Na caixa do meio, certifique-se de que a operação de comparação está definida como is equal to. Na caixa do lado direito, introduza o valor Expected.

  4. Guarde o fluxo de trabalho da aplicação lógica. Para que a expressão seja resolvida como este token, alterne entre o estruturador e a vista de código.

    Captura de ecrã a mostrar o estruturador multi-inquilino e a forma de condição com uma operação.

  5. Agora, especifique as respostas a devolver com base no facto de a ação Descodificar AS2 ser ou não bem-sucedida.

    1. Se a ação Descodificar AS2 for bem-sucedida, na forma Verdadeiro , selecione Adicionar uma ação. Na caixa de pesquisa Escolher uma operação , introduza responsee selecione Resposta.

      Captura de ecrã a mostrar o estruturador multi-inquilino e a ação

    2. Para aceder ao MDN AS2 a partir da saída da ação DEscodificar AS2 , especifique as seguintes expressões:

      • Na propriedade Cabeçalhos da ação De resposta, introduza a seguinte expressão:

        @body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']

      • Na propriedade Corpo da ação Response, introduza a seguinte expressão:

        @body('AS2_Decode')?['OutgoingMdn']?['Content']

    3. Para que as expressões possam ser resolvidas como tokens, alterne entre o estruturador e a vista de código:

      Captura de ecrã a mostrar o estruturador multi-inquilino e a expressão resolvida para aceder ao AS2 MDN.

    4. Para o caso em que a ação Descodificar AS2 falhar, na forma Falso , selecione Adicionar uma ação. Na caixa de pesquisa Escolher uma operação , introduza responsee selecione Resposta. Configure a ação Resposta para devolver o estado e o erro pretendidos.

  6. Guarde o fluxo de trabalho da aplicação lógica.

Adicionar a ação de descodificar mensagem X12

Agora, adicione a ação Descodificar mensagem X12 .

  1. Na ação Resposta , selecione Adicionar uma ação.

  2. Em Escolher uma operação, na caixa de pesquisa, introduza x12 decodee selecione Descodificar mensagem X12.

    Captura de ecrã a mostrar o estruturador multi-inquilino e a ação

  3. Se a ação X12 lhe pedir informações de ligação, indique o nome da ligação, selecione a conta de integração que pretende utilizar e, em seguida, selecione Criar.

    Captura de ecrã a mostrar o estruturador multi-inquilino e a ligação à conta de integração.

  4. Agora, especifique a entrada para a ação X12. Este exemplo utiliza o resultado da ação AS2, que é o conteúdo da mensagem, mas tenha em atenção que este conteúdo está no formato de objeto JSON e está codificado em base64. Por isso, tem de converter este conteúdo numa cadeia.

    Na caixa X12 Flat file message to decode (Ficheiro simples X12 para descodificar ), introduza a seguinte expressão para converter a saída AS2:

    @base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])

  5. Guarde o fluxo de trabalho da aplicação lógica. Para que a expressão seja resolvida como este token, alterne entre o estruturador e a vista de código.

    Captura de ecrã a mostrar o estruturador multi-inquilino e a conversão de conteúdo codificado com base64 para uma cadeia.

  6. Guarde o fluxo de trabalho da aplicação lógica.

    Se precisar de passos adicionais para este fluxo de trabalho de aplicação lógica, por exemplo, para descodificar o conteúdo da mensagem e exportar esse conteúdo no formato de objeto JSON, continue a adicionar as ações necessárias ao fluxo de trabalho da aplicação lógica.

Acabou de configurar o fluxo de trabalho da aplicação lógica B2B. Numa aplicação do mundo real, poderá querer armazenar os dados X12 descodificados numa aplicação de linha de negócio (LOB) ou arquivo de dados. Por exemplo, reveja a seguinte documentação:

Para ligar as suas próprias aplicações LOB e utilizar estas APIs na sua aplicação lógica, pode adicionar mais ações ou escrever APIs personalizadas.

Passos seguintes