汇总报表\合并表罗列全部下级保存报错
问题描述:
排查汇总表\合并表按罗列全部下级计算后,保存出现以下中断信息的情形:
错误详细堆栈信息:com.kingdee.bos.SQLDataException: null Caused exception message is: ORA-01400: 无法将 NULL 插入 ("CHUANHUA"."T_CSL_DYNAITEMDATAENTRY"."FKEYNAME") at com.kingdee.eas.fi.gr.cslrpt.app.ItemDataProviderControllerBean.saveData(ItemDataProviderControllerBean.java:2524) at com.kingdee.eas.fi.gr.cslrpt.app.ItemDataProviderControllerBean._saveDynaItemData(ItemDataProviderControllerBean.java:2214) at com.kingdee.eas.fi.gr.cslrpt.app.AbstractItemDataProviderControllerBean.saveDynaItemData(AbstractItemDataProviderControllerBean.java:218) at sun.reflect.GeneratedMethodAccessor7141.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
解决方案:
排查方法:
1、点开计算向导,将计算方式换成按名称计算,观察报表中每一个基准点的罗列项单元格,看哪一个单元格没有罗列项。
2、在罗列项为空的行,选一个有数的单元格,将对应报表项目拷贝到以下sql的where条件中替换报表项目和取数类型,其他条件根据当前报表记性替换过滤,
SELECT distinct de.FKeyNumber,de.FKeyName, de.* FROM t_csl_dynaitemdataentry de INNER JOIN t_csl_dynaitemdata d ON de.FItemDataID = d.FID inner join t_csl_rptreceived receive on d.FReportId = receive.FReportId inner join t_csl_cslreport r on d.FReportID = r.FId WHERE (
1=1
AND d.FDataCollectNumber = 'ACTUALDATA'
AND d.FCurrencyID = 'dfd38d11-00fd-1000-e000-1ebdc0a8100dDEB58FDC' –替换币别
AND de.FItemID = 'SW1-03' –替换报表项目
-AND de.FDataElement = 4 –替换取数类型
AND de.FValueType = 3 –替换报表类型
AND de.FYear = 2021 –替换年
AND de.FPeriod = 1 –替换期间
AND ( receive.FOrgTreeID = 'WgUQzaO2T+KOvUu3+EnxpU8oJ/0=' –替换合并范围id
AND d.FOrgUnitID IN ('ssVzhCuqY4ngUxYDZApnnMznrtQ=','ssVzhCusY4ngUxYDZApnnMznrtQ=','ssVzhCucY4ngUxYDZApnnMznrtQ=','ssVzhCuVY4ngUxYDZApnnMznrtQ=','ssVzhCuJY4ngUxYDZApnnMznrtQ=','ssVzhCupY4ngUxYDZApnnMznrtQ=','ssVzhCudY4ngUxYDZApnnMznrtQ=','ssVzhCurY4ngUxYDZApnnMznrtQ=') and r.FSourceType in(10,11) –替换in中合并单元id
AND d.FCommitStatus = 3 ))
order by de.FKeyName
3、在查询分析器中执行上面的sql,观察FKeyNumber,FKeyName这两列,看哪一个出现一个FKeyName对应两个FKeyNumber,通过sql中其他字段值,找出对应报表,看报表中基准点列哪个值和FKeyName相等,然后看对应行的项目公式中的罗列项编码是否正确,找到不正确的将报表打回重填对应罗列项,然后重新保存上报。
附:目前出现该问题的公司,大多因为上报了相同的罗列项导致;例如,AB公司都上报了罗列项名称为“建设银行”的罗列项,在汇总报表展示时为【A】建设银行、【B】建设银行。此类汇总报表保存也会出现如上报错,建议打回 出现相同罗列项的个报,修改罗列项名称后,重新上报。
此类问题,在8.2/8.5/8.6版本中的体现为保存汇总报表报错;
在8.1版本中的提现为,上级合并单元的汇总报表无法取到下级合并单元汇总报表上报数。原因即下级汇总报表出现相同罗列项。
汇总报表\合并表罗列全部下级保存报错
本文2024-09-22 18:09:34发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-98997.html