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.

Sintaxe de expressão

Sintaxe de expressão JavaScript para variáveis, operadores e condições em fluxos de trabalho do Flow.

As expressões de fluxo são JavaScript. Elas fazem referência a variáveis com o prefixo $vars e calculam valores em campos de configuração, condições Decision e Switch e código do Script.

Para entender a fundo como os dados se movem entre nós e o modelo de variáveis, consulte Variáveis e fluxo de dados.

Referências de variáveis​

Cada valor ao qual você faz referência permanece em $vars:

$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
  • Saída do nó: $vars.<nodeName>.output. Cada nó expõe seu resultado em .output. A forma desse objeto depende do nó, portanto, consulte a página de referência de cada nó para obter seus campos de saída.
  • Variáveis: $vars.<name>.
  • Entradas de gatilhos: $vars.<triggerName>.output.<inputName>.

Para propriedades aninhadas, use a notação de pontos; para elementos de array, use a notação de colchetes:

$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id
$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id

Onde você escreve expressões​

O Fluxo tem dois modos, dependendo do campo:

Campos literais (texto) — incorpore uma expressão no texto ao redor com chaves duplas. Use isso apenas quando se espera uma solicitação ou texto com modelo:

https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}
https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}

Campos de expressão (condições Decision e Switch, seção Atualizar variável) e código do Script — escreva a expressão diretamente, sem chaves:

$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200

Operadores​

Os operadores JavaScript padrão são compatíveis:

OperadorExemploResultado
Igualdade$vars.status === "active"true ou false
Desigualdade$vars.count !== 0true ou false
Comparação$vars.price > 100true ou false
E lógico$vars.isVerified && $vars.isActivetrue ou false
Ou lógico$vars.role === "admin" || $vars.role === "owner"true ou false
Ternário$vars.count > 0 ? "has items" : "empty"String

Operações de string​

"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")

Os literais do modelo combinam variáveis e texto estático:

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

Encadeamento opcional​

Use ?. para acessar com segurança propriedades que podem estar indefinidas:

$vars.httpRequest1.output.body?.items?.[0]?.id
$vars.httpRequest1.output.body?.items?.[0]?.id

Retorna undefined em vez de gerar um erro de runtime se qualquer propriedade intermediária for nula ou indefinida.

Coalescência nula​

Use ?? para fornecer um valor padrão quando um valor for nulo ou indefinido:

$vars.userName ?? "Anonymous"
$vars.userName ?? "Anonymous"

Erros comuns​

ProblemaCausaO que fazer
Uma expressão se resolve para undefinedVocê fez referência à saída de um nó antes que ele seja executado, ou a um campo que não existe na saídaFaça referência à saída apenas de nós upstream; verifique a página de referência do nó para obter seus campos de saída reais. Use o encadeamento opcional (?.) para propriedades que podem estar ausentes.
Uma condição de Decision ou Switch se comporta de forma inesperada ou falhaA condição não é uma expressão booleana simples, por exemplo, ela está escrita como uma declaração returnEscreva uma expressão simples que se resolve para true ou false, por exemplo, $vars.order1.output.total > 1000. Não use return.
Cannot find name '$vars' (ou '$self' )A variável não está no escopo neste nó ou $self é usada em um nó que não produz saída por si sóFaça referência apenas às variáveis mostradas no seletor de variáveis para esse nó. $vars resolve apenas para variáveis dentro do escopo; $self está disponível apenas em nós que produzem saída.
Um valor de outro nó não está disponível para referênciaO escopo é apenas upstream — um nó não pode ver nós downstream, nós de ramificações irmãs ou nós dentro de um loop do qual ele já saiuReestruture para que o nó produtor esteja acima do local onde você faz referência a ele ou transporte o valor por meio de uma variável que está no escopo.
$vars.<node>.error não está disponívelA saída de erro de um nó está no escopo apenas quando o tratamento de erros está habilitado nele (ou seu caminho de erro está conectado)Habilite o tratamento de erro no nó ou conecte seu identificador de erro e, em seguida, faça referência a $vars.<node>.error.
{{ }} aparece como texto literal ou um campo de texto não resolveIncompatibilidade de modos: {{ }} funciona apenas em campos literais (texto)Use {{ $vars.x }} apenas em campos de texto simples; em campos de expressão e em condições de Decision e Switch, escreva $vars.x diretamente sem chaves.

As condições de Decision e Switch são executadas como expressões no runtime. Uma declaração return é válida apenas no código de nó do Script.

Observações​

  • As expressões são avaliadas no runtime, não no momento do design. Os erros de sintaxe aparecem quando o nó é executado.
  • Uma expressão em um campo de configuração deve resolver para o tipo que o campo espera — um campo de condição deve resolver para true ou false.
  • Os prefixos = e =js: que você pode ver em um arquivo .flow são formatos de serialização internos. Você nunca os digita no editor.
  • A verificação de tipo é baseada no melhor esforço. Não validamos totalmente as referências em saídas com tipagem fraca (objetos ou arrays digitados como any), então um erro de digitação em um nome de campo aninhado pode passar sem um alerta — verifique com atenção os caminhos aninhados em relação à saída do nó.

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