BOS平台-通过数据库正确的删除单据?原创
金蝶云社区-eris
eris
30人赞赏了该文章 1663次浏览 未经作者许可,禁止转载编辑于2022年09月14日 12:00:15

说明:

  1. 如果单据没有关联上游单据,直接删除单据数据即可,一般包括单据头,单据体对应的表数据,有的还有多语言表数据。

  2. 如果单据关联了上游单据,比如说单据是下推,选单,自动下推生成的单据,此时不仅要删除单据数据,还删除关联表数据,流程实例表数据,反写快照数据,并且需要对反写快照的反写值进行反冲处理。

  3. 删除数据的顺序:流程实例反写表,流程实例节点表,还原反写值,反写快照表,关联表,单据体表,单据头表,具体参考下面示例。


示例:下面以单据A下推单据B,在数据库中删除单据B为例

  1.   单据B对应的表单ID,单据头表名,单据体表名,关联表名(单据关联配置中可以找到,也叫LK表名),分别为:BOS_BillB,BillB_Header,BillB_Entry1,BillB_Entry1_LK。

  2. 需要删除单据编号为'B002'的数据,查询数据如下截图:

    image.png

  3. 根据表名和内码找到对应的流程实例节点数据,表为T_BF_INSTANCEENTRY,如下图:

    image.png

  4. 首先根据流程实例节点内码FRouteId,确定是否存在反写控制字段值,如果存在则先删除,表为T_BF_INSTANCEAMOUNT, 如下图:

    image.png

  5. 再删除流程实例节点数据,如下图:

    image.png

  6. 再查询反写快照数据,内码为“表单Id,关联标识,单据主键”,注意删除之前要把反写的数据给还原,如下图:

    image.png

  7. 删除反写快照,如下图:

    image.png

  8. 最后再依次删除,关联表,单据体表,单据头表,如下图:

    image.png



赞 30