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 na aba Variáveis do painel de propriedades.

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
  • Direção — entrada, saída ou bidirecional

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 por todo o processo ou valores que definem entradas e saídas para o próprio processo.

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 são de propriedade de seu gatilho, não do processo. 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.

Definições de Variáveis

As definições de variáveis estão na guia Variáveis do painel de propriedades. Cada definição armazena o nome, o tipo e a direção 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 (saída ou direção bidirecional) 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

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