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
Uma conta e subscrição do Azure. Se ainda não tiver uma subscrição, inscreva-se numa conta gratuita do Azure.
Um recurso de conta de integração onde você define e armazena artefatos, como parceiros comerciais, contratos, certificados e assim por diante, para uso em sua integração empresarial e fluxos de trabalho B2B. Este recurso tem de cumprir os seguintes requisitos:
Está associado à mesma assinatura do Azure que seu recurso de aplicativo lógico.
Existe no mesmo local ou região do Azure que seu recurso de 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 que você possa usar artefatos em seu 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 precisará 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 seu recurso de aplicativo lógico.
Nota
Atualmente, apenas o tipo de recurso Logic App (Consumo) suporta operações RosettaNet . O tipo de recurso Logic App (Standard) não inclui operações RosettaNet .
Pelo menos dois parceiros comerciais na sua conta de integração. As definições para ambos os parceiros devem usar o mesmo qualificador de identidade comercial, que é AS2, X12, EDIFACT ou RosettaNet.
Um contrato AS2 e um contrato X12 para os parceiros que você está usando neste fluxo de trabalho. Cada acordo requer um parceiro anfitrião e um parceiro convidado.
Um recurso de aplicativo lógico com um fluxo de trabalho em branco onde você pode adicionar o gatilho Request e, em seguida, as seguintes ações:
Adicionar o gatilho de solicitação
Para iniciar o fluxo de trabalho neste exemplo, adicione o gatilho Request.
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 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.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.
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.
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.
No gatilho, selecione Nova etapa.
Gorjeta
Para ocultar os detalhes do gatilho Solicitação, selecione a barra de título do gatilho.
Na caixa de pesquisa Escolha uma operação, selecione Todos, se não estiver selecionado. Na caixa de pesquisa, digite
as2
e selecione Decodificação AS2.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:
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 .
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.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.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:
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:
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.
Na ação Decodificar AS2, selecione Nova etapa.
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 .Agora, a forma da condição é exibida, incluindo os caminhos que determinam se a condição é atendida.
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 valorExpected
.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.
Agora, especifique as respostas a serem retornadas com base no êxito ou não da ação de decodificação AS2.
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
response
e selecione Resposta.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']
Para obter as expressões a serem resolvidas como tokens, alterne entre o designer e a visualização de código:
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
response
e selecione Resposta. Configure a ação Resposta para retornar o status e o erro desejados.
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.
Na ação Resposta, selecione Adicionar uma ação.
Em Escolha uma operação, na caixa de pesquisa, digite
x12 decode
e selecione Decodificar mensagem X12.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.
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'])
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.
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.