Trocar mensagens EDI como lotes ou grupos entre parceiros comerciais em Aplicativos Lógicos do Azure

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

Em cenários de empresa a empresa (B2B), os parceiros geralmente trocam mensagens em grupos ou lotes. Ao criar uma solução de lotes com os Aplicativos Lógicos do Azure, você pode enviar mensagens para parceiros comerciais e processar essas mensagens juntas em lotes. Este artigo mostra como você pode processar mensagens EDI em lote, usando X12 como exemplo, criando um aplicativo lógico de "remetente de lote" e um aplicativo lógico de "recetor de lote".

O envio em lote de mensagens X12 funciona como o envio em lote de outras mensagens. Você usa um gatilho de lote que coleta mensagens em um lote e uma ação em lote que envia mensagens para o lote. Além disso, o lote X12 inclui uma etapa de codificação X12 antes que as mensagens vão para o parceiro comercial ou outro destino. Para saber mais sobre o gatilho e a ação em lote, consulte Mensagens de processo em lote.

Neste artigo, você criará uma solução em lote criando dois aplicativos lógicos dentro da mesma assinatura do Azure, região do Azure, e seguindo esta ordem específica:

  • Um aplicativo lógico de "recetor em lote", que aceita e coleta mensagens em um lote até que seus critérios especificados sejam atendidos para liberar e processar essas mensagens. Nesse cenário, o recetor de lote também codifica as mensagens no lote usando o contrato X12 especificado ou identidades de parceiro.

    Certifique-se de criar primeiro o recetor do lote para que possa selecionar posteriormente o destino do lote ao criar o remetente do lote.

  • Um fluxo de trabalho de aplicativo lógico de "remetente em lote", que envia as mensagens para o recetor de lote criado anteriormente.

Certifique-se de que os fluxos de trabalho do aplicativo lógico do destinatário do lote e do remetente do lote usam a mesma assinatura do Azure e a mesma região do Azure. Se isso não acontecer, você não poderá selecionar o recetor de lote ao criar o remetente do lote porque eles não são visíveis um para o outro.

Pré-requisitos

  • Instale ou use uma ferramenta que possa enviar solicitações HTTP para testar sua solução, por exemplo:

    Atenção

    Para cenários em que você tem dados confidenciais, como credenciais, segredos, tokens de acesso, chaves de API e outras informações semelhantes, certifique-se de usar uma ferramenta que proteja seus dados com os recursos de segurança necessários, funcione offline ou localmente, não sincronize seus dados com a nuvem e não exija que você entre em uma conta online. Dessa forma, você reduz o risco de exposição de dados confidenciais ao público.

Criar recetor em lote X12

Antes de poder enviar mensagens para um lote, esse lote deve primeiro existir como o destino para onde você envia essas mensagens. Então, primeiro, você deve criar o aplicativo lógico "batch receiver", que começa com o gatilho Batch . Dessa forma, ao criar o aplicativo lógico "remetente em lote", você pode selecionar o aplicativo lógico do recetor em lote. O recetor em lote continua coletando mensagens até que seus critérios especificados sejam atendidos para liberar e processar essas mensagens. Enquanto os recetores de lote não precisam saber nada sobre remetentes de lote, os remetentes de lote devem saber o destino para onde enviam as mensagens.

Para este recetor de lote, especifique o modo de lote, nome, critérios de versão, contrato X12 e outras configurações.

  1. No portal do Azure, Visual Studio ou Visual Studio Code, crie um aplicativo lógico com o seguinte nome: BatchX12Messages

  2. Vincule seu aplicativo lógico à sua conta de integração.

  3. No designer de fluxo de trabalho, adicione o gatilho Lote , que inicia o fluxo de trabalho do aplicativo lógico.

  4. Siga estas etapas gerais para adicionar um gatilho de lote chamado Mensagens em lote.

  5. Defina as propriedades do recetor de lote:

    Property valor Notas
    Modo de lote Inline
    Nome do lote TestBatch Disponível apenas com o modo de lote em linha
    Critérios de Lançamento Com base na contagem de mensagens, com base na programação Disponível apenas com o modo de lote em linha
    Contagem de mensagens 10 Disponível apenas com critérios de liberação baseados na contagem de mensagens
    Intervalo 10 Disponível apenas com critérios de lançamento baseados em cronograma
    Frequência minuto Disponível apenas com critérios de lançamento baseados em cronograma

    Fornecer detalhes do gatilho do lote

    Nota

    Este exemplo não configura uma partição para o lote, portanto, cada lote usa a mesma chave de partição. Para saber mais sobre partições, consulte Mensagens de processo em lote.

  6. Agora adicione uma ação que codifice cada lote:

    1. Siga estas etapas gerais para adicionar uma ação X12 com o nome: Codificar <em lote qualquer versão>

    2. Se você não se conectou anteriormente à sua conta de integração, crie a conexão agora. Forneça um nome para sua conexão, selecione a conta de integração desejada e selecione Criar.

      Criar conexão entre o codificador de lote e a conta de integração

    3. Defina estas propriedades para a ação do codificador em lote:

      Property Description
      Nome do contrato X12 Abra a lista e selecione o seu contrato existente.

      Se sua lista estiver vazia, certifique-se de vincular seu aplicativo lógico à conta de integração que tem o contrato desejado.

      Nome do lote Clique dentro desta caixa e, depois que a lista de conteúdo dinâmico for exibida, selecione o token Nome do lote .
      Nome da partição Clique dentro desta caixa e, depois que a lista de conteúdo dinâmico for exibida, selecione o token Nome da partição.
      Rubricas Feche a caixa de detalhes do item e clique dentro dessa caixa. Depois que a lista de conteúdo dinâmico for exibida, selecione o token Itens em lote.

      Detalhes da ação Batch Encode

      Para a caixa Itens :

      Itens de ação de codificação em lote

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

  8. Se você estiver usando o Visual Studio, certifique-se de implantar seu aplicativo lógico de recetor em lote no Azure. Caso contrário, não será possível selecionar o recetor do lote ao criar o remetente do lote.

