Share via


Troque mensagens B2B entre parceiros usando fluxos de trabalho nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Standard)

Quando você tem uma conta de integração que define parceiros e contratos comerciais, é possível criar um fluxo de trabalho B2B automatizado que troca mensagens entre parceiros comerciais usando Aplicativos Lógicos do Azure. Seu fluxo de trabalho pode usar conectores que compatíveis com protocolos padrão do setor, como AS2, X12, EDIFACT e RosettaNet. Também é possível incluir operações fornecidas por outros conectores nos Aplicativos Lógicos do Azure, como Office 365 Outlook, SQL Server e Salesforce.

Este artigo mostra como criar um exemplo de fluxo de trabalho do aplicativo lógico que recebe solicitações HTTP usando um gatilho de Solicitação, decodifica o conteúdo da mensagem usando as ações Decodificar AS2 e Decodificar X12 e, em seguida, retorna uma resposta usando a ação de Resposta. Este exemplo usa o designer de fluxo de trabalho no portal do Azure, mas você pode seguir etapas semelhantes para o designer de fluxo de trabalho no Visual Studio.

Se ainda não estiver familiarizado com os aplicativos lógicos, veja O que são os Aplicativos Lógicos do Azure? Para mais informações sobre a integração empresarial B2B, confira Fluxos de trabalho de integração empresarial B2B com Aplicativos Lógicos do Azure.

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Caso ainda não tenha uma assinatura, inscreva-se em uma conta gratuita do Azure.

  • Um recurso de conta de integração no qual você define e armazena artefatos, como parceiros comerciais, contratos, certificados e assim por diante, para usar em seus fluxos de trabalho de integração empresarial e B2B. O recurso precisa atender aos seguintes requisitos:

    • Estar associado à mesma assinatura do Azure que o recurso de aplicativo lógico.

    • Existe no mesmo local ou região do Azure que o recurso do aplicativo lógico.

    • Se você estiver usando o tipo de recurso Aplicativo Lógico (consumo), sua conta de integração exigirá um link para o recurso do aplicativo lógico antes de poder usar artefatos no fluxo de trabalho.

    • Se você estiver usando o tipo de recurso Aplicativo lógico (padrão), sua conta de integração não precisará de um link para o recurso do aplicativo lógico, mas ainda será necessário armazenar outros artefatos, como parceiros, contratos e certificados, além de usar as operações AS2, X12 ou EDIFACT. Sua conta de integração ainda precisa atender a outros requisitos, como usar a mesma assinatura do Azure e existir no mesmo local que o recurso do aplicativo lógico.

    Observação

    Atualmente, somente o tipo de recurso Aplicativo Lógico (consumo) oferece suporte a operações RosettaNet. O tipo de recurso Aplicativo Lógico (Padrão) não inclui operações RosettaNet.

  • Pelo menos dois parceiros comerciais na conta de integração. As definições para os dois parceiros devem usar o mesmo qualificador de identidade de negócios, que são AS2, X12, EDIFACT ou RosettaNet.

  • Um contrato AS2 e um contrato X12 para os parceiros que você está usando neste fluxo de trabalho. Cada contrato requer um parceiro de host e um parceiro convidado.

  • Um recurso de aplicativo lógico com um fluxo de trabalho em branco no qual você pode adicionar o gatilho de Solicitação e, em seguida, as seguintes ações:

Adicionar o gatilho de Solicitação

Para iniciar o fluxo de trabalho neste exemplo, adicione o gatilho de Solicitação.

  1. No portal do Azure, abra o recurso do aplicativo lógico e o fluxo de trabalho em branco no designer de fluxo de trabalho.

  2. Na caixa de pesquisa do designer, selecione Tudo, se não estiver selecionado. Na caixa de pesquisa, insira when a http request. Selecione o gatilho de Solicitação chamado Quando uma solicitação HTTP é recebida.

    Captura de tela mostrando o portal do Azure e o designer multilocatário com

  3. No gatilho, deixe a caixa Esquema JSON do corpo da solicitação vazia.

    O motivo é que o gatilho receberá uma mensagem X12 no formato de arquivo simples.

    Captura de tela mostrando o designer multilocatário e as propriedades do gatilho de Solicitação.

  4. Quando terminar, selecione Salvar na barra de ferramentas do designer.

    Esta etapa gera a URL HTTP POST que você usará depois para enviar uma solicitação que dispara o fluxo de trabalho do aplicativo lógico.

    Uma captura de tela mostrando o designer multilocatário e a URL gerada para o gatilho de Solicitação.

  5. Copie e salve a URL para uso posterior.

