本文档描述了一个关于金蝶K3系统中无法通过“核算项目类别修改”新增“物料自定义属性”的问题,由于系统提示“名称或代码在系统中已被使用”,尝试多种方法无果。最终通过备份账套A并恢复为账套B,在B中成功新增自定义字段,再导出并导入至账套A,并修复丢失的视图触发器,成功解决问题。
分享一个以前碰到并解决的一个古怪问题,因为账套数据还需要供其他数据库服务器进行数据的出版订阅,账套的数据库文件非常大,解决起来花了有2个多月的时间。
问题:K3系统无法通过“核算项目类别修改”来新增“物料自定义属性”,提示【“名称或代码在系统中已被使用”,分布式事务已完成。请将此会话登记到新事务或NULL事务中】。
但该账套新增基础资料,做单据,成本计算,生成凭证,结账等功能均正常。
系统环境如下:
操作系统:32位的Windows Server 2003 简体中文企业版SP2
数据库:MS Sql Server 2000 简体中文企业版sp4
应用软件版本:金蝶K3 V11.01(补丁:PT018715,PT053387)
1.操作过程:
尝试解决过程1:
1.新增的自定义属性的名称修改为数字;
2.核算项目类别确定后,再去重命名数字为中文;
3.添加自定义字段,仍然有同样的错误提示;
尝试解决过程2:
1.把账套A进行备份,然后在K3账套管理功能中对账套数据库进行优化;
2.把账套A取消注册,然后重新注册;
3.添加自定义字段,仍然有同样的错误提示;
尝试解决过程3:
1.把账套A的数据库发布与订阅功能取消;
2.添加自定义字段,仍然有同样的错误提示;
以上尝试均未能解决问题。
【最终解决】
1.把账套A进行备份,然后恢复账套B,在账套B中新增自定义字段【分类】,可以新增成功;
2.在账套B中新增【商品代码:9999.99ZZ,名称:9999.99ZZ】;
3.把账套B中【商品代码:9999.99ZZ,名称:9999.99ZZ】商品基础资料通过K3 BOS数据交换功能导出,文件命名为《商品基础资料B》;
4.把《商品基础资料B》通过K3 BOS数据交换功能导入到账套A,出现下列提示,但检查商品的属性发现,新增的自定义字段【分类】已存在;
5.导入结束后,登录K3客户端,打开商品基础资料时,发现提示错误;
6.把账套B中t_ICItem视图语句复制,然后粘贴到账套A中的同名视图,在K3客户端,打开商品基础资料时,发现错误提示已经没有;
7.在K3 BOS数据交换功能对商品资料进行导入或导出时,出现以下提示:
8.在K3客户端,新增或修改商品基础资料,在保存时会提示以下错误;
“输入数据超过范围,请重新输入”
运行这些语句还是不行。
update t_Identity set FNext=(select MAX(fitemid)+1 from t_item) where FName='t_item'
9.分析可能出错的原因是前期操作人员在添加物料基础资料的属性后,K3系统重新创建视图,但不知是何原因该视图上的触发器丢失,这种情况可以通过执行以下两个语句最终解决:
EXEC SP_CREATE_ICItem_VIEW
EXEC SP_CREATE_ICItem_TRIGGER
注1:以执行第1个存储过程时,如果账套A是用于发布或订阅数据,则可能会出现以下提示:
这时可以直接用账套B中的t_ICItem视图语句替换账套A中的t_ICItem视图语句,就不需要执行EXEC SP_CREATE_ICItem_VIEW创建视图,可以直接执行EXEC SP_CREATE_ICItem_TRIGGER创建触发器即可;
10.对商品基础资料进行导入和导出操作,提示完全成功;
11.在K3客户端,打开商品基础资料时,新增或修改商品基础资料,在保存时正常。
至此问题全部解决。
******本文档到此结束******
推荐阅读