异常处理——ERP 中最容易被忽视的部分
正常流程谁都会写,但 ERP 的真正难度在于异常场景。退货、拒收、冲销、变更……这些”不正常”的情况如果处理不好,整条单据链就会断裂。
一、新流程中的异常场景
1.1 到货拒收
旧流程中,质检不合格直接在到货单内处理。新流程中:- 到货单只负责登记到货
- 到货拒收单(AR)独立处理不合格到货
- 拒收后恢复采购订单未到货余量
1.2 不合格品处理
检验单判定不合格后:- 生成不合格品单(DEF)
- 选择处理方式:退回供应商 / 报废 / 让步接收
- 退回供应商 → 生成退货单(RTN)
- 报废 → 直接关闭不合格品单
- 让步接收 → 需审批,审批通过后可入库(带特殊标识)
1.3 退库冲销
入库后发现错误:- 生成退库单(反向入库单)
- 库存台账自动扣减
- 恢复上游单据余量
1.4 采购订单变更
审核后的采购订单可以变更:- 数量变更 → 影响未到货余量
- 价格变更 → 需审批
- 需求日期变更 → 影响到货单预期日期
二、闭环校验引擎
系统提供闭环校验报告功能:| 校验编号 | 校验项 | 规则 | 严重级别 |
|---|---|---|---|
| CK-01 | 单据孤立检测 | 业务单据找不到上游来源 | ERROR |
| CK-02 | 数量超量检测 | 下游数量 > 上游余量 | ERROR |
| CK-03 | 数量负值检测 | 任何数量字段出现负值 | ERROR |
| CK-04 | 状态断裂检测 | 上游已关闭但下游仍有未完成单据 | WARNING |
| CK-05 | 长期未完结 | 超过需求日期7天仍未入库 | WARNING |
| CK-06 | 数量偏移超限 | 完整链路数量差异 > 配置阈值 | WARNING |
| CK-07 | 台账一致性 | 库存台账数量 ≠ ∑入库 – ∑出库 | ERROR |
| CK-09 | 检验缺失检测 | 到货单已审核但送检单未创建 | WARNING |
| CK-10 | 不合格品遗漏检测 | 检验单不合格但无不合格品单 | WARNING |
三、异常处理的设计原则
- 单向追溯:异常操作不能破坏已有的追溯链
- 数量守恒:所有异常操作后,单据链的数量关系必须保持守恒
- 留痕可查:所有异常操作必须有审计记录
- 权限控制:高风险操作(冲销、强制关闭)需要高级别权限
- 不可逆确认:异常操作通常需要二次确认
四、小结
异常处理是 ERP 区别于简单 CRUD 系统的核心能力。新流程中增加了到货拒收单、不合格品单、退货单等异常处理单据,使整个系统的异常处理能力更强。 下一篇:业务理解比技术更重要。这是「ERP 业务知识系列」第 13 篇,系列共 15 篇。