Trocar mensagens EDI como lotes ou grupos entre parceiros comerciais nos Aplicativos Lógicos do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Consumo)
Em cenários de B2B (entre empresas), os parceiros geralmente trocam mensagens em grupos ou em lotes. Ao compilar uma solução de envio em lote com os Aplicativos Lógicos do Azure, você poderá enviar mensagens para parceiros comerciais e processar essas mensagens juntas em lotes. Este artigo mostra como processar mensagens de EDI em lotes, usando X12 como exemplo, criando um aplicativo lógico "remetente do lote" e um aplicativo lógico "receptor do lote".
O envio em lote de mensagens X12 funciona como envio em lote de outras mensagens. Você usa um gatilho em lote que coleta mensagens em um lote e uma ação em lote que envia mensagens para o lote. Além disso, o envio em lote do X12 inclui uma etapa de codificação do X12 antes que as mensagens sejam enviadas para o parceiro comercial ou outro destino. Para saber mais sobre a ação e o disparador de lote, consulte Mensagens do processo em lote.
Neste artigo, você compilará uma solução de envio 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 "receptor do 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 receptor do lote também codifica as mensagens no lote, usando o contrato do X12 especificado ou as identidades do parceiro.
Primeiro, certifique-se de criar o receptor do lote para, em seguida, selecionar o destino do lote ao criar o remetente do lote.
Um fluxo de trabalho de aplicativo lógico "remetente do lote" que envia as mensagens para o destinatário do lote criado anteriormente.
Verifique se os fluxos de trabalho do aplicativo lógico do remetente e do destinatário do lote usam a mesma assinatura e região do Azure. Caso contrário, não será possível selecionar o receptor do lote ao criar o remetente do lote porque não estarão visíveis um para o outro.
Pré-requisitos
Uma assinatura do Azure. Se você não tiver uma assinatura, poderá iniciar uma conta gratuita do Azure.
Conhecimento básico sobre como criar fluxos de trabalho de aplicativos lógicos. Para obter mais informações, confiraCriar um exemplo de fluxo de trabalho de aplicativo lógico de Consumo nos Aplicativos Lógicos do Azure multilocatário.
Uma conta de integração associada à sua assinatura do Azure e vinculada a seus aplicativos lógicos.
Pelo menos dois parceiros na conta de integração. Cada parceiro deve usar o qualificador do X12 (Código Alfa de Transportadora Padrão) como uma identidade de negócios nas propriedades do parceiro.
Um contrato X12 existente na conta de integração.
Para usar o Visual Studio em vez do portal do Azure, certifique-se de configurar o Visual Studio para trabalhar com Aplicativos Lógicos do Azure.
Instale ou use uma ferramenta que possa enviar solicitações HTTP para testar sua solução, por exemplo:
- Visual Studio Code com uma extensão do Visual Studio Marketplace
- Invoke-RestMethod do PowerShell
- Microsoft Edge – ferramenta Console de Rede
- Bruno
- curl
Cuidado
Para cenários em que você tem dados confidenciais, como credenciais, segredos, tokens de acesso, chaves de API e outras informações semelhantes, use 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 expor dados confidenciais ao público.
Criar receptor do lote do X12
Antes de enviar mensagens para um lote, esse lote deverá existir primeiro como o destino para o qual essas mensagens serão enviadas. Portanto, primeiro, é necessário criar o aplicativo lógico "receptor do lote" que inicia com o gatilho do Lote. Dessa forma, ao criar o aplicativo lógico "remetente do lote", será possível selecionar o aplicativo lógico do receptor do lote. O receptor do lote continuará coletando mensagens até que seus critérios especificados sejam atendidos para liberar e processar essas mensagens. Embora os receptores dos lotes não precisem saber nada sobre os remetentes dos lotes, os remetentes dos lotes deverão saber o destino para onde enviarão as mensagens.
Para esse receptor do lote, você especifica o modo de lote, nome, critérios de liberação, contrato do X12 e outras configurações.
No portal do Azure, Visual Studio ou Visual Studio Code, crie um aplicativo lógico com o seguinte nome: BatchX12Messages
No designer de fluxo de trabalho, adicione o gatilho Lote, que dá início ao seu fluxo de trabalho de aplicativo lógico.
Siga estas etapas gerais para adicionar um gatilho de Lote chamado Mensagens em lote.
Defina propriedades de receptor do lote:
Propriedade Valor Observações Modo de lote Embutido Nome do lote TestBatch Disponível apenas com o modo de lote Embutido Critérios de liberação Baseado em contagem de mensagens, Baseado no agendamento Disponível apenas com o modo de lote Embutido Contagem de mensagens 10 Disponível apenas com critérios de liberação Baseados em contagem de mensagens Intervalo 10 Disponível apenas com critérios de liberação Baseados no agendamento Frequência minute Disponível apenas com critérios de liberação Baseados no agendamento Observação
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 do processo em lote.
Agora, adicione uma ação que codifique cada lote:
Siga estas etapas gerais para adicionar uma ação X12 chamada: Codificar em lote <qualquer versão>
Caso não tenha conectado a conta de integração anteriormente, crie a conexão agora. Forneça um nome para a conexão, selecione a conta de integração desejada e, em seguida, escolha Criar.
Configure essas propriedades para a ação do codificador de lote:
Propriedade Descrição Nome do contrato do X12 Abra a lista e selecione o contrato existente. Se a lista estiver vazia, certifique-se de vincular o aplicativo lógico à conta de integração que tiver o contrato desejado.
BatchName Clique dentro dessa caixa e, após a exibição da lista de conteúdo dinâmico, selecione o token do Nome do Lote. PartitionName Clique dentro dessa caixa e, após a exibição da lista de conteúdo dinâmico, selecione o token do Nome da Partição. Itens 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 de Itens em Lote. Para a caixa Itens:
Salve o fluxo de trabalho do aplicativo lógico.
Se estiver usando o Visual Studio, certifique-se de implantar o aplicativo lógico do receptor do lote no Azure. Caso contrário, não será possível selecionar o receptor do lote ao criar o remetente do lote.
Testar seu fluxo de trabalho
Para certificar-se de que o receptor do lote funciona conforme o esperado, você pode adicionar uma ação HTTP para fins de teste e enviar uma mensagem em lote para o serviço de Compartimento de Solicitação.
Siga estas etapas gerais para adicionar a ação HTTP chamada HTTP.
Configure as propriedades para a ação HTTP:
Propriedade Descrição Método Nessa lista, selecione POST. Uri Gere um URI para o compartimento de solicitação e, em seguida, insira esse URI nessa caixa. Corpo Clique dentro dessa caixa e, depois que a lista de conteúdo dinâmico for exibida, selecione o token do Corpo, que aparece na seção, Codificar em lote por nome de contrato. Se você não visualizar o token do Corpo, próximo a Codificar em lote por nome de contrato , selecione Ver mais.
Salve seu fluxo de trabalho.
O aplicativo lógico do receptor do lote é semelhante ao exemplo a seguir:
Criar remetente do lote do X12
Agora crie um ou mais aplicativos lógicos que enviem mensagens ao aplicativo lógico do receptor do lote. Em cada remetente do lote, você especifica o aplicativo lógico do receptor do lote e o nome do lote, o conteúdo da mensagem e quaisquer outras configurações. Opcionalmente, é possível fornecer uma chave de partição exclusiva para dividir o lote em subconjuntos para coletar mensagens com essa chave.
Verifique se você já criou o destinatário do lote. Dessa forma, ao criar o remetente em lote, você poderá selecionar o destinatário do lote existente como o lote de destino. Embora os receptores dos lotes não precisem saber nada sobre os remetentes dos lotes, os remetentes dos lotes deverão saber para onde enviarão as mensagens.
Verifique se os fluxos de trabalho do aplicativo lógico do remetente e do destinatário do lote usam a mesma assinatura e região do Azure. Caso contrário, não será possível selecionar o receptor do lote ao criar o remetente do lote porque não estarã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 ao lote chamada Escolher um fluxo de trabalho de Aplicativos Lógicos com gatilho em lote.
Selecione o aplicativo lógico BatchX12Messages criado anteriormente.
Selecione a ação BatchX12Messages chamada Batch_messages – <your-batch-receiver>.
Defina as propriedades do remetente do lote.
Propriedade Descrição Nome do lote O nome do lote definido pelo aplicativo lógico do receptor, que é "TestBatch" neste exemplo Importante: o nome do lote é validado no runtime e deve corresponder ao nome especificado pelo aplicativo lógico do receptor. Alterar o nome do lote faz com que o remetente do lote falhe.
Conteúdo da mensagem O conteúdo da mensagem que você quer enviar, que é o token do Corpo neste exemplo Salve seu fluxo de trabalho.
O aplicativo lógico do remetente do lote é semelhante a este exemplo:
Testar seus fluxos de trabalho
Para testar sua solução de lotes, publique mensagens X12 no fluxo de trabalho do aplicativo de lógica do remetente de lotes usando a ferramenta de solicitação HTTP e suas instruções. Em breve, você começará a receber mensagens X12 no compartimento de solicitações, a cada 10 minutos ou em lotes de 10, todos com a mesma chave de partição.