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 Code.
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.
No portal do Azure, abra o recurso do aplicativo lógico e o fluxo de trabalho em branco no designer de fluxo de trabalho.
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.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.
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.
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.
No gatilho, selecione Nova etapa.
Dica
Para ocultar os detalhes do gatilho de Solicitação, selecione a barra de título do gatilho.
Na caixa de pesquisa Escolher uma operação, selecione Tudo. Na caixa de pesquisa, insira
as2
e selecione Decodificar AS2.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:
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 gatilho
body
, 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.
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.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.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:
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:
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.
Na ação Decodificar AS2, selecione Nova etapa.
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.Agora, a forma da condição é exibida, incluindo os caminhos que determinam se a condição foi atendida.
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 valorExpected
.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.
Agora, especifique as respostas para retornar com base em se a ação de Decodificar AS2 foi bem-sucedida ou não.
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.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']
Para obter as expressões a ser resolvidas como tokens, alterne entre o designer e a exibição de código:
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.
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.
Na ação Resposta, selecione Adicionar uma ação.
Em Escolher uma operação, na caixa de pesquisa, insira
x12 decode
e selecione Decodificar mensagem X12.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.
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'])
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.
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:
Conectar aos sistemas SAP a partir do Aplicativos Lógicos do Azure
Monitore, crie e gerencie arquivos SFTP usando SSH e os Aplicativos Lógicos do Azure
É 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.