Adicione a ação Decodificar AS2

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

  1. No gatilho, selecione Nova etapa.

    Dica

    Para ocultar os detalhes do gatilho de Solicitação, selecione a barra de título do gatilho.

    Captura de tela mostrando o designer multilocatário e o gatilho com a

  2. Na caixa de pesquisa Escolher uma operação, selecione Tudo. Na caixa de pesquisa, insira as2 e selecione Decodificar AS2.

    Captura de tela mostrando o designer multilocatário com a ação

  3. Na propriedade Mensagem para decodificar, insira a entrada que deseja que a ação AS2 decodifique, que é a saída body do gatilho de Solicitação. Há várias maneiras de especificar esse conteúdo como entrada da ação, seja selecionando na lista de conteúdo dinâmico ou como uma expressão:

    • Para selecionar em uma lista que mostra as saídas de gatilho disponíveis, clique dentro da caixa de Mensagem para decodificar. Depois que a lista de conteúdo dinâmico aparecer, em Quando uma solicitação HTTP for recebida, selecione o valor da propriedade Body, por exemplo:

      Uma captura de tela mostrando o designer multilocatário com a lista de conteúdo dinâmico e a propriedade

      Dica

      Se nenhuma saída de gatilho aparecer, na lista de propriedade dinâmica, em Quando uma solicitação HTTP for recebida, selecione Ver mais.

    • Para inserir uma expressão que faz referência à saída do gatilhobody, clique na caixa Mensagem a ser decodificada. Na lista de conteúdo dinâmico exibida, selecione Expressão. No editor de expressão, insira a expressão a seguir e selecione OK:

      triggerOutputs()['body']

      Ou, na caixa Mensagem para decodificar, insira diretamente a expressão a seguir:

      @triggerBody()

      A expressão é resolvida para o token de Corpo.

      Captura de tela mostrando o designer multilocatário com saída da propriedade

  4. Na propriedade Cabeçalhos de mensagem da ação, insira os cabeçalhos necessários para a ação AS2, que estão na saída headers do gatilho de Solicitação.

    1. Para inserir uma expressão que faz referência à saída do gatilho headers, selecione Alternar cabeçalhos de mensagem para o modo de texto.

      Captura de tela mostrando o designer multilocatário com

    2. Clique dentro da caixa Cabeçalhos da mensagem. Na lista de conteúdo dinâmico exibida, selecione Expressão. No editor de expressão, insira a expressão a seguir e selecione OK:

      triggerOutputs()['Headers']

      Na ação Decodificar AS2, a expressão agora é exibida como um token:

      Captura de tela mostrando o designer multilocatário e a caixa

    3. Para obter o token de expressão a ser resolvido no token de Cabeçalhos, alterne entre o designer e o modo de exibição de código. Após essa etapa, a ação Decodificar AS2 será semelhante a este exemplo:

      Captura de tela mostrando o designer multilocatário e a saída de cabeçalhos resolvida do gatilho.

Adicione a ação de Resposta como um recebimento de mensagem

