Criar variáveis para armazenar e gerir valores no Azure Logic Apps

Aplica-se a: Azure Logic Apps (Consumo + Standard)

Este guia de procedimentos mostra como criar e trabalhar com variáveis para que possa armazenar e utilizar valores no fluxo de trabalho da aplicação lógica. Por exemplo, as variáveis podem ajudá-lo a controlar o número de vezes que um ciclo é executado. Para iterar através de uma matriz ou verificar uma matriz de um item específico, pode utilizar uma variável para referenciar o número do índice para cada item de matriz.

Pode criar variáveis para tipos de dados como número inteiro, flutuante, booleano, cadeia, matriz e objeto. Depois de criar uma variável, pode realizar outras tarefas, por exemplo:

  • Obter ou referenciar o valor da variável.
  • Aumente ou diminua a variável por um valor constante, também conhecido como incremento e decremento.
  • Atribua um valor diferente à variável.
  • Insira ou acrescente o valor da variável como o último item numa cadeia ou matriz.

As variáveis existem e são globais apenas na instância do fluxo de trabalho que as cria. Além disso, persistem em todas as iterações de ciclo dentro de uma instância de fluxo de trabalho. Quando referencia uma variável, utilize o nome da variável como token e não o nome da ação, que é a forma habitual de referenciar as saídas de uma ação.

Importante

Por predefinição, as iterações num ciclo Para cada ciclo são executadas em paralelo. Quando utilizar variáveis em ciclos, execute o ciclo sequencialmente para que as variáveis devolvam resultados previsíveis.

Pré-requisitos

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

  • Um fluxo de trabalho de aplicação lógica onde pretende criar a variável e um acionador que inicia o fluxo de trabalho.

    Antes de poder adicionar ações para criar e trabalhar com variáveis, o fluxo de trabalho tem de começar com um acionador como o primeiro passo no fluxo de trabalho. Para obter mais informações, veja Criar um fluxo de trabalho com um acionador ou ação.

Os passos seguintes utilizam o portal do Azure, mas com a extensão adequada do Azure Logic Apps, também pode utilizar as seguintes ferramentas para criar fluxos de trabalho de aplicações lógicas:

Com base no facto de ter um fluxo de trabalho Consumo ou Standard, siga os passos correspondentes:

Inicializar variável

Pode criar uma variável e declarar o tipo de dados e o valor inicial com uma única ação no fluxo de trabalho. Só pode declarar variáveis ao nível global, não dentro de âmbitos, condições e ciclos.

  1. No portal do Azure, abra o fluxo de trabalho no estruturador.

  2. No estruturador, siga estes passos gerais para adicionar uma ação com o nome Initialize variable (Inicializar variável).

  3. Forneça as seguintes informações sobre a variável:

    Propriedade Necessário Valor Descrição
    Nome Yes <nome da variável> O nome da variável a incrementar
    Tipo Yes <tipo de variável> O tipo de dados da variável
    Valor No <valor inicial> O valor iniciar da variável

    Sugestão: embora seja opcional, defina o valor como uma melhor prática para que saiba sempre o valor inicial da variável.

    O exemplo seguinte mostra os valores iniciais desta variável de exemplo:

    Captura de ecrã a mostrar portal do Azure, Fluxo de trabalho do consumidor e ação com o nome Initialize variable (Inicializar variável).

  4. Continue agora a adicionar as ações que pretende para o seu cenário. Quando terminar, na barra de ferramentas do estruturador, selecione Guardar.

Se mudar do estruturador para a vista de código, o exemplo seguinte mostra como a ação Inicializar variável aparece na definição do fluxo de trabalho, que está no formato JSON (JavaScript Object Notation):

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ 
            {
               "name": "Count",
               "type": "Integer",
               "value": 0
            }
         ]
      },
      "runAfter": {}
   }
},

Nota

Embora a ação Inicializar variável tenha um "variables" objeto estruturado como uma matriz, a ação pode criar apenas uma variável de cada vez. Cada nova variável requer uma ação individual Inicializar variável .

