UiPath Documentation
maestro
latest
false
Guia do usuário do Maestro
Importante :
A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Variáveis e fluxo de dados

Como os dados fluem entre os nós por meio da saída do nó e de variáveis, com regras de escopo para subfluxos e ramificações.

O que é

Os nós no fluxo não compartilham dados automaticamente. Quando um nó produz saída — como uma resposta HTTP ou um valor computado — os nós subsequentes acessam essa saída explicitamente por meio de expressões. Variáveis e fluxo de dados é como você conecta dados entre nós e persiste valores em seu processo.

Há duas maneiras de mover os dados por um processo:

  • Saída de nó — cada nó produz uma saída à qual os nós subsequentes podem fazer referência
  • Variáveis — variáveis no nível do processo que você define para armazenar e passar valores entre os nós

Para a gramática de expressões completa, operadores e como escrever $vars , consulte Sintaxe de expressões.

Como funciona

Saída do nó

Cada nó que produz dados os disponibiliza por meio $vars.<nodeName>.output. O nome do nó é atribuído automaticamente com base no tipo de nó — por exemplo, o primeiro nó de Solicitação HTTP é nomeado httpRequest1, o segundo é httpRequest2.

Você pode ver o nome da variável de um nó no painel de propriedades quando o nó é selecionado.

// Access HTTP Request response
$vars.httpRequest1.output.body
$vars.httpRequest1.output.statusCode

// Access Script return value
$vars.script1.output

// Access a second HTTP Request
$vars.httpRequest2.output.body
// Access HTTP Request response
$vars.httpRequest1.output.body
$vars.httpRequest1.output.statusCode

// Access Script return value
$vars.script1.output

// Access a second HTTP Request
$vars.httpRequest2.output.body

A estrutura de saída depende do tipo de nó. Consulte a página de referência de cada nó para seu formato de saída específico.

Variáveis

Variáveis são valores no nível do processo que persistem durante uma única execução. Você as define no painel Variáveis.

Cada variável tem:

  • Nome — como você faz referência a ele em expressões (por exemplo, $vars.orderTotal)
  • Tipo — String, Número, Booleano, Objeto ou Array

As variáveis no nível do processo são sempre bidirecionais — qualquer nó pode lê-las ou gravá-las. Não há nenhuma configuração de direção a ser configurada. Um valor somente leitura ou somente gravação vem de uma entrada de gatilho ou de uma variável de saída, descrita abaixo.

O fluxo separa esses três tipos de dados onde você os define:

TipoDefinido emDirectionSintaxe de referência
VariávelPainel de VariáveisBidirecional (leitura e gravação)$vars.<name>
EntradaDisparadoraNo nó do gatilhoSomenteLeitura$vars.<triggerName>.output.<name>
Variável de saídaEm um nó finalSomente gravação$vars.<name>

Quando usar variáveis versus saída de nó:

  • A saída de nó ajusta-se aos dados que passam de um nó para o próximo. Esse é o padrão mais comum.
  • As variáveis ajustam valores que devem ser acessíveis em todo o processo.
  • As entradas e saídas ajustam valores que definem o que o próprio processo recebe ou retorna — consulte Entradas de gatilho e Variáveis de saída abaixo.

Nomear variáveis claramente: nomes descritivos e minúsculos com hifens ou CamelCase — como customerEmail, invoiceTotal, apiResponse — permanecem legíveis em traces de execução ao longo do tempo. Nomes e abreviações com uma letra perdem o significado rapidamente.

Entradas do disparo

As variáveis de entrada não são definidas na seção Variáveis — elas são adicionadas diretamente nas Entradas de um nó de gatilho, o que as torna somente leitura. Quando um gatilho é acionado, suas entradas estão disponíveis como $vars.<triggerName>.output.<inputName>:

// Access an input defined on a Manual Trigger named "manualTrigger1"
$vars.manualTrigger1.output.userId
// Access an input defined on a Manual Trigger named "manualTrigger1"
$vars.manualTrigger1.output.userId

Isso se aplica a todos os tipos de gatilhos. Se seu processo tiver vários gatilhos, cada gatilho possui suas próprias entradas — os nós subsequentes fazem referência ao gatilho específico que iniciou a execução.

Variáveis de saída

As variáveis de saída representam o resultado do processo. Você as adiciona diretamente em um nó final, não no painel Variáveis, o que as torna somente para gravação.

// Access an output variable named "finalStatus"
$vars.finalStatus
// Access an output variable named "finalStatus"
$vars.finalStatus

