库存单据物料业务主策略内码字段为空,导致报表数据异常
1 问题描述
库存的单据上冗余了物料主数据内码,自读名称为【物料业务主策略内码】,默认为隐藏字段,标准产品预置了插件,在单据提交时会根据录入的物料库存信息对其进行赋值处理。
在一些异常情况下,可能出现库存单据的单据状态已经为审核状态,而【物料业务主策略内码】字段出现下图所示字段值为空的情况(可通过扩展放开字段可见性,或通过查询分析器查询到数据库字段值是否为0):
库存报表在查询时单据数据依赖到【物料业务主策略内码】字段,因此该字段为空时会导致以下几种报表数据异常的情况(以库存的物料收发汇总表为例):
(1)查询条件不含物料编码时,能查询到单据信息,但是【物料】的相关信息为空
(2)以物料编码作为查询条件时,查询不到单据信息:
2 原因分析
标准产品在提交操作上绑定了预置的操作插件(kd.scmc.im.opplugin.tpl.SyncMaterialMasterIdOp),用于处理【物料业务主策略内码】赋值:
出现【物料业务主策略内码】为空一般是一下几种原因导致:
(1)对于标准产品出厂的单据,扩展后将该插件禁用或删除;
(2)插件绑定正常,但是在进行业务时,没有走标准的提交操作,例如在单据上自行添加了提交按钮进行提交,或者通过其他方式修改单据状态,绕过标准的提交操作;
(3)二开的单据,如果报表字段映射配置与标准出厂的配置一样,使用物料业务策略主内码,但是却没有对该字段赋值。
3 解决方法
(1)问题排查:首先需要确定单据的【物料业务主策略内码】是否正常,可扩展表单元数据,放开字段可见性后再表单编辑界面查看,也可通过查询分析器查询对应的数据库字段是否正常(数据库字段为0即为异常数据);
(2)如果(1)中排查出字段值出现异常,对于标准产品出厂的单据,需要检查提交操作的插件(kd.scmc.im.opplugin.tpl.SyncMaterialMasterIdOp)绑定是否正常,如果被删除或者禁用,需要恢复绑定,防止后续做单时再次出现问题;对于二开添加的单据,需评估是否用到该字段,若使用到该字段,也需做赋值处理;
(3)检查是否有非法操作,如在单据上自行添加了提交按钮进行提交,绕过标品的操作等;
(4)对于已经存在数据问题的单据:
①若单据可以撤销/反审核,按上述步骤排查修改之后,将单据撤销/反审核,按标准产品的操作重新提交单据,即可对字段进行正确赋值(推荐此方式处理);
②若单据不能进行逆向操作,则需要考虑采用刷数据的方式处理(不推荐该方式):
若出现问题的数据范围可控,能够准确知道某一行分录的【物料业务策略主内码字段应该刷成什么值,则可让开发或运维通过脚本执行数据更新;
若出现问题的数据较多或数据范围不能确定,由于物料主数据表在系统库,而库存单据在供应链库,存在跨库问题无法直接用sql全量处理,可考虑添加操作插件处理,在操作插件中同步【物料业务主策略内码】;
具体做法可参考如下思路:在列表上添加操作按钮,操作按钮绑定上述操作插件,操作插件中可以获取选中的数据实体,对数据实体进行修改和更新。
4 适用版本
金蝶云·星瀚V5.0及以上。
5 变更记录
产品版本 | 更新内容 | 更新日期 |
V6.0.04 | 初始版本 | 2023年12月22日 |
库存单据物料业务主策略内码字段为空,导致报表数据异常
本文2024-09-22 23:46:54发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-135232.html