本文讲述了单据数据删除的流程。若无上游单据关联,直接删除单据数据;若有关联,需删除关联表数据、流程实例表数据、反写快照数据,并处理反写快照的反写值。删除顺序为先处理流程实例相关,再处理关联表和单据数据,并提供了具体删除示例。
说明:
如果单据没有关联上游单据,直接删除单据数据即可,一般包括单据头,单据体对应的表数据,有的还有多语言表数据。
如果单据关联了上游单据,比如说单据是下推,选单,自动下推生成的单据,此时不仅要删除单据数据,还删除关联表数据,流程实例表数据,反写快照数据,并且需要对反写快照的反写值进行反冲处理。
删除数据的顺序:流程实例反写表,流程实例节点表,还原反写值,反写快照表,关联表,单据体表,单据头表,具体参考下面示例。
示例:下面以单据A下推单据B,在数据库中删除单据B为例
单据B对应的表单ID,单据头表名,单据体表名,关联表名(单据关联配置中可以找到,也叫LK表名),分别为:BOS_BillB,BillB_Header,BillB_Entry1,BillB_Entry1_LK。
需要删除单据编号为'B002'的数据,查询数据如下截图:
根据表名和内码找到对应的流程实例节点数据,表为T_BF_INSTANCEENTRY,如下图:
首先根据流程实例节点内码FRouteId,确定是否存在反写控制字段值,如果存在则先删除,表为T_BF_INSTANCEAMOUNT, 如下图:
再删除流程实例节点数据,如下图:
再查询反写快照数据,内码为“表单Id,关联标识,单据主键”,注意删除之前要把反写的数据给还原,如下图:
删除反写快照,如下图:
最后再依次删除,关联表,单据体表,单据头表,如下图:
推荐阅读