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

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

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

    根据使用历史数据清理工具进行清理或者结转所出现的异常问题,这里总结了需要涉及脚本调整的内容,请在清理或者结转(前前前,重要的事说三遍)务必调整好:

注意:

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:账套结转提示“将截断字符串或二进制数据”(此报错不一定会出现提示)

1.webp

分析原因:

  • 采购发票【批号】FBatchNo、销售发票【备注】FNote 字段最大长度为255字节(称为前者)

  • 期初发票明细表t_rp_begdataEntry 中【批号】FBatchNo、【摘要】FExplanation 字段最大长度为80字节(成为后者)

  • 账套结转过程中将采购发票、销售发票中的数据向期初发票明细表中插入时,前者超过80字节的内容则不能写入后者中,系统会给出报错

2.webp

解决方法:可在结转前执行以下语句增大期初发票明细表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_SettleAccount_t中做上述一样的调整。


分享3、使用历史数据清理工具之后网络冲突失效

解决方法:将K3_V10.4_GL_SettleAccount中的脚本【TRUNCATE TABLE t_mutex】、K3_V10.3_GL_SettleAccount_t的脚本【DELETE FROM t_mutex】注释即可


分享4、数据清理后应收款汇总表的数据与清理前的不一致

分析原因: 

  • 清理时涉及的文件为K3_V10.3_ARP_SettleAccount,脚本为:

DELETE a from t_rp_AdjustRateEntry as a

  left join t_rp_AdjustRate as b on a.FInterID=b.FInterID

WHERE b.FInterID is null

DELETE a from t_rp_AdjustAccount as a

  left join t_rp_AdjustRate as b on a.FInterID=b.FInterID

WHERE b.FInterID is NULL

  • 上述语句的关联字段a.FInterID=b.FInterID有异常,FInterID在上述数据表中均为标识列,而且如果存在反调汇业务的话,就会导致前者FInterID不等于后者finterid的情况

解决方法: 

  • 清理前将上述脚本(只限于上述脚本)的FInterID改成FAdjustID

  • 建议需要再核实应收款、应付款汇总表报表、往来对账等应收应付报表的数据是否还有其他问题


同样地,如果是使用结转的功能,则需要调整K3_V10.3_ARP_SettleAccount_t中与上述同样的脚本:

DELETE a from t_rp_AdjustRateEntry as a

  left join t_rp_AdjustRate as b on a.FInterID=b.FInterID

WHERE b.FInterID is null

DELETE a from t_rp_AdjustAccount as a

  left join t_rp_AdjustRate as b on a.FInterID=b.FInterID

WHERE b.FInterID is NULL

  • 结转前将上述脚本(只限于上述脚本)的FInterID改成FAdjustID 

  • 建议需要再核实应收款、应付款汇总表报表、往来对账等应收应付报表的数据是否还有其他问题





学习了

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

根据使用历史数据清理工具进行清理或者结转所出现的异常问题,这里总结了四个需要涉及脚本调整的内容,请在清理或者结转前(前前前,重...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息