Adicionar mapas para transformações em fluxos de trabalho com os Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)

Ações de fluxo de trabalho, como Transformar XML e Líquido, exigem um mapa para executar suas tarefas. Por exemplo, a ação Transformar XML requer um mapa para converter XML entre formatos. Um mapa é um documento XML que usa a linguagem XSLT (Extensible Stylesheet Language Transformation) para descrever como converter dados de XML para outro formato e tem a extensão de nome de arquivo .xslt. O mapa consiste em um esquema XML de origem como entrada e um esquema XML de destino como saída. Você pode definir uma transformação básica, como copiar um nome e endereço de um documento para outro. Ou, você pode criar transformações mais complexas usando as operações de mapa prontas para uso. Você pode manipular ou controlar dados usando diferentes funções internas, como manipulações de cadeia de caracteres, atribuições condicionais, expressões aritméticas, data e hora formatters e até mesmo construções de looping.

Por exemplo, suponha que você receba regularmente pedidos ou faturas B2B de um cliente que usa o formato de data YearMonthDay (AAAAMMDD). No entanto, sua organização usa o formato de data MonthDayYear (MMDDYYYY). Você pode definir e usar um mapa que transforma o formato AAAAMMDD para o formato MMDDYYYY antes de armazenar os detalhes do pedido ou da fatura no banco de dados de atividades do cliente.

Este guia mostra como adicionar um mapa para o seu fluxo de trabalho usar. Você pode adicionar mapas à sua conta de integração vinculada ou, se tiver um aplicativo lógico padrão, pode adicionar mapas diretamente ao recurso do aplicativo lógico.

Pré-requisitos

  • Uma conta e subscrição do Azure. Se ainda não tiver uma subscrição, inscreva-se numa conta gratuita do Azure.

  • O mapa que você deseja adicionar. Para criar mapas, você pode usar qualquer uma das seguintes ferramentas:

    • Código do Visual Studio e a extensão do Mapeador de Dados. Para chamar os mapas criados com o Mapeador de Dados do seu fluxo de trabalho, você deve usar a ação Operações do Mapeador de Dados chamada Transformar usando XSLT, não a ação Operações XML chamada Transformar XML. Para obter mais informações, consulte Criar mapas para transformação de dados com o Visual Studio Code.

    • Visual Studio 2019 e a extensão Ferramentas de Integração Empresarial de Aplicativos Lógicos do Microsoft Azure.

    • Visual Studio 2015 e a extensão Microsoft Azure Logic Apps Enterprise Integration Tools for Visual Studio 2015 2.0.

      Nota

      Não instale a extensão Ferramentas de Integração Empresarial de Aplicativos Lógicos do Microsoft Azure junto com a extensão do BizTalk Server. Ter ambas as extensões pode produzir um comportamento inesperado. Certifique-se de que tem apenas uma destas extensões instaladas.

      Em monitores de alta resolução, você pode enfrentar um problema de exibição com o designer de mapa no Visual Studio. Para resolver esse problema de exibição, reinicie o Visual Studio no modo sem reconhecimento de DPI ou adicione o valor do Registro DPIUNWARE.

      Para obter mais informações, consulte a seção Criar mapas neste artigo.

  • Com base no fato de você estar trabalhando em um fluxo de trabalho de aplicativo lógico Consumo ou Padrão, você precisará de um recurso de conta de integração. Normalmente, você precisa desse recurso quando deseja definir e armazenar artefatos para uso em integração empresarial e fluxos de trabalho B2B.

    Importante

    Para trabalhar em conjunto, sua conta de integração e o recurso do aplicativo lógico devem existir na mesma assinatura do Azure e na mesma região do Azure.

    • Se você estiver trabalhando em um fluxo de trabalho de aplicativo lógico de consumo, precisará de uma conta de integração vinculada ao recurso do aplicativo lógico.

    • Se você estiver trabalhando em um fluxo de trabalho de aplicativo lógico padrão, poderá vincular sua conta de integração ao recurso do aplicativo lógico, carregar mapas diretamente para o recurso do aplicativo lógico ou ambos, com base nos seguintes cenários:

      • Se você já tiver uma conta de integração com os artefatos que precisa ou deseja usar, poderá vincular sua conta de integração a vários recursos do aplicativo lógico padrão onde deseja usar os artefatos. Dessa forma, você não precisa carregar mapas para cada aplicativo lógico individual. Para obter mais informações, consulte Vincular seu recurso de aplicativo lógico à sua conta de integração.

      • O conector integrado Liquid permite selecionar um mapa que você carregou anteriormente para o recurso do aplicativo lógico ou para uma conta de integração vinculada, mas não ambos.

      Então, se você não tem ou precisa de uma conta de integração, você pode usar a opção de upload. Caso contrário, você pode usar a opção de vinculação. De qualquer forma, você pode usar esses artefatos em todos os fluxos de trabalho filho dentro do mesmo recurso de aplicativo lógico.

  • Os fluxos de trabalho padrão e de consumo suportam mapas XSLT que fazem referência a assemblies externos, que permitem chamar diretamente código .NET personalizado a partir de mapas XSLT. Para dar suporte a esse recurso, os fluxos de trabalho de consumo também têm os seguintes requisitos:

    • Você precisa de um assembly de 64 bits. O serviço de transformação executa um processo de 64 bits, portanto, assemblies de 32 bits não são suportados. Se você tiver o código-fonte para um assembly de 32 bits, recompile o código em um assembly de 64 bits. Se você não tiver o código-fonte, mas obteve o binário de um provedor de terceiros, obtenha a versão de 64 bits desse provedor. Por exemplo, alguns fornecedores fornecem assemblies em pacotes que têm versões de 32 bits e 64 bits. Se você tiver a opção, use a versão de 64 bits.

    • Você tem que carregar o assembly e o mapa em uma ordem específica para sua conta de integração. Certifique-se de carregar seu assembly primeiro e, em seguida, carregue o mapa que faz referência ao assembly.

    • Se o assembly ou mapa tiver 2 MB ou menos, você poderá adicionar o assembly e o mapa à sua conta de integração diretamente do portal do Azure.

    • Se o assembly for maior que 2 MB, mas não maior do que o limite de tamanho para assemblies, você precisará de uma conta de armazenamento do Azure e um contêiner de blob onde possa carregar o assembly. Mais tarde, você pode fornecer o local do contêiner ao adicionar o assembly à sua conta de integração. Para esta tarefa, a tabela a seguir descreve os itens necessários:

      Item Description
      Conta de armazenamento do Azure Nessa conta, crie um contêiner de blob do Azure para seu assembly. Saiba como criar uma conta de armazenamento.
      Contentor de blobs Neste contêiner, você pode carregar seu assembly. Você também precisa do local do URI de conteúdo desse contêiner ao adicionar o assembly à sua conta de integração. Saiba como criar um contêiner de blob.
      Explorador do Storage do Azure Essa ferramenta ajuda você a gerenciar mais facilmente contas de armazenamento e contêineres de blob. Para usar o Gerenciador de Armazenamento, baixe e instale o Gerenciador de Armazenamento do Azure. Em seguida, conecte o Gerenciador de Armazenamento à sua conta de armazenamento seguindo as etapas em Introdução ao Gerenciador de Armazenamento. Para saber mais, consulte Guia de início rápido: criar um blob no armazenamento de objetos com o Gerenciador de Armazenamento do Azure.

      Ou, no portal do Azure, selecione sua conta de armazenamento. No menu da conta de armazenamento, selecione Gerenciador de Armazenamento.

      Para adicionar mapas maiores, você pode usar a API REST dos Aplicativos Lógicos do Azure - Mapas. Para fluxos de trabalho padrão, a API REST dos Aplicativos Lógicos do Azure não está disponível no momento.

