关于升级补丁脚本异常"当前销售组(销售组名称)... 不能在对象“dbo.T_MDL_FILTERCONDITION_L”中插入重复键" 提示的处理方案
【问题描述】
部分客户低版本升级补丁后,补丁升级报告里面会有错误脚本提示信息"当前销售组(销售组名称)...不能在对象“dbo.T_MDL_FILTERCONDITION_L”中插入重复键" 类似的错误脚本提示信息(如图所示)
【影响说明】
此脚本错误对升级业务应用没有影响,可暂时忽略此脚本错误,或手工执行帖子后面【解决方案】里的新脚本即可(如不手工执行,通版后续新版本也会重新更新此脚本,未来升级也可自动修复),如果忽略不处理仅只是影响到后续不能使用此新增的比较运算符而已(一般在过滤或设置数据规则等选择比较符时选择此比较符变量)
【原因分析】
此脚本是过程补丁里面,业务新增的业务比较符【当前销售组(销售组名称)】【当前销售组(销售组编码)】的预插脚本,脚本里面的多语句表 【T_MDL_FILTERCONDITION_L】脚本里面限制了取内部预插的比较符主键内码<100000的比较符里面取Max(主键)+1方式设置多语言表的主键。 恰巧部分客户自身添加过自定义比较符加上其他领域可能也会预插一些比较符,可能导致了超过100000的比较符内码存在在多语言表里面。
因此脚本里面仅限制100000的条件可能就不符合实际了,需要加大内码100000的条件或取消此条件限制。
【解决方案】
出现这样的提示可用以下几种解决方案处理,请尝试下列操作来解决:
方案一. 手工执行新脚本:
DELETE T_MDL_FILTERCONDITION_L WHERE FID = 410;
DELETE T_MDL_FILTERCONDITION_L WHERE FID = 411;
INSERT INTO T_MDL_FILTERCONDITION_L(FPKID,FID,FLOCALEID,FNAME,FDATASOURCE,FTOOLTIP) VALUES ((select max(ISNULL(FPKID,0))+1 from T_MDL_FILTERCONDITION_L where fid<200000),410,2052,N'当前销售组(销售组名称)',null,null) ;
INSERT INTO T_MDL_FILTERCONDITION_L(FPKID,FID,FLOCALEID,FNAME,FDATASOURCE,FTOOLTIP) VALUES ((select max(ISNULL(FPKID,0))+1 from T_MDL_FILTERCONDITION_L where fid<200000),411,2052,N'当前销售组(销售组编码)',null,null) ;
----------直接复制脚本在sql 查询分析器里面执行即可-------
方案二. 忽略不处理
如果忽略不处理对业务没有任何影响,仅只是影响到后续不能使用此新增的比较运算符而已(一般在过滤或设置数据规则等选择比较符时选择此比较符变量),通版后续补丁脚本里面也会主动重置新脚本,后续升级后也可自动恢复正常。
推荐使用【方案一】 自行解决即可
关于升级补丁脚本异常"当前销售组(销售组名称)... 不能在对象“dbo.T_MDL_FILTERCONDITION_L”中插入重复键" 提示的处理方案
本文2024-09-23 01:25:16发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-145813.html