本文汇总了应收/应付款账龄分析表中遇到的多个问题及相应的数据修复方案。问题包括查询结果显示重复行、金额异常、自定义字段显示错误、原币和本位币余额不一致、查询报错(如截断字符串、无效列名)、收款单不显示、退款单金额不显示、API导入应付单不显示及单据金额不在账龄段显示等。修复方案涉及调整二开插件逻辑、删除重复信用档案、更新单据本位币字段、处理超长字段数据、重建视图、修正SQL查询逻辑、补全付款计划到期日等。此外,还提供了处理API传入参数和作废状态的调整方法。
应收/应付款账龄分析表问题汇总(附数据修复方案)-上
5. 查询结果显示重复行,或金额异常,或自定义字段显示异常(和单据上的字段不一致)
原因1:账龄表的表单插件存在二开插件,且验证是二开插件影响(即去掉二开插件启用标准插件后重新打开报表查询结果正常)
方案:联系二开人员排查二开插件逻辑并修复逻辑
原因2:应收账龄分析表中添加了信用额度字段,异常往来单位存在多个信用档案,导致汇总行数据翻倍
方案:删除其中一个信用档案
6. 原币和本位币一致,原币余额和本位币余额不一致
原因1:单据付款计划本位币和原币金额不一致
数据修复方案:更新单据本位币字段为原币字段
SELECT A.FBILLNO 单据编号,A.FDATE 业务日期,A.FSETACCOUNTTYPE 立账类型,A.FWRITTENOFFSTATUS 单据头付款核销状态,B.FWRITTENOFFSTATUS 计划核销状态,B.FPAYAMOUNTFOR 应付金额,B.FPAYAMOUNT 应付金额本位币,B.FWRITTENOFFAMOUNTFOR 已核销金额,B.FWRITTENOFFAMOUNT 已核销金额本位币,B.FRELATEHADPAYAMOUNT 付退款关联金额,B.FNOTVERIFICATEAMOUNT 未核销金额 --UPDATE B SET B.FPAYAMOUNT=B.FPAYAMOUNTFOR,B.FWRITTENOFFAMOUNT=B.FWRITTENOFFAMOUNTFOR FROM T_AP_PAYABLE A LEFT JOIN T_AP_PAYABLEPLAN B ON A.FID=B.FID LEFT JOIN T_AP_PAYABLEFIN C ON A.FID=C.FID WHERE C.FEXCHANGERATE=1 AND B.FPAYAMOUNTFOR<>B.FPAYAMOUNT
原因2:历史版本核销记录中无本位币字段,升级后历史数据未更新所以导致和原币有差异
数据修复方案:更新核销记录本位币字段为原币字段
SELECT FSRCBILLNO 单据编号,FSOURCEFROMID 源单类型,FPLANAMOUNTFOR 应收金额,FPLANAMOUNT 应收金额本,FBILLWRITTENOFFAMOUNT,FCURWRITTENOFFAMOUNTFOR 本次核销金额,FCURWRITTENOFFAMOUNT 本次核销金额本,FWRITTENOFFAMOUNTFOR 已核销金额,FWRITTENOFFAMOUNT 已核销金额本 --UPDATE A SET FCURWRITTENOFFAMOUNT=FCURWRITTENOFFAMOUNTFOR,FWRITTENOFFAMOUNT=FWRITTENOFFAMOUNTFOR FROM T_AP_PAYMATCHLOGENTRY A WHERE FEXCHANGERATE=1 AND FCURWRITTENOFFAMOUNTFOR<>FCURWRITTENOFFAMOUNT
7. 查询报错:将截断字符串或二进制数据 或 String or binary data would be truncated.
原因:预置字段值超长,比如单据编号
报表常用字段长度设置:单据编号80 | 订单编号255 | 备注1024
数据修复方案:由于报表长度定义是代码写的,无法修改,故建议将字段超长的单据的对应字段做截断更新处理
8. 查询报错:Invalid column name 'FCorrespondOrgld'
原因:bos扩展涉及到往来单位类型视图的表单取消了“不重建视图”
数据修复方案:重建视图
视图语句参考帖子:往来单位视图的易错点及修复方法
9. 取数SQL
方案:需要自行跟踪报表查询语句,或理解逻辑后自行编写SQL语句
取数逻辑参考帖子:
sqlserver跟踪步骤:见附件
10. 收款单不显示
原因:收款单的收款组织和结算组织不一样,结算组织启用了应收款,而收款组织未启用应收款,账龄表是通过收款组织查询的,所以未查询出这部分收款单(8.0.0.20240229版本已优化,账龄表也用结算组织查询数据)
处理方案:将收款组织启用应收款管理 或 升级版本
11. 退款单的金额不显示,版本7.5.1.202010
原因:历史版本账龄表逻辑问题,当结算方式是应收票据退回时自动生成的付款退款单明细采购订单号为null,后续关联查询对应分组账龄数据时出现问题,导致分组数据为空。
处理方案:升级新版本,如暂不考虑升级建议通过修复明细采购订单号为空来变通处理
数据修复sql:
select FPURCHASEORDERNO,b.fdate,b.fbillno,* --update a set FPURCHASEORDERNO='' from T_AP_REFUNDBILLENTRY a left join T_AP_REFUNDBILL b on a.fid=b.fid where FPURCHASEORDERNO is null
12. 通过API 接口导入的应付单在账龄分析表不显示,手工新增的显示正常
原因1:未传入财务信息数据T_AP_PAYABLEFIN
说明:财务信息和单据头必须是一对一的
方案:调整webapi传入参数,删除单据重新传入
查询没有财务信息的应付单sql:
SELECT FBILLNO 单据编号 FROM T_AP_PAYABLE A WHERE NOT EXISTS (SELECT 1 FROM T_AP_PAYABLEFIN WHERE FID=A.FID)
原因2:作废状态FCANCELSTATUS为空
说明:标准产品下,作废状态枚举值只有A否、B是,报表默认取作废状态为A的,如果未传值为空的话,报表就无法过滤出来
方案1:调整webapi传入参数,删除单据重新传入
方案2:数据修复
UPDATE T_AP_PAYABLE SET FCANCELSTATUS='A' WHERE FCANCELSTATUS not in ('A','B')
13. 单据显示有尚未付款金额但不在账龄段显示
原因:付款计划未录入到期日
方案:给付款计划补上到期日
UPDATE B SET B.FENDDATE='2024-01-01' FROM T_AP_PAYABLE A LEFT JOIN T_AP_PAYABLEPLAN B ON A.FID=B.FID WHERE A.FBILLNO='应付单号'
应收应付sql汇总.zip(6.89KB)
sql server工具跟踪步骤.docx(4.17MB)
推荐阅读