Testar o fluxo de trabalho

Para garantir que o recetor em lote funcione conforme o esperado, você pode adicionar uma ação HTTP para fins de teste e enviar uma mensagem em lote para o serviço Request Bin.

  1. Siga estas etapas gerais para adicionar a ação HTTP chamada HTTP.

  2. Defina as propriedades para a ação HTTP:

    Property Description
    Método Nesta lista, selecione POST.
    URI Gere um URI para o compartimento de solicitação e insira esse URI nesta caixa.
    Corpo Clique dentro desta caixa e, depois que a lista de conteúdo dinâmico for aberta, selecione o token de corpo , que aparece na seção Codificar em lote por nome do contrato.

    Se você não vir o token de corpo , ao lado de Codificar em lote por nome do contrato, selecione Ver mais.

    Fornecer detalhes da ação HTTP

  3. Salve seu fluxo de trabalho.

    Seu aplicativo lógico de recetor em lote se parece com o exemplo a seguir:

    Salve seu aplicativo lógico de recetor em lote

Criar remetente de lote X12

Agora, crie um ou mais aplicativos lógicos que enviam mensagens para o aplicativo lógico do recetor em lote. Em cada remetente de lote, você especifica o aplicativo lógico do recetor de lote e o nome do lote, o conteúdo da mensagem e quaisquer outras configurações. Opcionalmente, você pode fornecer uma chave de partição exclusiva para dividir o lote em subconjuntos para coletar mensagens com essa chave.

  • Certifique-se de que já criou o seu recetor em lote. Dessa forma, ao criar o remetente do lote, você pode selecionar o recetor de lote existente como o lote de destino. Enquanto os recetores de lote não precisam saber nada sobre remetentes de lote, os remetentes de lote devem saber para onde enviar mensagens.

  • Certifique-se de que os fluxos de trabalho do aplicativo lógico do destinatário do lote e do remetente do lote usam a mesma assinatura do Azure e a mesma região do Azure. Se isso não acontecer, você não poderá selecionar o recetor de lote ao criar o remetente do lote porque eles não são visíveis um para o outro.

  1. Crie outro aplicativo lógico com o seguinte nome: SendX12MessagesToBatch

  2. Siga estas etapas gerais para adicionar o gatilho de solicitação chamado Quando uma solicitação HTTP é recebida.

  3. Para adicionar uma ação para enviar mensagens a um lote, siga estas etapas gerais para adicionar uma ação Enviar mensagens para um lote chamada Escolha um fluxo de trabalho de Aplicativos Lógicos com gatilho em lote.

    1. Selecione o aplicativo lógico BatchX12Messages que você criou anteriormente.

    2. Selecione a ação BatchX12Messages chamada Batch_messages -< seu-batch-receiver>.

  4. Defina as propriedades do remetente do lote.

    Property Description
    Nome do lote O nome do lote definido pelo aplicativo de lógica do recetor, que é "TestBatch" neste exemplo

    Importante: O nome do lote é validado em tempo de execução e deve corresponder ao nome especificado pelo aplicativo lógico do recetor. Alterar o nome do lote faz com que o remetente do lote falhe.

    Conteúdo da mensagem O conteúdo da mensagem que você deseja enviar, que é o token Body neste exemplo

    Definir propriedades do lote

  5. Salve seu fluxo de trabalho.

    Seu aplicativo lógico de remetente em lote se parece com este exemplo:

    Salve seu aplicativo lógico de remetente em lote

Teste seus fluxos de trabalho

Para testar sua solução de envio em lote, poste mensagens X12 no fluxo de trabalho do aplicativo lógico do remetente em lote usando sua ferramenta de solicitação HTTP e suas instruções. Logo, você começa a receber mensagens X12 em sua caixa de solicitação, a cada 10 minutos ou em lotes de 10, tudo com a mesma chave de partição.

Próximos passos