Os exemplos seguintes mostram outros tipos de variáveis:

Variável booleana

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myBooleanVariable",
               "type": "boolean",
               "value": false
            }
         ]
      },
      "runAfter": {}
   }
},

Variável flutuante

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myFloatVariable",
               "type": "float",
               "value": 1.99999
            }
         ]
      },
      "runAfter": {}
   }
},

Variável de cadeia

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myStringVariable",
               "type": "string",
               "value": "lorem ipsum"
            }
         ]
      },
      "runAfter": {}
   }
},

Variável de objeto

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "MyObjectVariable",
               "type": "object",
               "value": {
                  "ProductItem": {
                     "Name": "myProductName",
                     "ProductID": "000000"
                  }
               }
            }
         ]
      },
      "runAfter": {}
   }
},

Matriz com números inteiros

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": [1, 2, 3]
            }
         ]
      },
      "runAfter": {}
   }
},

Matriz com cadeias

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [
            {
               "name": "myArrayVariable",
               "type": "array",
               "value": ["red", "orange", "yellow"]
            }
         ]
      },
      "runAfter": {}
   }
},

Obter o valor de uma variável

Para obter ou referenciar os conteúdos de uma variável, pode utilizar a função variables() no estruturador de fluxo de trabalho e no editor de vista de código. Quando referencia uma variável, utilize o nome da variável como token e não o nome da ação, que é a forma habitual de referenciar as saídas de uma ação.

Por exemplo, a seguinte expressão obtém os itens da variável de matriz que é criada neste guia com a variables() função. A string() função devolve os conteúdos da variável no formato de cadeia: "1, 2, 3, red"

@{string(variables('myArrayVariable'))}

Variável incrementar

Para aumentar ou incrementar uma variável por um valor constante específico, adicione a ação variável Incrementar ao fluxo de trabalho. Esta ação funciona apenas com variáveis de número inteiro e flutuante.

  1. No estruturador do fluxo de trabalho, siga estes passos gerais para adicionar uma ação denominada Variável incremento.

  2. Forneça as seguintes informações para esta ação:

    Propriedade Necessário Valor Descrição
    Nome Yes <nome da variável> O nome da variável a incrementar
    Valor No <increment-value> O valor utilizado para incrementar a variável. O valor predefinido é 1.

    Sugestão: embora seja opcional, defina este valor como uma melhor prática para que saiba sempre o valor específico para incrementar a variável.

    O exemplo seguinte mostra os valores de exemplo desta ação:

    Captura de ecrã a mostrar portal do Azure, Fluxo de trabalho de consumo e ação com o nome Variável incremento.

  3. Quando terminar, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.

Se mudar do estruturador para a vista de código, o exemplo seguinte mostra como a ação variável Incrementar aparece na definição do fluxo de trabalho, que está no formato JSON:

