掌握业务流程中的基于时间的事件
1. BPMN 定时器简介
在业务流程模型与符号(BPMN)中,时间是流程管理的关键维度。定时器是一种特定类型的事件元素,用于处理与时间相关的触发器、约束和延迟。它们使流程建模者能够精确定义当经过特定时间段、到达特定日期或发生周期性循环时,工作流应如何表现。

视觉表示:
-
定时器被描绘为一个包含时钟图标.
-
根据其在图中的位置,它们充当捕获事件(暂停流程直到满足时间条件)或中断/非中断边界事件(基于时间触发替代路径)。
2. 何时以及如何使用定时器
定时器对于创建不单纯依赖人工干预的健壮自动化工作流至关重要。它们通常部署在以下四个关键场景中:
| 场景 | 描述 | 示例 |
|---|---|---|
| 超时与截止日期 | 如果任务耗时过长,则触发替代路径。 | “如果在 48 小时内未收到批准,则升级至经理。” |
| 提醒与升级 | 如果用户未在规定时间窗口内采取行动,则发送通知。 | “如果表单在 3 天内未提交,则发送提醒邮件。” |
| 延迟 | 在继续之前暂停流程特定持续时间。 | 在购买后等待 24 小时再发送满意度调查。 |
| 周期性任务 | 按预定周期触发常规任务。 | 每周一上午 9:00 生成销售报告。 |
3. 案例研究:抵押贷款发放场景
为了理解计时器的实际应用,我们将分析抵押贷款申请流程从基本流程演变为时间管理工作流的过程。
第一阶段:基线流程

抵押贷款发放场景的基础模型
在初始模型中,流程遵循一条简单、线性的路径:
-
开始事件:流程开始。
-
等待申请表:系统等待客户提交其文件。
-
进行评估:银行审核该申请。
-
排他网关(是否发放?):基于评估结果的决策点。
-
是:进入“发放抵押贷款”$rightarrow$ 结束事件。
-
否:进入“发送拒绝通知”$rightarrow$ 结束事件。
-
关键缺陷:
该模型存在一个重大漏洞。“等待申请表”任务是一个被动。如果客户放弃申请或从未提交表格,流程实例将无限期挂起。系统没有超时、提醒用户或关闭过期请求的机制。这会导致“僵尸流程”堵塞系统。
第二阶段:稳健流程

引入消息开始事件和计时器中间事件
为了解决基线模型中的缺陷,工作流通过两个特定的 BPMN 元素进行了增强:一个消息开始事件和一个边界计时器事件.
关键增强功能:
-
消息开始事件(信封图标):
-
流程不再以通用方式启动,而是由外部消息动态触发:“申请请求”.
-
这将立即触发任务“发送申请表包”,从而自动化对客户的初步联络。
-
-
边界计时器事件(时钟图标):
-
计时器附加在“等待申请表”任务的底部边界上。
-
其配置时长为“7 天”.
-
这充当等待任务的监控器。
-
增强流程的工作原理:
-
正常路径:如果客户提交申请表在7 天计时器到期之前,流程将从“等待申请表”直接正常流转至“进行评估”。计时器将被有效取消。
-
异常路径(超时):如果 7 天内未收到申请表:
-
边界计时器将被触发。
-
流程将通过计时器路径退出“等待申请表”任务。
-
流程将执行“发送提醒”任务。
-
循环:关键在于,“发送提醒”的箭头循环回到“等待申请表”的输入端。这将重置等待状态,给予客户另外 7 天的时间进行响应,同时保持流程处于活跃且受控的状态。
-
4. 流程建模者的关键要点
-
避免无限等待:切勿在“等待”任务中不设置边界定时器或基于事件的网关。每个等待状态都需要超时策略。
-
边界事件功能强大:将定时器附加到任务的边界(如图 5-2 所示),允许您创建异常处理逻辑(如提醒),而不会干扰流程的主要“成功路径”。
-
循环以实现持久性:通过将定时器输出路由回等待任务的起始位置(在发送提醒之后),您创建了一个具有韧性的循环,该循环将持续直到用户采取行动或达到最大重试限制(可在未来迭代中添加)。
-
事件驱动启动:使用消息启动事件(图 5-2)使您的流程能够响应现实世界的触发器,而非依赖手动启动,从而提升自动化水平和处理速度。
结论
- 定时器可防止流程停滞:添加7 天边界定时器消除了“僵尸流程”的风险。它确保客户的沉默不会导致工作流永久卡住,而是触发主动响应。
- 自动化提升客户体验: 将“消息启动事件”与“定时器驱动的提醒循环”共同构建了一个自动化反馈系统。企业能够保持响应能力(发送提醒),而无需贷款专员手动介入去追讨缺失的文件。
- 异常处理至关重要:这些图表表明,一个完整的过程模型必须同时考虑“正常路径”(表单按时收到)和“异常路径”(超时)。边界定时器优雅地处理了这一异常:它将流程路由到补救任务(“发送提醒”)并循环返回,而不是简单地终止流程。










