存储服务

1、关于存储服务

存储服务,是由RPA引擎提供的一种能够将数据进行持久化保存与访问的服务。在谈及存储服务之前,我们首先回顾一下RPA中的变量,花漾RPA将变量分为四类,分别是:

  1. 临时变量 :在某个表达式或者某个代码片断中声明的变量,临时变量的声明周期仅在此表达式或者代码片断中有效
  2. 流程变量 :由用户自行声明的、只在当前流程(不跨流程)内有效、可读写的变量
  3. 输入变量 :一种特殊的流程变量,它也是由用户自行声明、只在当前流程(不跨流程)内有效、可读写的变量,在流程执行前会要求用户对每个输入变量给予明确的赋值
  4. 系统变量 :系统预置、全局(跨主子流程)有效、只读的变量;系统变量主要用来传递当前上下文信息

显然,变量存在一些无法克服的场景,如:

  1. 如果希望在某个流程执行期间将变量存储起来,下次执行流程时能够读取上次流程存储的数据,变量无法完成此需求
  2. 如果希望在主子流程之间共享变量,尽管全局变量可以跨主子流程,但全局变量是只读的,显然也无法完成我们的需求

在上述这些场景中,都可以使用到花漾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、流程展示

   

《读取数据并使用》

最后更新于 2023-08-30 17:48
回到顶部