"actions": {
   "Increment_variable": {
      "type": "IncrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Exemplo: Criar contador de ciclos

As variáveis são normalmente utilizadas para contar o número de vezes que um ciclo é executado. Este exemplo mostra como pode criar e utilizar variáveis para esta tarefa ao criar um ciclo que conta os anexos num e-mail.

  1. No portal do Azure, crie o recurso da aplicação lógica Consumo com um fluxo de trabalho em branco. Adicione um acionador que verifique se existem novos e-mails e anexos.

    Este exemplo utiliza o Office 365 acionador do Outlook para Quando é recebido um novo e-mail. Pode configurar este acionador para ser acionado apenas quando o e-mail tiver anexos. No entanto, pode utilizar qualquer conector que verifique a existência de novos e-mails com anexos, como o conector Outlook.com.

  2. No acionador, para procurar anexos e transmitir esses anexos para o fluxo de trabalho, selecione Sim para as seguintes propriedades:

    • Apenas com Anexo
    • Incluir Anexos

    Captura de ecrã a mostrar portal do Azure, Fluxo de trabalho de consumo e propriedades selecionadas para verificar e incluir anexos.

  3. Adicione a ação Inicializar variável para criar uma variável de número inteiro com o nome Contagem que tem um valor inicial definido como 0.

  4. Para iterar cada anexo, siga estes passos gerais para adicionar uma ação denominada Para cada ciclo.

  5. No ciclo, selecione dentro da caixa com o nome Selecionar uma saída dos passos anteriores. Após a apresentação da lista de conteúdos dinâmicos, em Quando é recebido um novo e-mail, selecione Anexos.

    Captura de ecrã a mostrar Fluxo de trabalho consumo, para cada ciclo, lista de conteúdos dinâmicos abertos e saída de Anexos selecionada.

    A propriedade Anexos transmite uma matriz que contém os anexos de e-mail da saída do acionador para o ciclo para o fluxo de trabalho iterar.

  6. Em Para cada ciclo, selecione Adicionar uma ação.

  7. Siga estes passos gerais para adicionar uma ação denominada variável Incremento ao ciclo.

    Nota

    Certifique-se de que a ação da variável Incremento é apresentada dentro do ciclo. Se a ação aparecer fora do ciclo, arraste a ação para o ciclo.

  8. Na ação Variável incrementar , na lista Nome , selecione a variável Contar . Defina a propriedade Valor como 1.

    Captura de ecrã a mostrar Fluxo de trabalho de consumo com a variável selecionada denominada Contagem.

  9. Sob o ciclo, adicione qualquer ação que lhe envie o número de anexos. Na sua ação, inclua o valor da variável Contar , por exemplo:

    Captura de ecrã a mostrar Fluxo de trabalho de consumo e uma ação que envia resultados.

  10. Quando terminar, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.

Testar o fluxo de trabalho

  1. Para acionar manualmente o fluxo de trabalho, siga o passo correspondente:

    Fluxo de trabalho de consumo

    Na barra de ferramentas do fluxo de trabalho do estruturador, selecione Executar Execução do Acionador> para executar manualmente o fluxo de trabalho.

    Fluxo de trabalho padrão

    No menu de fluxo de trabalho, selecione Descrição geral. Na barra de ferramentas, selecione Executar>Executar.

  2. Envie um e-mail com um ou mais anexos para a conta de e-mail que utilizou neste exemplo.

    Este passo aciona o acionador de fluxo de trabalho, que cria e executa uma instância de fluxo de trabalho. Como resultado, o fluxo de trabalho envia-lhe uma mensagem ou e-mail que mostra o número de anexos no e-mail que enviou.

Se mudar do estruturador para a vista de código, o exemplo seguinte mostra como o ciclo For each aparece juntamente com a ação incrementar variável na definição do fluxo de trabalho, que está no formato JSON:

"actions": {
   "For_each": {
      "type": "Foreach",
      "actions": {
         "Increment_variable": {
           "type": "IncrementVariable",
            "inputs": {
               "name": "Count",
               "value": 1
            },
            "runAfter": {}
         }
      },
      "foreach": "@triggerBody()?['Attachments']",
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Variável de decremento

Para diminuir ou diminuir uma variável por um valor constante específico, siga os passos para incrementar uma variável , exceto adicionar a ação variável Decrement ao fluxo de trabalho. Esta ação só funciona com variáveis de número inteiro e flutuante.

A tabela seguinte descreve as informações da ação da variável Decrement :

Propriedade Necessário Valor Descrição
Nome Yes <variable-name> O nome da variável para decrementar
Valor No <increment-value> O valor para decrementar a variável. O valor predefinido é um.

Sugestão: embora seja opcional, defina este valor como uma melhor prática para que saiba sempre o valor específico para decrementar a variável.

Se mudar do estruturador para a vista de código, o exemplo seguinte mostra como a ação variável Decrement aparece na definição do fluxo de trabalho, que está no formato JSON:

"actions": {
   "Decrement_variable": {
      "type": "DecrementVariable",
      "inputs": {
         "name": "Count",
         "value": 1
      },
      "runAfter": {}
   }
},

Definir variável

Para atribuir um valor diferente a uma variável existente, siga os passos para incrementar uma variável com as seguintes exceções:

  1. Em alternativa, localize e selecione a ação Definir variável .

  2. Indique o nome e o valor da variável que pretende atribuir. Tanto o novo valor como a variável têm de ter o mesmo tipo de dados. O valor é necessário porque esta ação não tem um valor predefinido.

A tabela seguinte descreve as informações da ação Definir variável :

Propriedade Necessário Valor Descrição
Nome Yes <variable-name> O nome da variável a alterar
Valor Yes <novo valor> O valor que pretende atribuir à variável. Ambos têm de ter o mesmo tipo de dados.

Nota

A menos que esteja a incrementar ou a decrementar variáveis, alterar variáveis dentro de ciclos pode criar resultados inesperados porque os ciclos são executados em paralelo, ou em simultâneo, por predefinição. Nestes casos, experimente definir o ciclo para ser executado sequencialmente. Por exemplo, quando quiser referenciar o valor da variável dentro do ciclo e esperar o mesmo valor no início e no fim dessa instância de ciclo, siga estes passos para alterar a forma como o ciclo é executado:

  1. No ciclo, localize e abra as definições de ciclo.

  2. Com base no tipo de fluxo de trabalho, siga os passos correspondentes:

    • Consumo: altere a definição Controlo de Simultaneidade de Desativado para Ativado.

    • Padrão: em Geral, altere a definição Controlo de Simultaneidade de Desativado para Ativado.

  3. Arraste o controlo de deslize Grau de Paralelismo para 1.

Se mudar do estruturador para a vista de código, o exemplo seguinte mostra como a ação Definir variável aparece na definição do fluxo de trabalho, que está no formato JSON:

O exemplo seguinte altera o Count valor atual da variável para outro valor:

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
               "name": "Count",
               "type": "Integer",
               "value": 0
          } ]
      },
      "runAfter": {}
   },
   "Set_variable": {
      "type": "SetVariable",
      "inputs": {
         "name": "Count",
         "value": 100
      },
      "runAfter": {
         "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Acrescentar à variável

Para variáveis que armazenam cadeias ou matrizes, pode inserir ou acrescentar o valor de uma variável como o último item nessas cadeias ou matrizes. Pode seguir os passos para incrementar uma variável com as seguintes exceções:

  1. Localize e selecione uma destas ações com base no facto de a variável ser uma cadeia ou uma matriz:

    • Acrescentar à variável de cadeia
    • Acrescentar à variável de matriz
  2. Indique o valor a acrescentar como o último item na cadeia ou matriz. Este valor é preciso.

A tabela seguinte descreve as informações das ações Acrescentar a...

Propriedade Necessário Valor Descrição
Nome Yes <variable-name> O nome da variável a alterar
Valor Yes <valor de acréscimo> O valor que pretende acrescentar, que pode ter qualquer tipo

Se mudar do estruturador para a vista de código, o exemplo seguinte mostra como a ação Acrescentar à variável de matriz aparece na definição do fluxo de trabalho, que está no formato JSON.

O exemplo seguinte cria uma variável de matriz e adiciona outro valor como o último item na matriz. O resultado é uma variável atualizada que contém esta matriz: [1,2,3,"red"]

"actions": {
   "Initialize_variable": {
      "type": "InitializeVariable",
      "inputs": {
         "variables": [ {
            "name": "myArrayVariable",
            "type": "Array",
            "value": [1, 2, 3]
         } ]
      },
      "runAfter": {}
   },
   "Append_to_array_variable": {
      "type": "AppendToArrayVariable",
      "inputs": {
         "name": "myArrayVariable",
         "value": "red"
      },
      "runAfter": {
        "Initialize_variable": [ "Succeeded" ]
      }
   }
},

Passos seguintes