Skip to main content

动态变量

在 RPA 自动化流程中,变量是存储和传递数据的核心。当您在某个组件的配置中(例如“设置变量”模块的“数据来源”选择“动态”,或在其他组件的输入框中)需要引用已存在的变量值时,请使用以下模板语法:

变量引用基础语法

所有变量都通过双花括号加 @ 符号和变量的完整引用路径的方式进行引用。变量的引用路径可能包含特定的前缀,这些前缀用于指示变量的类型或来源。

{{@变量完整引用路径}}

以下是您系统中常见的变量类型及其引用方式:

设置变量(自定义变量)

  • 用途: 用于引用您通过“设置变量”模块手动创建和赋值的变量。
  • 前缀: var
  • 语法: {{@var.您的变量名}}
  • 示例: 如果您创建了一个名为 商品名称 的变量,引用方式为 {{@var.商品名称}}

循环变量

  • 用途: 在循环(例如“遍历列表”、“循环次数”等)模块中自动生成的变量,用于表示当前循环的索引或值。
  • 前缀: loop
  • 语法: {{@loop.循环名.index}} (获取当前循环的索引/次数) {{@loop.循环名.value}} (获取当前循环的值,例如在遍历列表时为当前列表项)
  • 说明: 循环 ID 是系统为每个循环模块自动生成的唯一标识符(例如 L-Iu3IK),您可以在循环模块的属性中找到它。
  • 示例: 在一个 ID 为 L-Iu3IK 的循环中,获取当前循环的索引:{{@loop.L-Iu3IK.index}};获取当前循环的值:{{@loop.L-Iu3IK.value}}

采集数据变量

  • 用途: 用于引用通过数据采集模块获取到的数据,这些数据通常以表格或列表的形式组织。
  • 前缀: table
  • 语法: {{@table.采集模块ID.size}} (获取采集到的数据总量/行数) {{@table.采集模块ID.rows}} (获取当前采集到的数据)
  • 说明: 采集模块 ID 是系统为每个数据采集模块自动生成的唯一标识符(例如 C-I12IK)。
  • 示例: 在一个 ID 为 C-I12IK 的数据采集模块中,获取采集到的总行数:{{@table.C-I12IK.size}};获取当前行的所有数据:{{@table.C-I12IK.row}}

文件变量

  • 用途: 用于引用通过“读取文件”或其他文件操作模块获取到的文件内容或文件对象。
  • 前缀: file
  • 语法: {{@file.文件模块ID}}
  • 说明: 文件模块 ID 是系统为每个文件操作模块生成的唯一标识符(例如 F-mRFdB)。此变量的值通常是文件内容的字符串,或一个可以进行后续文件操作的对象。
  • 示例: 读取 ID 为 F-mRFdB 的文件内容:{{@file.F-mRFdB}}

函数变量

  • 用途: 用于调用系统内置的函数或您自定义的函数,并获取其返回值。
  • 前缀: func
  • 语法: {{@func.函数名()}}{{@func.函数名(参数1, 参数2)}}
  • 说明: 您可以直接调用无参数函数,或传递参数给函数。参数可以是静态值,也可以是其他变量。
  • 示例: 获取当前页面的 URL:{{@func.getPageURL()}}

引用复杂数据类型(数组与对象)的内部数据

无论是哪种类型的变量(varlooptablefile),如果其最终存储的值是数组 (Array)对象 (Object) 类型,您都可以利用点语法 (.)数组索引 ([]) 来访问其内部的特定数据,并支持多层嵌套访问。

访问对象属性

对于对象 (Object) 类型的变量,您可以通过点语法 (.) 来访问其内部的属性。

示例: 假设您通过“设置变量”创建了一个名为 用户信息 的对象变量(即 {{@var.用户信息}}),其结构如下:

{
"name": "李四",
"age": 25,
"contact": {
"email": "lisi@example.com",
"phone": "123456789"
}
}

如果您想获取 李四 的姓名:{{@var.用户信息.name}}

如果您想获取 李四 的邮箱(多层嵌套访问):{{@var.用户信息.contact.email}}

访问数组元素

对于数组 (Array) 类型的变量,您可以使用方括号 [] 配合索引来访问特定位置的元素。数组索引从 0 开始。

示例: 假设您通过“采集表格”模块获取到了一些数据,并存储在一个名为 T-Data 的 table 变量中,其中 {{@table.T-Data.rows}}且每行数据是一个包含“商品名称”和“价格”的对象:

[
{ "id": "001", "name": "键盘", "price": 199 },
{ "id": "002", "name": "鼠标", "price": 99 }
]

如果您想获取第一个商品的名称:{{@table.T-Data.rows.[0].name}}

如果您想获取第二个商品的价格(数组索引与嵌套对象访问):{{@table.T-Data.rows.[1].price}}