反写规则超额检查公式配置错误,禁用反写规则后,删除历史数据提示超额

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

反写规则超额检查公式配置错误,禁用反写规则后,删除历史数据提示超额

问题描述

配置了一个反写规则,超额检查公式有些问题,保存下游单据时没有问题,在删除下游单据时,却提示超额,现在把反写规则禁用了,还是提示超额,怎么办?

解决方法

首先,对历史数据进行修改或删除,会按照历史反写规则回滚历史反写值,然后再使用历史反写规则超额检查公式检查是否超额。回滚了历史反写之后,才会用最新的反写规则重新计算、反写源单。

其次,禁用规则对历史数据不起作用,无法通过禁用反写规则解决问题。

出现这种情况,只能使用变通的方法解决:

临时方案一:

1. 扩展反写规则,修改反写规则的计算公式,改为覆盖反写0到源单;

2. 找到需回滚的历史数据,打开重新保存,后台会自动回滚历史反写量,然后使用最新反写规则重新反写,最终源单反写字段被覆盖为0,不会报超额;

3. 删除上述反写规则的扩展,恢复正常的反写规则;

4. 打开需回滚的历史数据,打开重新保存,按最新的反写规则重新反写数据;

5. 弊端:仅适用于1:1下推生成目标单,且只有少量错误数据的修复,直接通过配置规则实现,不需要后台修复数据。如果是1推多单,使用本方案直接把源单关联数量覆盖为0,会把其它下游单据对源单的的反写量也一并覆盖了,从而丢失反写量;

临时方案二:

1. 找到出错的历史数据内码(下游单据的);

2. 查找其历史反写数据表(业务数据库,xx_wb),确认使用的历史反写规则版本号(即FRuleVerId字段值)

3. 查找反写规则历史版本表(元数据库 t_botp_writebackruleVer),找到使用的历史反写规则版本记录,确认其原始规则内码 (即FRuleId字段)

4. 在反写规则列表,找到该规则,修复反写规则的配置错误,确认反写公式、超额检查公式是正确的;

5. 重新下推一条数据,使用修复后的反写规则反写源单成功;

6. 在反写规则历史版本表,找到该规则最新生成的版本id;

7. 编写升级语句,更新历史反写数据表(xx_wb),把旧版反写规则版本id,更新为新版id

8. 适用于大批量数据使用了错误规则反写了数据,需后台修改反写历史记录表xx_wb;

参考语句: 

update xx_wb set FRuleVerId = ?新版id where FRuleVerId = ?旧版id and FSBillId = ?出错源单内码

误区:

1. 不要尝试直接删除反写规则历史版本记录,这会引发新的中断:加载反写历史版本失败提示数据不存在而中断

2. 不要尝试直接修改反写规则历史版本FData内容,反写规则历史版本是有缓存的,后台修改了规则内容根本不会生效,暂时还没有提供直接刷新历史版本缓存的方法。


反写规则超额检查公式配置错误,禁用反写规则后,删除历史数据提示超额

问题描述配置了一个反写规则,超额检查公式有些问题,保存下游单据时没有问题,在删除下游单据时,却提示超额,现在把反写规则禁用了,还是...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息