EPC(事件驱动程序链)
ARIS 业务流程图——事件与功能交替排列,以 AND/OR/XOR 连接器连接,并进行结构良好性验证。
关于 EPC
事件驱动程序链(EPC)是 ARIS(Scheer,1990 年代)核心的业务流程表示法:控制流严格交替排列事件(被动状态——"订单已收到")和功能(主动任务——"核查信用"),由 AND / OR / XOR 连接器负责分支与合并。它广泛用于 SAP 流程文档和 BPM。
Schematex 的优势在于结构验证。引擎不计算数值(对比 pert 或 faulttree);它检查 EPC 良好性规则——事件/功能交替、事件不能决策签名规则、单进/单出多重性、可达性——并以 AI 可读的消息标示违规,而非静默地绘制一个破损的模型。
1. 你的第一个 EPC
以 epc 关键字开头,加上可选的标题,然后按 ID 声明节点并以箭头连接它们:
epc "Order fulfilment"
event E1 "Order received"
function F1 "Check credit"
event E2 "Credit OK"
E1 -> F1 -> E2节点带有 ID 和可选的带引号标签;箭头通过 ID 引用。标准形式是将连接器声明为节点(xor X1)并以 ID 连接所有内容——最接近 ARIS 存储 EPC 的方式。
2. 节点种类
event E1 "Order received" # 被动状态(圆角六边形)
function F1 "Check credit" # 主动任务(圆角矩形);别名:func
func F2 "Send invoice" # `func` 是 `function` 的简写
and A1 # AND 连接器(∧)
or O1 # OR 连接器(∨)
xor X1 # 互斥 OR 连接器(×)连接器根据其传入/传出弧线决定是分支还是合并,因此同一个符号同时服务两种用途。连接器标签是可选的。
3. 控制流连接
E1 -> F1 -> X1 # 链式写法是成对弧线 E1→F1, F1→X1 的语法糖
X1 -> E2 # 连接器分裂为两条分支
X1 -> E3
F2 -> E2 : sent # 单条弧线可带 ': 标签'->链式写法展开为成对边线。- 结尾的
: 标签为单条弧线加上标注。 - 尚未声明的箭头端点会被自动创建(并由验证器标示),让你可以快速草绘后再整理。
epc "Procure-to-pay"
layout: tb
event E1 "Need identified"
function F1 "Create PO"
and A1
function F2 "Notify supplier"
function F3 "Update budget"
E1 -> F1 -> A1
A1 -> F2
A1 -> F3layout: tb 以由上而下的方式排列链(默认也是垂直友好的)。
4. 计算式良好性验证
这是本引擎的差异化优势。引擎会验证(标示,不抛出异常):
- 二部图交替 — 事件和功能沿任何路径严格交替;连接器不打破此规则。
- 起点/终点必须是事件 — 功能不得作为起点或终点节点。
- 签名规则 — 事件不得作为 OR/XOR 分支的来源(被动事件不能做决策);事件后的 AND 分支是允许的。
- 分支/合并平衡 — 类型 T 的分支应由类型 T 的合并关闭;不匹配视为警告(真实的 EPC 有时是不平衡的)。
- 每个事件和功能单进/单出 — 多重性由连接器承担。
- 可达性 — 每个节点都可从起点到达,并能到达终点。
违规节点以 data-* 标志标示;图表仍会渲染。
5. 常见错误
# 错误 — 无效的 ID(必须以字母开头)
event 9bad
# 避免 — 重复声明节点(第一个优先,并发出警告)
event E1 "first"
event E1 "second"ID 必须以字母开头;重复声明的节点保留第一个定义并警告。由于事件→XOR/OR 分支会被标示,决策应通过功能节点来产生决策结果,再进行分支。
6. 标准合规性
符号和规则遵循 ARIS EPC 惯例(Scheer)、van der Aalst(1999)和 Mendling(2008):六边形事件、圆角矩形功能、∧/∨/× 连接器,以及事件不能决策的签名限制。
7. 开发路线图
延后实现:流程接口(跨页)节点、组织单位/数据对象通道(eEPC),以及分支/合并自动修复建议。
Found this useful?
Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.