Limitações

  • Os limites se aplicam ao número de artefatos, como mapas, por conta de integração. Para obter mais informações, consulte Limites e informações de configuração para Aplicativos Lógicos do Azure.

  • Com base no fato de você estar trabalhando em um fluxo de trabalho de aplicativo lógico Consumo ou Padrão, as seguintes limitações se aplicam:

    • Fluxos de trabalho padrão

      • Suporte XSLT 1.0, 2.0 e 3.0.

      • Não se aplicam limites aos tamanhos dos ficheiros de mapas.

    • Fluxos de trabalho de consumo

      • Os Aplicativos Lógicos do Azure alocam memória finita para processar transformações XML. Se você criar fluxos de trabalho de Consumo e suas transformações de mapa ou carga útil tiverem alto consumo de memória, essas transformações poderão falhar, resultando em erros de falta de memória. Para evitar esse cenário, considere estas opções:

        • Edite os seus mapas ou cargas úteis para reduzir o consumo de memória.

        • Crie fluxos de trabalho de aplicativos lógicos padrão, que são executados em Aplicativos Lógicos do Azure de locatário único e oferecem opções dedicadas e flexíveis para recursos de computação e memória.

Criar mapas

Você pode criar mapas usando o Visual Studio Code com a extensão Data Mapper ou o Visual Studio com a extensão Microsoft Azure Logic Apps Enterprise Integration Tools.

Visual Studio Code

Ao criar mapas usando o Visual Studio Code e a extensão do Mapeador de Dados, você pode chamar esses mapas do seu fluxo de trabalho, mas somente com a ação Operações do Mapeador de Dados chamada Transformar usando XSLT, não a ação Operações XML chamada Transformar XML. Para obter mais informações, consulte Criar mapas para transformação de dados com o Visual Studio Code.

Visual Studio

Ao criar mapas usando o Visual Studio, você precisará criar um projeto de integração com uma das seguintes ferramentas:

No projeto de integração, você pode criar um arquivo de mapa de integração, que permite mapear visualmente itens entre dois arquivos de esquema XML. Essas ferramentas oferecem os seguintes recursos de mapa:

  • Você trabalha com uma representação gráfica do mapa, que mostra todas as relações e links que você cria.

  • Você pode fazer uma cópia direta de dados entre os esquemas XML que você usa para criar o mapa. O SDK de integração empresarial para Visual Studio inclui um mapeador que torna essa tarefa tão simples quanto desenhar uma linha que conecta os elementos no esquema XML de origem com suas contrapartes no esquema XML de destino.

  • Operações ou funções para vários mapas estão disponíveis, incluindo funções de cadeia de caracteres, funções de data e hora e assim por diante.

  • Para adicionar uma mensagem XML de exemplo, você pode usar o recurso de teste de mapa. Com apenas um gesto, você pode testar o mapa criado e revisar a saída gerada.

  • Depois de criar seu projeto, você obtém um documento XSLT.

Seu mapa deve ter os seguintes atributos e uma CDATA seção que contém a chamada para o código do assembly:

  • name é o nome do assembly personalizado.

  • namespace é o namespace em seu assembly que inclui o código personalizado.

O exemplo a seguir mostra um mapa que faz referência a um assembly chamado XslUtilitiesLib e chama o circumference método do assembly.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
    <msxsl:assembly name="XsltHelperLib"/>
    <msxsl:using namespace="XsltHelpers"/>
    <![CDATA[public double circumference(int radius){ XsltHelper helper = new XsltHelper(); return helper.circumference(radius); }]]>
</msxsl:script>
<xsl:template match="data">
<circles>
    <xsl:for-each select="circle">
        <circle>
            <xsl:copy-of select="node()"/>
                <circumference>
                    <xsl:value-of select="user:circumference(radius)"/>
                </circumference>
        </circle>
    </xsl:for-each>
</circles>
</xsl:template>
</xsl:stylesheet>

Adicionar assemblies referenciados

Um recurso de aplicativo lógico de consumo oferece suporte à referência de assemblies externos de mapas, que permitem chamar diretamente código .NET personalizado de mapas XSLT.

  1. Na caixa de pesquisa do portal do Azure, insira contas de integração e selecione Contas de integração.

  2. Selecione a conta de integração onde você deseja adicionar seu assembly.

  3. No menu da sua conta de integração, selecione Visão geral. Em Configurações, selecione Montagens.

  4. Na barra de ferramentas do painel Montagens, selecione Adicionar.

Com base no tamanho do arquivo de montagem, siga as etapas para carregar um assembly de até 2 MB ou mais de 2 MB, mas apenas até 8 MB. Para obter limites de quantidades de assembly em contas de integração, revise Limites e configuração para Aplicativos Lógicos do Azure.

