动态变量
在 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()}}
;
引用复杂数据类型(数组与对象)的内部数据
无论是哪种类型的变量(var
、loop
、table
、file
),如果其最终存储的值是数组 (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}}