- Introdução
- Introdução
- Criação com o Maestro BPMN
- Entendendo a modelagem BPMN do Maestro
- Abertura da tela de modelagem
- Modelagem de seu processo
- Alinhamento e conexão de elementos BPMN
- Autopilot para Maestro (visualização)
- Repositório de processos
- Implementação de um processo BPMN simples
- Implementação de um processo BPMN complexo
- Depuração
- Simulação
- Evaluations (Preview)
- Cenários de implementação comuns
- Criação com o Maestro Case
- Introdução ao Maestro Case
- Maestro BPMN versus Maestro Case: quando usar o Case Management
- O ciclo de vida do Maestro Case: do disparo de eventos à experiência do aplicativo
- Crie seu primeiro caso com o Maestro Case
- Build a Maestro Case with a coding agent (preview)
- Definição de chaves de caso (sistema versus externo)
- Estabelecimento de contratos de E/S e de write-back
- Regras de saída e término do estágio inicial
- Modelagem de estágios primário e secundário
- Disparo de um caso a partir do Data Fabric
- Implementação de personas e permissões no nível de estágio
- Configuração de SLAs e regras de escalonamento automatizadas
- Configuração de um loop de retrabalho (reentrada)
- Configuring and testing the Case Manager Agent (preview)
- Contrato de entrada e saída do Case Manager
- Dicionário de componentes Maestro Case
- Criação com o Maestro Flow
- Maestro Automate
- Integrações
- Operando
- Monitoramento
- Otimizando
- Informações de referência
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:
| Operador | Exemplo | Resultado |
|---|---|---|
| Igualdade | $vars.status === "active" | true ou false |
| Desigualdade | $vars.count !== 0 | true ou false |
| Comparação | $vars.price > 100 | true ou false |
| E lógico | $vars.isVerified && $vars.isActive | true 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
| Problema | Causa | O que fazer |
|---|---|---|
Uma expressão se resolve para undefined | Você fez referência à saída de um nó antes que ele seja executado, ou a um campo que não existe na saída | Faç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 falha | A condição não é uma expressão booleana simples, por exemplo, ela está escrita como uma declaração return | Escreva 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ência | O 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á saiu | Reestruture 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ível | A 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 resolve | Incompatibilidade 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
trueoufalse. - Os prefixos
=e=js:que você pode ver em um arquivo.flowsã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ó.