Nota

Se você alterar seu assembly, você também deve atualizar seu mapa se o mapa tem ou não alterações.

Adicionar assemblies de até 2 MB

  1. Em Adicionar assembly, insira um nome para o assembly. Mantenha o arquivo Pequeno selecionado. Ao lado da caixa Assembly, selecione o ícone da pasta. Localize e selecione o assembly que você está carregando.

    Depois de selecionar o assembly, a propriedade Assembly Name mostra automaticamente o nome do arquivo do assembly.

  2. Quando tiver terminado, selecione OK.

    Depois que o upload do arquivo de assembly terminar, o assembly aparecerá na lista Assemblies . No painel Visão geral da sua conta de integração, em Artefatos, o assembly carregado também aparece.

Adicionar assemblies com mais de 2 MB

Para adicionar assemblies maiores, você pode carregar seu assembly em um contêiner de blob do Azure em sua conta de armazenamento do Azure. Suas etapas para adicionar assemblies diferem com base no fato de seu contêiner de blob ter acesso público de leitura. Portanto, primeiro, verifique se seu contêiner de blob tem ou não acesso de leitura pública seguindo estas etapas: Definir nível de acesso público para contêiner de blob

Verificar o nível de acesso ao contêiner

  1. Abra o Gerenciador de Armazenamento do Azure. Na janela Explorer, expanda sua assinatura do Azure se ainda não estiver expandida.

  2. Expanda Contas de armazenamento> {sua-conta-de-armazenamento} >Contêineres de Blob. Selecione seu contêiner de blob.

  3. No menu de atalho do contêiner de blob, selecione Definir Nível de Acesso Público.

Carregar para contentores com acesso público
  1. Carregue o assembly para sua conta de armazenamento. Na janela do lado direito, selecione Carregar.

  2. Depois de concluir o upload, selecione o assembly carregado. Na barra de ferramentas, selecione Copiar URL para copiar a URL do assembly.

  3. Retorne ao portal do Azure onde o painel Adicionar Assembly está aberto. Insira um nome para o assembly. Selecione Arquivo grande (maior que 2 MB).

    A caixa URI de conteúdo agora é exibida, em vez da caixa Assembly .

  4. Na caixa URI de conteúdo, cole o URL do assembly. Termine de adicionar sua montagem.

    Depois que o assembly terminar de carregar, o assembly aparecerá na lista Assemblies . No painel Visão geral da sua conta de integração, em Artefatos, o assembly carregado também aparece.

Carregar para contentores sem acesso público
  1. Carregue o assembly para sua conta de armazenamento. Na janela do lado direito, selecione Carregar.

  2. Depois de concluir o upload, gere uma assinatura de acesso compartilhado (SAS) para seu assembly. No menu de atalho do assembly, selecione Obter assinatura de acesso compartilhado.

  3. No painel Assinatura de Acesso Compartilhado, selecione Criar URI> de assinatura de acesso compartilhado no nível de contêiner. Depois que a URL SAS for gerada, ao lado da caixa URL , selecione Copiar.

  4. Retorne ao portal do Azure onde o painel Adicionar Assembly está aberto. Insira um nome para o assembly. Selecione Arquivo grande (maior que 2 MB).

    A caixa URI de conteúdo agora é exibida, em vez da caixa Assembly .

  5. Na caixa URI de conteúdo, cole o URI SAS que você gerou anteriormente. Termine de adicionar sua montagem.

Depois que o assembly terminar de carregar, o assembly aparecerá na lista Assemblies . Na página Visão geral da sua conta de integração, em Artefatos, o assembly carregado também aparece.

Adicionar mapas

  • Se você estiver trabalhando com um fluxo de trabalho de Consumo, deverá adicionar seu mapa a uma conta de integração vinculada.

  • Se estiver a trabalhar com um fluxo de trabalho Padrão, tem as seguintes opções:

    • Adicione seu mapa a uma conta de integração vinculada. Você pode compartilhar o mapa e a conta de integração entre vários recursos do aplicativo lógico padrão e seus fluxos de trabalho filho.

    • Adicione seu mapa diretamente ao recurso do aplicativo lógico. No entanto, você só pode compartilhar esse mapa entre fluxos de trabalho filho no mesmo recurso de aplicativo lógico.

