主子流程
1、前言
随着花漾RPA流程引擎的不断增强,处理复杂的业务逻辑愈加复杂。为此花漾为您准备了主流程和子流程相结合的设计模式。这样带来的好处是:既减轻了流程定义编写过程的工作量,又精减了流程定义并大幅降低了引入质量缺陷的概率。
主流程代表整个任务的核心逻辑,而子流程则是主流程中的辅助步骤或模块化功能。它们共同工作,使得流程更加结构化、易于理解和可扩展,为我们的开发工作带来了极大的便利。
2、常规子流程
常规子流程:一种被独立调用和执行的子流程。它可以被主流程或其他子流程随时调用,以完成特定的任务或功能。常规子流程一般是同步执行的,即在调用处等待子流程执行完毕后才继续执行。
我们需要完成这样一个流程:
示例:我们需要完成这样一个流程:打开小红书网站首页,以小红书登录检查作为常规子流程,判断小红书是否登录,未登录使用本机人工干预节点手动登录,已登录则退出子流程。
流程编辑
《主流程》
《常规子流程》
3、初始子流程
初始子流程:在主流程开始时调用的子流程。它可以用于执行一些初始化任务、准备数据或启动其他必要的步骤。初始子流程帮助确保主流程的顺利进行,并提供所需的前置条件。
示例:我们希望动态指定分身来执行小红书点赞图文流程,可以先将流程的分身策略为动态指定分身,在初始子流程中决定拟在哪些分身中执行此流程。
流程编辑
《初始子流程》
《RPA引擎脚本》
4、事件子流程
事件子流程:一种响应特定事件的子流程,通常是由某个触发事件触发的,可以处理特定的业务场景或情况。它们可以实现主流程中的非连续或并行处理逻辑。
示例:在小红书点赞图文的流程的基础上,我们希望有一个辅助子流程通过监听页面事件,判断当前页面是否出现弹窗验证并做出处理。
针对这类场景, 我们可创建一个“检查是否出现验证弹窗”事件子流程,通过该子流程能够时刻监听页面是否出现弹窗并使用图片验证码流程节点来进行处理。
花漾支持使用定时触发以及AJAX请求得到响应来触发事件子流程,这两者的区别是:定时触发指定以某个时间间隔来触发事件子流程,而AJAX请求得到响应则是监听并在收到响应时触发事件子流程。针对具体的AJAX请求,您可以在浏览器的控制台中打开Network模块进行查看。
流程编辑
《主流程》
《监听页面事件》
《事件子流程》
5、清理子流程
清理子流程:在主流程结束时调用的子流程。它用于执行一些清理任务、释放资源或处理一些结束步骤。清理子流程帮助确保主流程完成后进行必要的清理工作。
示例:在多个小红书分身执行小红书图文点赞流程,我们希望在最后一个流程执行结束后可以生成执行报告发送至微信,方便了解各个分身的执行结果。
针对这类场景,我们可创建一个“生成执行报告”清理子流程,通过该子流程能够将执行的结果生成报告通过微信提示我们。
流程编辑
《清理子流程》
变量说明
变量 | 描述 |
---|---|
_rpa_accountParams | 所有分身的输入变量 |
_rpa_accounts | 所有分身信息 |
account.id | 单个分身ID |
account.name | 单个分身名称 |
account.description | 单个分身描述 |
account.success | 单个分身执行状态 |
account.message | 单个分身执行错误原因 |
successsAccountList | 执行成功分身数组 |
failAccountList | 执行失败分身数组 |
resultMsg | 执行结果 |
RPA引擎脚本
resultMsg=`本次流程任务共执行${_rpa_accounts.length}个分身\n`
//如果执行成功分身数量大于0
if(successsAccountList.length>0){
resultMsg+=`其中成功执行分身${successsAccountList.length}个,分别是${successsAccountList.join(",")}\n`
}
//如果执行失败分身数量大于0
if(failAccountList.length>0){
resultMsg+=`其中失败执行分身${failAccountList.length}个,分别是${failAccountList.join(",")}`
}
执行结果
《微信通知》
上述流程的源码可通过 花漾RPA市场 获取。