@windwolf
2020-05-20T03:15:15.000000Z
字数 446
阅读 309
Sailing
合同, 订单等单据一旦成立(一般指审批通过后), 就不允许进行无跟踪记录的修改, 因此需要引入了单据变更控制.
变更控制也有程度之分, 有些业务数据只需要记录变更跟踪信息, 有些情况下还需要在有需要的情况下能回退到之前的版本.
变更控制的方案也有非常多种, 大致上可以归纳为以下三类:
方案一: 直接在原数据上修改, 一旦提交修改后, 自动检测变更并生成修改单(修改日志).
方案二: 填写修改申请单, 申请单中记录修改的信息. 修改申请单经审批通过后, 会自动将修改应用到原单据中.
方案三: 引入版本的概念, 每次修改后新增一个新版本单据, 版本号递增; 而原版本保持不变.
方案一, 方案二中, 单据反映的是最新的情况, 而修改的过程则通过修改单链来反映.
方案三中, 保留了历史各个版本的原貌, 比较方便回顾.
无论采用哪种方案, 修改前都需要检查可修改性. 影响可修改的因素包括但不限于: 单据类型, 单据状态, 上下游单据类型, 上下游单据关联关系(是否自动产生等), 上下游单据勾稽关系(数量, 金额, 时间等).