Adicionar mapa à conta de integração

  1. No portal do Azure, entre com suas credenciais de conta do Azure.

  2. Na caixa de pesquisa do portal do Azure, insira contas de integração e selecione Contas de integração.

  3. Encontre e selecione sua conta de integração.

  4. No menu de navegação da conta de integração, em Configurações, selecione Mapas.

  5. Na barra de ferramentas do painel Mapas, selecione Adicionar.

Para fluxos de trabalho de Consumo, com base no tamanho do arquivo do seu mapa, siga as etapas para carregar um mapa com até 2 MB ou mais de 2 MB.

Adicionar mapas até 2 MB

  1. No painel Adicionar mapa, insira um nome exclusivo para o mapa .

  2. Em Tipo de mapa, selecione o tipo, por exemplo: Liquid, XSLT, XSLT 2.0 ou XSLT 3.0.

  3. Ao lado da caixa Mapa, selecione o ícone da pasta. Selecione o mapa a carregar.

    Se você deixou a propriedade Name vazia, o nome do arquivo do mapa aparecerá automaticamente nessa propriedade depois que você selecionar o arquivo de mapa.

  4. Quando tiver terminado, selecione OK.

    Depois que o upload do arquivo de mapa terminar, o mapa aparecerá na lista Mapas . Na página Visão geral da sua conta de integração, em Artefatos, o mapa carregado também aparece.

Adicionar mapas com mais de 2 MB

Para adicionar mapas maiores para fluxos de trabalho de Consumo, use a API REST dos Aplicativos Lógicos do Azure - Mapas.


Adicionar mapa ao recurso do aplicativo lógico padrão

As etapas a seguir se aplicam somente se você quiser adicionar um mapa diretamente ao recurso do aplicativo lógico padrão. Caso contrário, adicione o mapa à sua conta de integração.

Portal do Azure

  1. No menu do recurso do aplicativo lógico, em Artefatos, selecione Mapas.

  2. Na barra de ferramentas do painel Mapas, selecione Adicionar.

  3. No painel Adicionar mapa, insira um nome exclusivo para seu mapa e inclua o nome da extensão .xslt.

  4. Ao lado da caixa Mapa, selecione o ícone da pasta. Selecione o mapa a carregar.

  5. Quando tiver terminado, selecione OK.

    Depois que o upload do arquivo de mapa terminar, o mapa aparecerá na lista Mapas . Na página Visão geral da sua conta de integração, em Artefatos, o mapa carregado também aparece.

Visual Studio Code

  1. Na estrutura do seu projeto de aplicativo lógico, abra a pasta Artefatos e, em seguida, a pasta Mapas.

  2. Na pasta Mapas, adicione o mapa.


Editar um mapa

Para atualizar um mapa existente, tem de carregar um novo ficheiro de mapa com as alterações pretendidas. No entanto, você pode primeiro baixar o mapa existente para edição.

  1. No portal do Azure, abra sua conta de integração, se ainda não estiver aberta.

  2. No menu da sua conta de integração, em Configurações, selecione Mapas.

  3. Depois que o painel Mapas for aberto, selecione seu mapa. Para baixar e editar o mapa primeiro, na barra de ferramentas do painel Mapas , selecione Baixar e salve o mapa.

  4. Quando estiver pronto para carregar o mapa atualizado, no painel Mapas , selecione o mapa que deseja atualizar. Na barra de ferramentas do painel Mapas, selecione Atualizar.

  5. Localize e selecione o mapa atualizado que deseja carregar.

    Depois que o upload do arquivo de mapa terminar, o mapa atualizado aparecerá na lista Mapas .

Excluir um mapa

  1. No portal do Azure, abra sua conta de integração, se ainda não estiver aberta.

  2. No menu da sua conta de integração, em Configurações, selecione Mapas.

  3. Depois que o painel Mapas for aberto, selecione seu mapa e, em seguida, selecione Excluir.

  4. Para confirmar que deseja excluir o mapa, selecione Sim.

Próximos passos