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
Uma subscrição do Azure. Se não tiver uma subscrição, poderá iniciar uma conta Azure gratuita.
Conhecimento básico sobre como criar fluxos de trabalho de aplicativos lógicos. Para obter mais informações, consulte Criar um exemplo de fluxo de trabalho de aplicativo lógico de consumo em aplicativos lógicos do Azure multilocatário.
Uma conta de integração existente associada à sua assinatura do Azure e vinculada aos seus aplicativos lógicos.
Pelo menos dois parceiros existentes na sua conta de integração. Cada parceiro deve usar o qualificador X12 (Standard Carrier Alpha Code) como uma identidade comercial nas propriedades do parceiro.
Um contrato X12 existente na sua conta de integração.
Instale ou use uma ferramenta que possa enviar solicitações HTTP para testar sua solução, por exemplo:
- Código do Visual Studio com uma extensão do Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ferramenta Network Console
- Adriano
- ondulação
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.
No portal do Azure ou Visual Studio Code, crie um aplicativo lógico com o seguinte nome: BatchX12Messages
Vincule seu aplicativo lógico à sua conta de integração.
No designer de fluxo de trabalho, adicione o gatilho Lote , que inicia o fluxo de trabalho do aplicativo lógico.
Siga estas etapas gerais para adicionar um gatilho de lote chamado Mensagens em lote.
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 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.
Agora adicione uma ação que codifice cada lote:
Siga estas etapas gerais para adicionar uma ação X12 com o nome: Codificar <em lote qualquer versão>
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.
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. Para a caixa Itens :
Salve seu fluxo de trabalho de aplicativo lógico.
Se você estiver usando o Visual Studio Code, 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.
Siga estas etapas gerais para adicionar a ação HTTP chamada HTTP.
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.
Salve seu fluxo de trabalho.
Seu aplicativo lógico de recetor em lote se parece com o exemplo a seguir:
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.
Crie outro aplicativo lógico com o seguinte nome: SendX12MessagesToBatch
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.
Selecione o aplicativo lógico BatchX12Messages que você criou anteriormente.
Selecione a ação BatchX12Messages chamada Batch_messages -< seu-batch-receiver>.
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 Salve seu fluxo de trabalho.
Seu aplicativo lógico de remetente em lote se parece com este exemplo:
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.