Partilhar via


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

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Quando tem uma conta de integração que define parceiros comerciais e contratos, pode criar um fluxo de trabalho automatizado entre empresas (B2B) que troca mensagens entre parceiros comerciais utilizando as Aplicações Lógicas do Azure. Seu fluxo de trabalho pode usar conectores que suportam protocolos padrão do setor, como AS2, X12, EDIFACT e RosettaNet. Você também pode incluir operações fornecidas por outros conectores em Aplicativos Lógicos do Azure, como Office 365 Outlook, SQL Server e Salesforce.

Este artigo mostra como criar um fluxo de trabalho de aplicativo lógico de exemplo que pode receber solicitações HTTP usando um gatilho de solicitação, decodificar o conteúdo da mensagem usando as ações Decodificar e decodificar X12 AS2 e retornar uma resposta usando a ação Resposta. O 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 Code.

Se você é novo em aplicativos lógicos, consulte O que são os Aplicativos Lógicos do Azure? Para obter mais informações sobre integração empresarial B2B, consulte Fluxos de trabalho de integração empresarial B2B com Aplicativos Lógicos do Azure.

Pré-requisitos

Adicionar o gatilho de solicitação

Para iniciar o fluxo de trabalho neste exemplo, adicione o gatilho Request.

  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 Todos, se não estiver selecionado. Na caixa de pesquisa, introduza 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 em formato de arquivo simples.

    Captura de tela mostrando as propriedades do designer multilocatário e do gatilho Request.

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

    Esta etapa gera a URL HTTP POST que você usa posteriormente para enviar uma solicitação que aciona o fluxo de trabalho do aplicativo lógico.

    Captura de tela mostrando o designer multilocatário e a URL gerada para o gatilho de solicitação.

  5. Copie e salve o URL para usar mais tarde.

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

    Gorjeta

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

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

  2. Na caixa de pesquisa Escolha uma operação, selecione Todos, se não estiver selecionado. Na caixa de pesquisa, digite as2e selecione Decodificação AS2.

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

  3. Na propriedade Message to decode da ação, insira a entrada que você deseja que a ação AS2 decodifice, que é a body saída do gatilho Request. Você tem várias maneiras de especificar esse conteúdo como entrada da ação, 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 Mensagem para decodificar . Depois que a lista de conteúdo dinâmico for exibida, em Quando uma solicitação HTTP for recebida, selecione Valor da propriedade Corpo , por exemplo:

      Captura de tela mostrando designer multilocatário com lista de conteúdo dinâmico e propriedade

      Gorjeta

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

    • Para inserir uma expressão que faça referência à saída do body gatilho, clique dentro da caixa Mensagem para decodificar . Depois que a lista de conteúdo dinâmico for exibida, selecione Expressão. No editor de expressões, insira a seguinte expressão e selecione OK:

      triggerOutputs()['body']

      Ou, na caixa Mensagem para decodificar , digite diretamente a seguinte expressão:

      @triggerBody()

      A expressão é resolvida para o token Body .

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

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

    1. Para inserir uma expressão que faça referência à saída do gatilho, selecione Alternar cabeçalhos headers 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. Depois que a lista de conteúdo dinâmico for exibida, selecione Expressão. No editor de expressões, insira a seguinte expressão e selecione OK:

      triggerOutputs()['Headers']

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

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

    3. Para obter o token de expressão para resolver no token Headers, alterne entre o designer e a visualização de código. Após esta etapa, a ação Decodificar AS2 se parece com este exemplo:

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

Adicionar a ação Resposta como um recibo de mensagem

Para notificar o parceiro comercial de que a mensagem foi recebida, você pode retornar uma resposta que contenha uma Notificação de Disposição de Mensagem (MDN) AS2 usando as ações Condição e Resposta. Ao adicionar essas ações imediatamente após a ação AS2, o fluxo de trabalho do aplicativo lógico pode continuar processando se a ação AS2 for bem-sucedida. 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 Escolha 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 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 é atendida.

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

  3. Agora especifique a condição a ser avaliada. Na caixa Escolha um valor, digite a seguinte expressão:

    @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 seu fluxo de trabalho de aplicativo lógico. Para obter a expressão a ser resolvida como esse token, alterne entre o designer e a visualizaçã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 a serem retornadas com base no êxito ou não da ação de decodificação AS2.

    1. Para o caso em que a ação Decodificar AS2 for bem-sucedida, na forma Verdadeiro, selecione Adicionar uma ação. Na caixa Escolha uma pesquisa de operação, digite responsee selecione Resposta.

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

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

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

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

      • Na propriedade Body da ação Response, insira a seguinte expressão:

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

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

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

    4. Para o caso em que a ação Decodificar AS2 falhar, na forma Falso, selecione Adicionar uma ação. Na caixa Escolha uma pesquisa de operação, digite responsee selecione Resposta. Configure a ação Resposta para retornar o status e o erro desejados.

  6. Salve seu fluxo de trabalho de aplicativo lógico.

Adicionar a ação de mensagem X12 de decodificação

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

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

  2. Em Escolha uma operação, na caixa de pesquisa, digite x12 decodee 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 da conexão, selecione a conta de integração que deseja usar e 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. Então, você tem que converter esse conteúdo em uma cadeia de caracteres.

    Na caixa X12 Flat file message to decode, digite a seguinte expressão para converter a saída AS2:

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

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

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

  6. Salve seu fluxo de trabalho de aplicativo lógico.

    Se você 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 fluxo de trabalho do aplicativo lógico.

Agora você terminou de configurar seu fluxo de trabalho de aplicativo lógico B2B. Em um aplicativo do mundo real, talvez você queira armazenar os dados X12 decodificados em um aplicativo de linha de negócios (LOB) ou armazenamento de dados. Por exemplo, revise a seguinte documentação:

Para conectar seus próprios aplicativos LOB e usar essas APIs em seu aplicativo lógico, você pode adicionar mais ações ou escrever APIs personalizadas.

Próximos passos