浏览器分身策略
1、前言
花漾灵动PRA的一个核心特性是:能够同时对 多个浏览器分身 执行拟人化操作。针对“拟对哪些浏览器分身执行流程”,我们有两种方法,分别是: 手动添加分身 和 动态添加分身,可以在流程属性的 “分身策略” 中予以设置,如下图所示:
《分身执行策略》
- 手动添加分身:在执行流程任务(或创建流程计划)时,用户需要手动指定浏览器分身列表,但在初始子流程中可以忽略某些分身的执行
- 动态添加分身:在执行流程任务(或创建流程计划)时,用户无需指定任何浏览器分身,但在初始子流程中可以动态添加某些分身,前提是需要对添加的分身拥有权限(团队的超管与BOSS默认拥有对当前团队所有浏览器分身的权限,否则需要明确授权,更进一步信息请阅读 授权一文)
2、初始子流程与清理子流程
针对任何一个流程任务,RPA引擎的执行顺序为:
- 首先执行初始子流程(如果有的话),且只执行一遍
- 然后针对每个浏览器分身,分别执行一遍完整的主流程
- 当所有浏览器分身的主流程全部执行完毕后,开始执行清理子流程(如果有的话),且只执行一遍
《分身执行策略》
综上,针对初始子流程和清理子流程的特性,我们往往将初始子流程用来进行初始化的目的,如拟对哪些浏览器分身执行流程或者拟忽略哪些浏览器分身等; 而将清理子流程用于在流程执行结尾进行收工清理的场景,如生成流程报表等。
3、添加分身与忽略分身
花漾RPA为您提供了两个流程节点,分别是 “添加分身” 与 “忽略分身” :
《添加分身与忽略分身》
- 添加分身:当流程属性的分身策略为“动态添加分身”时,可以通过此节点动态添加拟执行流程的浏览器分身,此节点仅适用于“初始子流程”
- 忽略分身:当流程属性的分身策略为“手动添加分身”时,可以通过此节点忽略已经添加的浏览器分身使其不再执行流程,此节点仅适用于“初始子流程”
这两个节点相对应的脚本为:
rpa.items.addItem(by: 'name' | 'id' = 'name', items: string)
rpa.items.ignoreItem(by: 'name' | 'id' | 'index' = 'name', items: string)
4、在初始子流程中获取输入参数
如前文所述,输入变量 用来在流程执行前要求用户给予明确的赋值用以增强流程的弹性,显然,我们需要在初始子流程中能够获取到输入变量的值。 这里又分两种情况:
- 针对“手动添加分身”的流程,我们需要获取每个分身的输入变量(因为很可能每个分身拥有不同的输入变量)
- 针对“动态添加分身”的流程,我们需要获取一份输入变量(因为无论在初始子流程中添加多少分身,但输入变量只有一份)
针对上述场景,花漾RPA允许在初始子流程里以 _rpa_accountParams 来获取流程输入变量(只限输入变量)。 针对“手动添加分身”的情况,该变量的数据结构为:
_rpa_accountParams = {
[accountId]: {
input_param1: value1,
....
},
[accountId]: ...
}
当流程为“动态添加分身”时,所有的分身共用以下输入变量:
_rpa_accountParams = {
input_param1: value1,
...
}
5、默认打开分身
分身策略中还有一个属性:“默认打开分身”,默认值为开启。该属性的含义是指:当执行到某个分身的主流程时,是否打开此浏览器分身所对应的浏览器窗口。
《流程属性之默认打开分身》
此属性试图解决的场景是:在执行某个分身的主流程时,我们可以事先做各种条件的判断以决定是否要打浏览器,毕竟打开浏览器是一个相对耗时的操作, 如果前期判断根本不需要打开浏览器可以大大加速流程的执行速度。与此相应的是,花漾为您提供了“打开分身”与“关闭分身”两个流程节点:
《打开分身/关闭分身的流程节点》
6、示例:动态指定浏览器分身
在前期的帮助指引中,我们都是设置流程为“手动添加浏览器分身”,这意味着当执行流程任务或者创建流程计划时,用户需要在向导中手动添加浏览器分身。 本示例向大家介绍如何动态指定浏览器分身。
我们假定有一个 Excel 表格,在该表格中列出了拟执行流程的浏览器分身列表名称,如下图所示:
《通过Excel指定拟执行流程的浏览器分身》
针对上述示例,首先,我们需要在流程属性中设置分身策略为“动态添加分身”,然后在浏览定义中创建一个初始子流程,其流程内容如下图所示:
《初始子流程的内容》
针对上述“初始子流程”,大概的讲解如下:
- 打开 Excel 文件
- 循环 Excel 所有的数据内容
- 判断当前是不是第一行
- 如果是第一行(意味着是表头),则忽略且继续下一次循环
- 如果不是第一行(意味着是一个分身名称),则打印日志,输出分身名称
- 同时,动态添加浏览器分身来执行流程
最后,我们发布并执行此流程,在执行向导中可以看到:针对分身策略设置为“动态添加分身”的流程,无法在执行向导中手动指定浏览器分身:
《执行向导》
最后,流程任务的详情如下图所示,可以看到,该流程动态添加了 Excel 中指定的浏览器分身来执行流程:
《流程任务的详情页面》
7、总结
- 针对“拟对哪些浏览器分身执行流程”,我们可以在流程属性的“分身策略”中指定:手动添加分身 或者 动态添加分身。
- 手动添加分身:在执行流程任务(或创建流程计划)时,用户需要手动指定浏览器分身列表,但在初始子流程中可以通过“忽略分身”的流程节点,用来忽略某些分身的执行
- 动态添加分身:在执行流程任务(或创建流程计划)时,用户无需指定任何浏览器分身,但在初始子流程中可以通过“添加分身”的流程节点,用来动态添加某些分身执行流程