Cada variável de saída tem:

  • Nome — como você faz referência a ele em expressões (por exemplo, $vars.finalStatus)
  • Tipo de dados — String, Número, Boolean, Object ou Array
  • Descrição — uma observação opcional sobre o que o valor representa
  • Valor padrão — um fallback opcional usado quando nada define a variável

O valor de uma variável de saída é definido da mesma forma que qualquer outra variável — da seção Atualizar variável de um nó ou como o valor de retorno de um nó Script.

Definições de Variáveis

As definições de variáveis estão no painel Variáveis. Cada definição armazena o nome e o tipo da variável para que o valor possa ser referenciado de forma consistente durante uma execução.

Atualizações de variáveis

As variáveis podem ser atualizadas pela configuração do nó ou pela saída do nó do Script.

De qualquer nó — seção Atualizar variável

Cada nó tem uma seção Atualizar variável no painel de propriedades. A seção armazena um destino de variável gravável — uma variável de processo ou uma variável de saída — e a expressão JavaScript atribuída a ela. A expressão é avaliada após a conclusão do nó.

De um nó do Script — retornar valor

O valor de retorno de um nó de Script é acessível como $vars.<scriptName>.output. O nó Script também tem a mesma seção Atualizar variável que outros nós para gravações de variáveis diretas:

// The return value becomes $vars.script1.output
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity
};
// The return value becomes $vars.script1.output
return {
  orderTotal: $vars.httpRequest1.output.body.price * $vars.httpRequest1.output.body.quantity
};

Regras de escopo

Um nó pode acessar a saída de:

  • Nós upstream no mesmo escopo — nós no mesmo nível que foram executados antes dele.
  • Nós de contêiner pai — se o nó estiver dentro de um subfluxo ou loop, ele poderá acessar o escopo do pai.

Um nó não pode acessar a saída de:

  • Nós em uma ramificação diferente — se uma Decisão ou Mudar enviou a execução por um caminho diferente, a saída desses nós não estará disponível
  • Nós que não foram executados — a saída só existe após a execução de um nó

Escopo de subfluxo

Os subfluxos criam seu próprio escopo de variável. Os nós dentro de um subfluxo podem acessar:

  • Outros nós dentro do mesmo subfluxo
  • O escopo do processo pai

As variáveis atualizadas dentro de um subfluxo têm namespaces para evitar conflitos com o processo pai. Por exemplo, uma variável counter dentro de um subfluxo chamado subflow1 é referenciada como $vars.subflow1.counter de fora do subfluxo.

O valor de retorno do subfluxo é acessível ao processo pai $vars.<subflowName>.output.

Ramificações paralelas

As ramificações paralelas têm contextos de execução independentes. Mudar uma variável dentro de uma ramificação não torna essa alteração visível em outra ramificação. Um nó Mesclagem consolida saídas de caminhos paralelos quando os caminhos precisam se reconectar.

Padrões

Como criar strings dinâmicas

Os literais de modelo em um nó de Script combinam variáveis e texto estático:

return `Hello ${firstName}, your order #${orderId} has shipped.`;
return `Hello ${firstName}, your order #${orderId} has shipped.`;

Acumulado de valores em um loop

Um padrão de acumulador usa um array inicializado antes do nó Loop e anexado dentro do corpo do loop:

// Script node inside the Loop body
results.push(item.processedValue);
return results;
// Script node inside the Loop body
results.push(item.processedValue);
return results;

Manutenção de valores secretos fora dos logs

Os valores das variáveis secretas são mascarados na interface gráfica, mas podem aparecer em dados de trace exportados. Registrá-los é um risco de exposição de dados.

Exemplo prático

Um processo que busca um usuário de uma API e roteia com base em sua função:

Etapa 1 — Solicitação HTTP (httpRequest1): GET https://api.example.com/users/42

Etapa 2 — Script (script1): extrair a função do usuário

const user = $vars.httpRequest1.output.body;
return {
  name: user.name,
  role: user.role,
  isAdmin: user.role === "admin"
};
const user = $vars.httpRequest1.output.body;
return {
  name: user.name,
  role: user.role,
  isAdmin: user.role === "admin"
};

Etapa 3 — Decisão (decision1): ramificar com status de administrador

Expressão: $vars.script1.output.isAdmin === true

  • Verdadeiro → conceder acesso de administrador
  • False → conceder acesso padrão
  • Sintaxe de expressões — gramática $vars , operadores, onde você escreve expressões, erros comuns
  • Nó de script — escrita de JavaScript, valores de retorno, acesso $vars
  • Nó de decisão — ramificação em expressões
  • A tela — painel de propriedades, painel Variáveis

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades