如何在Blue Prism中实现多流程按顺序自动连续运行(前序流程终止后仍执行后续流程)
在Blue Prism中实现流程连续调度(异常不中断)
我来给你梳理下实现这个需求的具体方案,核心就是把每个子流程的执行做异常隔离,不让单个流程的失败拖垮整个调度链。你之前直接用Process串联的方式会让异常向上冒泡,导致整个流程终止,我们通过主调度流程+错误捕获机制就能解决这个问题。
1. 创建主调度流程
首先新建一个专门的调度流程(比如命名为Main_Scheduler),这个流程作为入口,负责依次触发所有要执行的子流程。如果你的子流程数量是固定的,直接用顺序步骤排列即可;如果需要动态调整,建议用一个Collection来存储所有子流程的名称,后续通过循环遍历调用,灵活性更高。
2. 为每个子流程调用添加异常隔离
这是关键步骤,要确保单个子流程的失败不会终止主调度:
- 拖一个Block到主流程里,把
Process Start动作放在Block内部,配置好要启动的子流程名称。 - 右键点击这个Block,选择Add Exception Handler,在Handler分支里做错误处理:
- 用
Write to Log记录错误详情(比如异常信息、失败的流程名称) - 可以添加标记动作(比如把该流程的执行状态写入Collection)
- 处理完后直接让流程进入下一个步骤,不要抛出新异常或终止流程
- 用
- 如果需要等待子流程执行完成,在
Process Start后添加Process Wait动作,获取子流程的最终状态(比如Process.Status),即使状态是Terminated,也只记录日志,继续执行下一个流程。
3. 动态调度的优化方案(可选)
如果你的子流程列表需要经常调整,推荐用Collection来管理:
- 创建一个包含
ProcessName列的Collection,把所有要执行的子流程名称填进去 - 用
Loop动作遍历这个Collection,每次循环取出当前流程名,执行Process Start和后续的状态检查、错误处理 - 后续新增或删除子流程,只需要修改这个Collection即可,不用改动主调度流程的结构
4. 额外建议
- 完善日志:每个子流程执行前、执行成功/失败后都记录详细日志,方便后续排查问题
- 重试机制:如果某些子流程允许重试,可以在Exception Handler里添加重试逻辑(比如重试2次后再标记失败,继续下一个流程)
- 状态汇总:调度结束后,可以把所有子流程的执行状态汇总输出,方便查看整体执行情况
举个简单的流程结构示例:
Start → 初始化流程列表Collection → 循环遍历Collection → Block(记录启动日志 → Process Start → Process Wait → 记录成功日志)→ Exception Handler(记录失败日志)→ 循环结束 → 输出状态汇总 → End
这样即使某个子流程执行失败甚至Terminated,主调度流程也会继续执行下一个子流程,不会被中断。
内容的提问来源于stack exchange,提问作者user11953618
相关产品推荐
相关产品推荐

