业务流程问题--如果正确删除反写规则原创
金蝶云社区-eris
eris
12人赞赏了该文章 305次浏览 未经作者许可,禁止转载编辑于2024年01月04日 09:56:58

正常情况下反写规则是无法删除的,只能通过页面禁用,如果需要删除只能通过数据库处理,有以下几种情况需要注意:

情况1、反写规则没有使用过,既没有任何反写记录。

可以直接通过数据库删除此反写规则,需要处理的表(T_BF_WRITEBACKRULE 主表  ,T_BF_WRITEBACKRULE_l  多语言表, t_BF_WriteBackRuleCust  扩展表                                           

情况2、反写规则有过反写记录。

则先禁用此反写规则,把有相应反写记录的单据保存一遍,让反写的数据还原,最后才能通过数据库删除

情况3、反写规则在数据库删除了,但没有处理相关有反写记录的单据,怎么办?

这种情况单据再次操作往往会报“内码为xxx的反写规则不存在,或已被删除”,如下图,出现这种情况,只能还原相应的反写规则,或者修改反写快照记录。

image.png

如何修改反写快照:

1)先找到反写快照记录  select * from t_bf_instanceSnap where FCID like '单据formId%单据内码'

image.png


2)把FXMLBODY字段复制出来,取出<xzip></xzip>节点中的值,进行gzip解压,还原为XML数据,找到对应的反写规则,并从xml中去掉(gzip解加密: https://www.bejson.com/encrypt/gzip/)

image.png

3)把去除了相应反写规则的xml数据再次进行gzip加密。

image.png

4)把加密后的数据放到<xzip></xzip>节点中更新到反写快照表中即可了。

image.png

5)删除操作不再报错

image.png

赞 12