Transformar XML em fluxos de trabalho com os Aplicativos Lógicos do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Standard)
Em cenários de Business-to-Business (B2B) de integração corporativa, talvez seja necessário converter XML entre formatos. Seu fluxo de trabalho do aplicativo lógico pode transformar XML usando a ação Transformar XML e um mapa predefinido.
Por exemplo, suponha que você recebe regularmente pedidos ou faturas B2B de um cliente que usa o formato de data AnoMêsDia (AAAAMMDD). No entanto, sua organização usa o formato de data DiaMêsAno (DDMMAAAA). Você pode criar e usar um mapa para transformar o formato de data AnoMêsDia em DiaMêsAno antes de armazenar os detalhes do pedido ou da fatura no banco de dados de atividade do cliente.
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 fluxo de trabalho de aplicativo lógico que já começa com um gatilho para que você possa adicionar a ação Transformar XML onde for necessário em seu fluxo de trabalho.
Um recurso de conta de integração no qual você define e armazena artefatos, como parceiros comerciais, contratos, certificados e assim por diante, para uso 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.
Existir no mesmo local ou na região do Azure que o recurso de aplicativo lógico em que você planeja usar a ação de Transformar XML.
Se você estiver trabalhando em um recurso e fluxo de trabalho do aplicativo de lógica de consumo , sua conta de integração exige os seguintes itens:
O mapa a ser usado para transformar conteúdo XML
Se estiver trabalhando em um recurso e fluxo de trabalho de aplicativo lógico Standard, você poderá vincular sua conta de integração ao recurso do seu aplicativo lógico, carregar mapas diretamente para o recurso do aplicativo lógico ou as duas coisas, com base nos seguintes cenários:
Se você já tiver uma conta de integração com os artefatos que precisa ou deseja usar, vincule essa conta a diversos recursos de aplicativo lógico Standard nos quais deseja usar os artefatos. Dessa forma, não será necessário carregar mapas em cada aplicativo lógico individual. Para obter mais informações, examine Vincular o recurso do aplicativo lógico à conta de integração.
Se não tiver uma conta de integração ou apenas planeja usar seus artefatos em vários fluxos de trabalho dentro do mesmo recurso de aplicativo lógico, você poderá adicionar mapas diretamente ao recurso do seu aplicativo lógico usando o portal do Azure ou o Visual Studio Code.
Observação
O conector interno Liquid permite selecionar um mapa já carregado no recurso de aplicativo lógico ou em uma conta de integração vinculada, mas não em ambos.
Portanto, se você não tiver ou precisar de uma conta de integração, poderá usar a opção de carregamento. Caso contrário, use a opção de vinculação. É possível usar esses artefatos em todos os fluxos de trabalho secundários dentro do mesmo recurso de aplicativo lógico.
Você ainda precisa de uma conta de integração para armazenar outros artefatos, como parceiros, contratos e certificados, além de usar as operações AS2, X12 e EDIFACT.
Adicionar ação de Transformar XML
No portal do Azure, abra o fluxo de trabalho e o aplicativo lógico Standard no designer.
Se você tem um fluxo de trabalho em branco que não tem um gatilho, siga estas etapas gerais para adicionar o gatilho desejado. Caso contrário, prossiga para a próxima etapa.
Este exemplo usa o gatilho Solicitação.
Na etapa em seu fluxo de trabalho em que você deseja adicionar a ação Transformar XML, siga estas etapas gerais para adicionar a ação chamada Transformar XML.
Na caixa Conteúdo, especifique o conteúdo XML que você deseja transformar usando todos os dados XML recebidos na solicitação HTTP.
Para selecionar saídas de operações anteriores no fluxo de trabalho, na ação Transformar XML, clique dentro da caixa Conteúdo e selecione a opção lista de conteúdo dinâmico (ícone de raio).
Na lista de conteúdo dinâmico, selecione o token para o conteúdo que você deseja transformar.
Este exemplo seleciona o token Corpo do gatilho.
Observação
Certifique-se de selecionar conteúdo XML. Se o conteúdo não for XML ou codificado em base64, deve especificar uma expressão que processa o conteúdo. Por exemplo, você pode usar funções de expressão, como
base64ToBinary()
para decodificar conteúdo ouxml()
para processar o conteúdo como XML.
Na lista de Origem do mapa, selecione o local onde você carregou seu mapa, seu recurso do LogicApp ou IntegrationAccount.
Na lista Mapa, selecione seu mapa.
Quando terminar, salve o fluxo de trabalho.
Agora você concluiu a configuração de sua ação Transformar XML. Em um aplicativo real, convém armazenar os dados transformados em um aplicativo LOB (linha de negócios), como o SalesForce. Para enviar a saída transformada ao Salesforce, adicione uma ação Salesforce.
Para testar sua ação de transformação, dispare e execute o fluxo de trabalho. Por exemplo, para o gatilho de solicitação, envie uma solicitação para a URL do ponto de extremidade do gatilho.
A ação de Transformar XML é executada após o disparo do seu fluxo de trabalho e quando o conteúdo XML está disponível para transformação.
Recursos avançados
Referenciar assemblies ou chamar código personalizado de mapas
A ação Transformar XML dá suporte à referência de assemblies externos a partir de mapas, o que permite chamar diretamente o código .NET personalizado a partir de mapas XSLT. Para obter mais informações, consulte Adicionar mapas XSLT para fluxos de trabalho em Aplicativos Lógicos do Azure.
Referenciar objetos de extensão
Nos fluxos de trabalho Standard, a ação Transformar XML dá suporte à especificação de um objeto de extensão XML a ser usado com seu mapa.
Na ação Transformar XML, abra a lista de Parâmetros avançados e selecione Objeto de extensão XML, que adiciona o parâmetro à ação.
Na caixa Objeto de extensão XML, especifique seu objeto de extensão, por exemplo:
Marca de ordem de byte
Por padrão, a resposta da transformação iniciará com marca de ordem de byte (BOM). Você pode acessar essa funcionalidade apenas quando trabalha no editor de exibição de código. Para desabilitar essa funcionalidade, defina a propriedade transformOptions
como disableByteOrderMark
:
"Transform_XML": {
"inputs": {
"content": "@{triggerBody()}",
"integrationAccount": {
"map": {
"name": "TestMap"
}
},
"transformOptions": "disableByteOrderMark"
},
"runAfter": {},
"type": "Xslt"
}