Para notificar o parceiro comercial de que a mensagem foi recebida, você pode retornar uma resposta que contém uma notificação de disposição de mensagens AS2 (MDN) usando as ações de Condição e Resposta. Ao adicionar essas ações imediatamente após a ação AS2, o fluxo de trabalho do aplicativo lógico poderá continuar processando se a ação AS2 for realizada com sucesso. Caso contrário, se a ação AS2 falhar, o fluxo de trabalho do aplicativo lógico interromperá o processamento.

  1. Na ação Decodificar AS2, selecione Nova etapa.

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

    Captura de tela mostrando o designer multilocatário e a ação

    Agora, a forma da condição é exibida, incluindo os caminhos que determinam se a condição foi atendida.

    Captura de tela mostrando o designer multilocatário e a forma da condição com caminhos vazios.

  3. Agora, especifique a condição a ser avaliada. Na caixa Escolher um valor. insira expressão a seguir:

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

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

  4. Salve o fluxo de trabalho do aplicativo lógico. Para obter o token de expressão a ser resolvido como esse token, alterne entre o designer e a exibição de código.

    Captura de tela mostrando o designer multilocatário e a forma da condição com uma operação.

  5. Agora, especifique as respostas para retornar com base em se a ação de Decodificar AS2 foi bem-sucedida ou não.

    1. Para o caso em que a ação Decodificar AS2 for bem-sucedida, na forma True, selecione Adicionar uma ação. Na caixa de pesquisa Escolher uma operação, na caixa de pesquisa, insira response e selecione Resposta.

      Captura de tela mostrando o designer multilocatário e a ação

    2. Para acessar o MDN AS2 da saída da ação de Decodificar AS2, especifique as expressões a seguir:

      • Na propriedade Cabeçalhos da ação de Resposta, insira a expressão a seguir:

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

      • Na propriedade Corpo da ação de Resposta, insira a expressão a seguir:

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

    3. Para obter as expressões a ser resolvidas como tokens, alterne entre o designer e a exibição de código:

      Captura de tela mostrando o designer multilocatário e a expressão resolvida para acessar o MDN AS2.

    4. Para o caso em que a ação Decodificar AS2 falhar, na forma False, selecione Adicionar uma ação. Na caixa de pesquisa Escolher uma operação, na caixa de pesquisa, insira response e selecione Resposta. Configure a ação de Resposta para retornar o status e o erro que deseja.

  6. Salve o fluxo de trabalho do aplicativo lógico.

Adicione a ação de decodificar mensagem X12

Agora, adicione a ação de mensagem Decodificar X12.

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

  2. Em Escolher uma operação, na caixa de pesquisa, insira x12 decode e selecione Decodificar mensagem X12.

    Captura de tela mostrando o designer multilocatário e a ação

  3. Se a ação X12 solicitar informações de conexão, forneça o nome para a conexão, selecione a conta de integração que deseja usar e, em seguida, selecione Criar.

    Captura de tela mostrando o designer multilocatário e a conexão com a conta de integração.

  4. Agora, especifique a entrada para a ação X12. Este exemplo usa a saída da ação AS2, que é o conteúdo da mensagem, mas observe que esse conteúdo está no formato de objeto JSON e é codificado em base64. Portanto, você precisa converter este conteúdo em uma cadeia de caracteres.

    Na caixa Mensagem de arquivo simples X12 para decodificação, insira expressão a seguir para converter a saída AS2:

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

  5. Salve o fluxo de trabalho do aplicativo lógico. Para obter o token de expressão a ser resolvido como esse token, alterne entre o designer e a exibição de código.

    Captura de tela mostrando o designer multilocatário e a conversão do conteúdo codificado na base64 em uma cadeia de caracteres.

  6. Salve o fluxo de trabalho do aplicativo lógico.

    Se precisar de etapas adicionais para esse fluxo de trabalho do aplicativo lógico, por exemplo, para decodificar o conteúdo da mensagem e gerar esse conteúdo no formato de objeto JSON, continue adicionando as ações necessárias ao seu fluxo de trabalho do aplicativo lógico.

Você concluiu a configuração do fluxo de trabalho do aplicativo lógico de B2B. Em um aplicativo real, convém armazenar os dados X12 decodificados em um aplicativo LOB (linha de negócios) ou no armazenamento de dados. Por exemplo, revise a seguinte documentação:

É possível adicionar mais ações ou gravar APIs personalizadas para conectar a seus próprios aplicativos LOB e usar essas APIs em seu aplicativo lógico.

Próximas etapas