帮助中心 >
存储服务
1、关于存储服务
存储服务,是由RPA引擎提供的一种能够将数据进行持久化保存与访问的服务。在谈及存储服务之前,我们首先回顾一下RPA中的变量,花漾RPA将变量分为四类,分别是:
- 临时变量 :在某个表达式或者某个代码片断中声明的变量,临时变量的声明周期仅在此表达式或者代码片断中有效
- 流程变量 :由用户自行声明的、只在当前流程(不跨流程)内有效、可读写的变量
- 输入变量 :一种特殊的流程变量,它也是由用户自行声明、只在当前流程(不跨流程)内有效、可读写的变量,在流程执行前会要求用户对每个输入变量给予明确的赋值
- 系统变量 :系统预置、全局(跨主子流程)有效、只读的变量;系统变量主要用来传递当前上下文信息
显然,变量存在一些无法克服的场景,如:
- 如果希望在某个流程执行期间将变量存储起来,下次执行流程时能够读取上次流程存储的数据,变量无法完成此需求
- 如果希望在主子流程之间共享变量,尽管全局变量可以跨主子流程,但全局变量是只读的,显然也无法完成我们的需求
在上述这些场景中,都可以使用到花漾RPA的 存储服务 以达成您的需求。
2、存储服务简介
花漾RPA的存储服务本质是一个可持久化的 键值对数据库 ,其用法如下所示:
存储服务接口 | 参数说明 | |
---|---|---|
rpa.db(scope) | 返回一个键值对数据库 scope=item:只有当前浏览器分身(暨item)在本次流程任务中可以访问 scope=task:当前流程任务中的每个分身(暨item)都可以访问(仅限于本次流程任务) scope=flow:存储的数据只要是当前流程定义都可以访问(不限哪次流程任务) scope=team:存储的数据在当前团队的所有流程都可以访问(不限流程定义、不限流程任务) scope=local:存储在当前执行流程的花漾客户端所在主机的文件系统中,凡在此主机中执行的其它流程均可读取(只和主机有关,和花漾客户端的登录用户、以及用户所在团队均没有关系,且不限流程定义,不限流程任务) 注1: scope 不填默认为 flow 注2:当scope为 task/item 时为内存记录,保存的数据不会持久化 |
|
rpa.db().get(key) | 获取一个之前保存的值, key 不存在时返回 null | |
rpa.db().put(key, value) | 保存一个 value 值到 key 上,注意 value 必须是可序列化成 json 的对象,即调用 JSON.stringify(value) 不会报错 | |
rpa.db().del(key) | 删除 key 以及 key 对应的值 | |
rpa.db().list() | 列出当前保存了哪些 key |
3、使用示例
如果您在流程当中需要读取表格里面的数据来当做参数使用,并且流程在执行多分身并发操作的时候,分身不能读取到了表格里面相同的数据,使用存储服务就能完美的替您解决这个问题。 我们假定有如下一个名称为 抖音视频评论.xlsx 的文件,其文件内容如下图所示:
《Excel文件示例》
声明一个流程变量 {row} 通过存储服务将变量 {row} 进行赋值,通过变量 {row} 的值的不同来告诉分身该读取对应的哪一列数据
《存储服务使用》
《读取变量{row}对应行的数据》
上述流程的源码可通过 花漾RPA市场 获取。
下面为您展示使用存储服务读取不同表格的效果:
《使用存储服务的流程演示效果》
由上述示例动图可见,流程通过存储服务正确的读取到了不同的列数据,分别访问了示例表格里面的两个视频链接,并进行了不同的评论留言。
4、简单使用
1、向数据库中传入数据
《传入数据》
2、向数据库中读取数据
《读取数据》
3、流程展示
《读取数据并使用》