历史数据清理工具涉及的脚本调整

根据使用历史数据清理工具进行清理或者结转所出现的异常问题,这里总结了四个需要涉及脚本调整的内容,请在清理或者结转前(前前前,重要的事说三遍)务必调整好:
注意:
1、目前WISE大部分版本的历史数据清理工具都需要正式许可才能使用;
2、调整前,请务必搜索对应版本是否有关于清理、结转的补丁,如果有必须要先安装好相关补丁);
3、以下内容适用于K/3 WISE产品可以使用历史数据清理工具的所有版本,KIS产品旗舰版的数据清理和账套结转功能也可以参考处理;
4、清理、结转的过程中如出现异常报错必须重新还原新的账套、调整好需要处理的数据再重新处理,不要使用已做过清理、结转的账套继续处理(也即只要是需要重新清理、结转,都需要重新恢复清理、结转前的账套进行处理);
5、以下说提及到的SQL文件路径在于:
目录盘:\Program Files\Kingdee\K3ERP\KDSYSTEM\KDCOM\SQLSRV,里面settleaccount.sql结尾的文件为清理调用的SQL文件,settleaccount_t.sql结尾的文件为结转调用的SQL文件;
分享1:账套结转提示“将截断字符串或二进制数据”(此报错不一定会出现提示)

分析原因:
采购发票【批号】FBatchNo、销售发票【备注】FNote 字段最大长度为255字节(称为前者)
期初发票明细表t_rp_begdataEntry 中【批号】FBatchNo、【摘要】FExplanation 字段最大长度为80字节(成为后者)
账套结转过程中将采购发票、销售发票中的数据向期初发票明细表中插入时,前者超过80字节的内容则不能写入后者中,系统会给出报错

解决方法:可在结转前执行以下语句增大期初发票明细表t_rp_begdataEntry 的【批号】FBatchNo、【摘要】FExplanation 字段长度:
alter table t_rp_begdataEntry alter column FExplanation varchar(255) null
alter table t_rp_begdataEntry alter column fbatchno varchar(255) null
分享2:数据清理时提示“将 expression 转换为数据类型 int 时出现算术溢出错误”
分析原因:
涉及报错的是文件“K3_V10.3_SCM_SettleAccount”里面的语句:
SELECT b1.FClassTypeID, b1.FID , SUM(ISNULL(a1.FICMOInterID,0)) AS FICMOInterID
FROM PPBOMChangeEntry a1
INNER JOIN PPBOMChange b1 ON b1.FClassTypeID=1002502 AND b1.FID=a1.FID
GROUP BY b1.FClassTypeID,b1.FID
FICMOInterID为INT类型,范围为-2147483648到2147483647,如果SUM(ISNULL(a1.FICMOInterID,0)) 超过此范围则会提示溢出报错。该文件中有多个脚本包含SUM(ISNULL(a1.FICMOInterID,0)) ,所以全部需要做调整。
建议方法:
需要在清理前将文件K3_V10.3_SCM_SettleAccount里面所有(所有、所有、所有)的SUM(ISNULL(a1.FICMOInterID,0))都改为SUM(ISNULL(CONVERT(bigint,a1.FICMOInterID),0))
如果是使用结转功能,同样地可以在K3_V10.3_SCM_Settle
历史数据清理工具涉及的脚本调整
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



