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 de fluxo.

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

Para saber como os dados se movem entre os nós e as variáveis modelar em profundidade, consulte Variáveis e fluxo de dados.

Referências de variáveis

Cada valor que você faz referência reside 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 sob .output. A forma desse objeto depende do nó; portanto, consulte a página de referência de cada nó para seus campos de saída.
  • Variáveis: $vars.<name>.
  • Entradas do gatilho: $vars.<triggerName>.output.<inputName>.

Para propriedades aninhadas, use a notação de ponto; 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 circundando chaves duplas. Use isso apenas quando texto de solicitação ou modelo é esperado:

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

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

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

Operadores

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 de modelo combinam variáveis e texto estático:

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

Encadeamento opcional

?. 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 alguma propriedade intermediária for nula ou indefinida.

Combinação nula

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

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

Erros comuns

ProblemaCausaO que fazer
Uma expressão é resolvida para undefinedVocê fez referência à saída de um nó antes que esse nó seja executado ou de um campo que não existe na saídaSaída de referência apenas de nós upstream; verifique a página de referência do nó para seus campos de saída reais. Use encadeamento opcional (?.) para propriedades que podem estar ausentes.
Uma condição Decision ou Switch comporta-se de forma inesperada ou falhaA condição não é uma expressão booleana apenas, por exemplo, ela é escrita como uma instrução returnGrave uma expressão simples que seja resolvida em 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 nenhuma saída por conta própria.Faça referência apenas às variáveis mostradas no seletor de variáveis para esse nó. resolve $vars para variáveis no 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 é somente upstream — um nó não pode ver nós downstream, nós de ramificação irmã ou nós dentro de um loop do qual já saiuReestruturar para que o nó de produção esteja upstream de onde você faz referência a ele ou carregue o valor por meio de uma variável que esteja 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 nela (ou seu caminho de erro está conectado)Habilite o tratamento de erros 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 modo: {{ }} funciona apenas em campos literais (texto)Use {{ $vars.x }} em campos de texto simples; nos campos de expressão e nas condições Decision e Switch, escreva $vars.x diretamente sem chaves.

As condições Decision e Switch são executadas como expressões no runtime. Uma instruçã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 período de design. 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 é o melhor esforço. Referências em saídas amplamente digitadas (objetos ou arrays digitados como any) não são totalmente validadas, portanto, um erro de digitação em um nome de campo aninhado pode passar sem um aviso — verifique duas vezes 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