|
问题现象:在用友8.52erp系统中用友U8版本号:U8.52软件的供应链产品线库存管理模块出现如下问题:库存系统录入几张入库单后报错,查数据库发现RdRecord表,新增的入库单id号排在前面,新增加单据时有重号,故报错。取消id的主键,无法解决。请帮助查找原因,很急,所有出入库单据都有此问题。请帮忙解答!
原因分析:对于数据表ua_identity,程序可以允许其中记录的ifatherid、ichildid值大于等于当前年度帐中关联数据主子表的唯一标识信息,如果小于则单据保存失败。由于是“新建03、04年度帐”,导致ua_identity中rd对应的ifatherid/ichildid均为初始值1,远远小于实际的max(rdrecord.id),max(rdrecords.autoid),从而导致单据保存时失败。建议:可按原帐套在ua_identity中对应记录信息调整新建帐套的对应信息。(按帐套、年度、单据类型调整对应的ifatherid,ichildid)。
解决方案:在用友erp 系统版本U8.52软件中1、首先了解一下ua_identity的结构及保存数据内容:字段名字段中文名cAcc_Id账套号cVouchType单据类型编码iFatherId主表标识iChildId子表标识该数据表中按帐套、单据类型保存单据主表、子表的唯一标识信息,其中cVouchtype为对应单据类型的简写。2、解决脚本(在sql查询分析器中执行即可):useufdata_001_2004goupdateufsystem..ua_identitysetifatherid=(selectconvert(int,right(max(id),6))fromrdrecord),ichildid=(selectconvert(int,right(max(autoid),6))fromrdrecords)wherecacc_id=‘001‘andcvouchtype=‘rd‘go3、“取消id的主键”这种做法是绝对不允许的!!!id作为收发记录主表rdrecord的主键,作为数据表的唯一标识信息,取消只会造成数据的进一步混乱。针对问题应从问题的根源着手,而不是毫无目的的随意改动,以免造成数据意外错误。4、如果操作过程中采用覆盖物理数据库的方式,建议进行数据库附加操作,从而保证业务正常使用。附加脚本供参考,如下,{--分离pubs数据库,并将skipchecks设为true。EXECsp_detach_db‘ufdata_001_2001‘,‘true‘--下面的示例将pubs中的两个文件附加到当前服务器。EXECsp_attach_db@dbname=N‘ufdata_001_2001‘,@filename1=N‘D:\zsbWF820a\ZT002\2001\UFData.mdf‘,@filename2=N‘D:\zsbWF820a\ZT002\2001\UFData.ldf‘}或可参考sql联机帮助。
|
|