UiPath Documentation
maestro
latest
false
Maestro 用户指南
重要 :
新发布内容的本地化可能需要 1-2 周的时间才能完成。

表达式语法

JavaScript 表达式语法,适用于 Flow 工作流中的变量、运算符和条件。

流表达式是 JavaScript。它们引用带有$vars前缀的变量,并计算配置字段、决策和切换条件以及脚本代码中的值。

有关数据如何在节点和变量模型之间深度移动,请参阅变量和数据流

变量引用

您引用的每个值都位于$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
  • 节点输出$vars.<nodeName>.output 。每个节点都在.output下公开其结果。该对象的形状取决于节点,因此请参阅每个节点的参考页面,以了解其输出字段。
  • 变量$vars.<name>
  • 触发器输入$vars.<triggerName>.output.<inputName>

对于嵌套属性,请使用点符号;对于数组元素,请使用方括号表示法:

$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

编写表达式的位置

根据字段的不同,流具有两种模式:

“文字”(文本)字段— 在带有双大括号的文本中嵌入表达式。仅在需要提示词或模板化文本的情况下使用此选项:

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

表达式字段(“决策”和“切换”条件,“更新变量”部分)和脚本代码 — 直接写入表达式,不使用大括号:

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

运算符

支持的标准 JavaScript 运算符:

运算符示例结果
平等$vars.status === "active"true 或者 false
不等式$vars.count !== 0true 或者 false
比较$vars.price > 100true 或者 false
逻辑与$vars.isVerified && $vars.isActivetrue 或者 false
逻辑或$vars.role === "admin" || $vars.role === "owner"true 或者 false
三元$vars.count > 0 ? "has items" : "empty"字符串

字符串运算

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

模板字面量将变量和静态文本结合在一起:

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

可选链接

使用?.可安全访问可能未定义的属性:

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

如果任何中间属性为 null 或未定义,则返回undefined而不是引发运行时错误。

空值合并

使用??当值为 null 或“未定义”时提供默认值:

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

常见错误

症状原因待执行操作
表达式解析为 undefined您在节点运行之前引用了节点的输出,或输出中不存在的字段仅参考来自上游节点的输出;请查看节点的参考页面,了解其实际输出字段。对可能缺失的属性使用可选链接 ( ?. )。
决策或切换条件行为异常或失败条件不是纯布尔值表达式,例如,可以编写为return语句编写一个解析为truefalse明文表达式,例如$vars.order1.output.total > 1000 。不要使用return
Cannot find name '$vars' (或'$self'变量不在此节点的作用域内,或者在节点上使用了$self ,而节点本身无法产生输出仅引用该节点的变量选取器中显示的变量。$vars仅解析为作用域内的变量; $self仅适用于生成输出的节点。
其他节点的值无法引用作用域仅限上游 — 节点无法查看下游节点、同级分支节点或其已退出循环内的节点重组,以便生产节点位于您引用它的位置的上游,或通过作用域内的变量携带该值。
$vars.<node>.error 不可用仅当在节点上启用了错误处理(或已连接其错误路径)时,节点的错误输出才在范围内。在节点上启用错误处理,或连接其错误句柄,然后引用$vars.<node>.error
{{ }} 显示为原义文本,或文本字段无法解析模式不匹配: {{ }}仅适用于文本(文本)字段仅在纯文本字段中使用{{ $vars.x }} ;在表达式字段以及“决策”和“切换”条件中,直接写入$vars.x ,不带大括号。

决策和切换条件在运行时作为表达式运行。return语句仅在脚本节点代码中有效。

注意

  • 表达式在运行时而非设计时求值。执行节点时,会出现语法错误。
  • 配置字段中的表达式必须解析为该字段预期的类型,条件字段必须解析为truefalse
  • 您可能会在.flow文件中看到==js:前缀是内部序列化格式。您永远不会在编辑器中输入这些值。
  • 类型检查会尽最大努力。对松散类型输出(类型为any对象或数组)的引用未经过完全验证,因此嵌套字段名称中的拼写错误可能会在没有警告的情况下通过——根据节点的输出仔细检查嵌套路径。

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新