← 全部文章
应用搭建 业务决策者 已发布 · · 作者 ObjectStack Team

审批与暂停恢复:自动化引擎为什么必须会等待

企业流程经常要等人审批、等用户补材料、等时间到达或等外部结果。自动化引擎只有支持暂停和恢复,才能把这些等待放进同一条完整流程。

审批与暂停恢复:自动化引擎为什么必须会等待
  • ObjectOS
  • 自动化引擎
  • 审批
  • 暂停恢复

先给结论:审批不该是另一套系统。自动化引擎只有会“暂停和恢复”(等人、等材料、等时间、等外部回调),才能把审批、等待和真实业务流程合成一条,而不是割裂成孤岛。

很多流程不是“触发后立刻做完”,而是“做到一半,等人、等时间、等外部结果”。

如果自动化引擎不会等待,审批就会被拆到另一套系统里;如果它不会恢复,流程后半段就只能靠脚本、回调和人工补救拼起来。

很多自动化工具擅长做短任务:触发后马上执行几个动作,然后结束。

但企业流程很少这么简单。它经常需要等人审批、等用户补充材料、等三天后检查结果、等外部系统回调。流程不是几秒钟跑完,而是可能持续数小时、数天甚至数周。

这就是为什么自动化引擎必须支持暂停和恢复。

如果没有这个能力,审批就会被做成另一套系统,等待会被做成定时任务,外部回调会被做成 Webhook 脚本。业务流程被切成很多段,系统能跑,但很难看成一条完整链路。

暂停和恢复让审批进入同一条流程

审批为什么不应该独立成孤岛

很多企业系统里,审批是独立模块:业务系统发起审批,审批系统处理人同意或拒绝,再回调业务系统更新状态。

这能工作,但会带来割裂。

业务人员想知道一条折扣申请为什么被拒绝,需要同时看商机记录、审批记录、通知记录和后台日志。管理员想修改流程,也要分开改自动化规则和审批规则。

更好的方式是把审批作为流程中的一个节点。

例如折扣审批流程可以是:

  1. 商机折扣超过阈值;
  2. 自动检查金额、客户等级和利润率;
  3. 暂停,等待销售经理审批;
  4. 如果折扣更高,再暂停等待财务审批;
  5. 通过后生成正式报价;
  6. 拒绝后退回销售并记录原因。

审批不是另一个系统里的黑盒,而是这条流程中会暂停的步骤。

暂停不是停止

暂停和停止不同。

停止意味着流程结束;暂停意味着流程还活着,只是在等待一个信号。

这个信号可能来自:

  • 经理批准或拒绝;
  • 用户提交补充表单;
  • 三天等待时间到达;
  • 外部系统返回处理结果;
  • 管理员手动恢复;
  • 另一个流程完成。

自动化引擎暂停时,需要保存当前上下文:流程运行到哪个节点、已经产生了哪些变量、前面哪些步骤成功、等待哪个人或哪个事件、恢复后应该走哪条分支。

没有这些上下文,恢复就会变成“重新跑一遍”,容易造成重复通知、重复创建任务、重复调用外部系统。

为什么暂停恢复是企业流程分水岭

是否支持暂停恢复,决定了自动化引擎能不能承载真正的业务流程。

短任务自动化只需要执行器;长流程自动化需要状态管理。

例如:

  • 报销复核要等待员工补充发票;
  • 合同审批要等待法务修改条款;
  • 供应商准入要等待外部资质结果;
  • 客服升级要等待研发确认原因;
  • 项目变更要等待多个负责人意见。

这些都不是“立即执行”。它们需要在等待期间保留业务状态,等信号回来后继续。

如果平台不支持暂停恢复,就会让每个模块自己保存状态。最后系统里会出现很多半流程:审批表里一段、定时任务里一段、业务对象里一段、脚本里一段。

审批通过和拒绝应该进入不同分支

审批节点不只是“等待一下”。

它的结果会决定流程分支。

例如:

  • 经理批准:继续财务审批;
  • 经理拒绝:退回销售并要求补充说明;
  • 财务批准:生成正式报价;
  • 财务拒绝:标记为需重新定价;
  • 超时未处理:升级给上级。

这要求自动化引擎把审批结果作为结构化信号,而不是一段文字备注。

当审批结果回到流程里,后续动作才能根据 approve、reject、timeout 等分支稳定执行。业务人员也能在流程图上看见不同结果会走向哪里。

等待时间也是一种暂停

暂停不只发生在人工审批。

很多业务规则都和时间有关:

  • 提交报价后 3 天未回复,提醒销售;
  • 工单 4 小时未响应,升级主管;
  • 合同到期前 30 天创建续约任务;
  • 供应商资料提交后 7 天未审核,通知采购经理。

如果等待时间只靠定时任务扫描,很容易变成另一套逻辑。更好的方式是:流程走到等待节点,记录等待到什么时候;时间到后,流程从等待节点继续执行。

这样,时间驱动的动作也在同一条流程里,而不是藏在后台任务里。

外部回调也需要恢复流程

跨系统流程常常需要等待外部结果。

例如:

  • 电子签约完成后继续开户;
  • 支付成功后启动实施;
  • 外部风控返回后进入复核;
  • 物流异常确认后通知客户。

这些场景里,外部系统回调不是重新触发一条新流程,而是恢复原来的流程。只有这样,平台才能知道它等待的是哪一条业务记录、哪个节点、哪个外部请求。

这能避免一个常见问题:回调到了,但系统不知道它属于哪条流程,只能靠查表和猜状态来处理。

暂停期间也要有可见性

很多流程不是失败了,而是卡住了。

审批人在休假,外部系统没返回,客户没有补充材料,等待节点时间还没到。业务人员需要知道流程停在哪里。

一个好的自动化引擎应该能展示:

  • 当前等待的节点;
  • 等待对象是谁或什么事件;
  • 已等待多久;
  • 是否快要超时;
  • 超时后会走哪个分支;
  • 谁可以手动干预。

这让流程从“后台自动化”变成“可运营流程”。运营团队可以发现瓶颈,管理员可以优化节点,管理者可以看到流程效率。

ObjectOS 的差异

ObjectOS Automation 把审批、等待和外部信号视为流程能力,而不是外围插件。

当流程运行到需要人或时间的节点时,它可以暂停;当审批结果、时间或外部事件回来时,它可以从正确上下文继续。通过、拒绝、超时和失败都能进入不同分支,并留下运行记录。

这让审批不再是另一套系统,等待不再是散落的定时任务,外部回调也不再是孤立脚本。

对企业来说,这一点非常关键。真正的业务自动化不是让系统在几秒钟内做完所有事,而是让系统在几天、几周的业务周期里,始终知道流程在哪里、等谁、下一步做什么。

暂停和恢复,是自动化引擎从任务执行器走向业务流程运行时的分界线。