EPC(事件驱动程序链)

ARIS 业务流程图——事件与功能交替排列,以 AND/OR/XOR 连接器连接,并进行结构良好性验证。

关于 EPC

事件驱动程序链(EPC)是 ARIS(Scheer,1990 年代)核心的业务流程表示法:控制流严格交替排列事件(被动状态——"订单已收到")和功能(主动任务——"核查信用"),由 AND / OR / XOR 连接器负责分支与合并。它广泛用于 SAP 流程文档和 BPM。

Schematex 的优势在于结构验证。引擎不计算数值(对比 pertfaulttree);它检查 EPC 良好性规则——事件/功能交替、事件不能决策签名规则、单进/单出多重性、可达性——并以 AI 可读的消息标示违规,而非静默地绘制一个破损的模型。

epc·§
↘ preview
100%
Credit check Event-driven process chain "Credit check": 3 events, 1 functions, 1 connectors. Well-formed. Credit check Order received Check credit × Credit approved Credit refused
UTF-8 · LF · 9 lines · 164 chars✓ parsed·31.6 ms·4.0 KB SVG

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 -> F3

layout: tb 以由上而下的方式排列链(默认也是垂直友好的)。


4. 计算式良好性验证

这是本引擎的差异化优势。引擎会验证(标示,不抛出异常):

  1. 二部图交替 — 事件和功能沿任何路径严格交替;连接器不打破此规则。
  2. 起点/终点必须是事件 — 功能不得作为起点或终点节点。
  3. 签名规则事件不得作为 OR/XOR 分支的来源(被动事件不能做决策);事件后的 AND 分支是允许的。
  4. 分支/合并平衡 — 类型 T 的分支应由类型 T 的合并关闭;不匹配视为警告(真实的 EPC 有时是不平衡的)。
  5. 每个事件和功能单进/单出 — 多重性由连接器承担。
  6. 可达性 — 每个节点都可从起点到达,并能到达终点。

违规节点以 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.