电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

系统运维.数据库.修复种子表(基础资料)

来源:金蝶云社区作者:金蝶2024-09-235

系统运维.数据库.修复种子表(基础资料)

【应用场景】

种子表因人为原因、使用不当或者数据库故障导致损坏,录单时系统报错,无法正常录入数据。



【问题背景】

种子表为什么会坏?因为星空的业务表的种子值不是来自于业务表本身,而是另有一套种子表来维护。

单据表的种子表:Z_单据表全名(表名不同,种子表也不同)

基础资料表的种子表:Z_BAS_ITEM(区别于单据,不管是啥基础资料,其单据头表(主表)的种子表都固定使用Z_BAS_ITEM


如果二开人员往业务表中插入数据时,其主键值不是通过星空提供的取种子值的接口获取,那么后面通过界面新增数据时,一定会出现主键冲突的问题,因为当前插入业务表的种子值并没有在种子表报备,出现种子值重复问题是迟早的事情。

星空提供的获取种子值的接口如下:

Kingdee.BOS.ServiceHelper.DBServiceHelper.GetSequenceInt32

Kingdee.BOS.ServiceHelper.DBServiceHelper.GetSequenceInt64

Kingdee.BOS.ServiceHelper.DBServiceHelper.GetSequenceString


【调用示例】

获取物料(基础资料)主表种子值:

Kingdee.BOS.ServiceHelper.DBServiceHelper.GetSequenceInt64(ctx,"T_BAS_ITEM",1)

获取物凭证(单据)主表种子值:

Kingdee.BOS.ServiceHelper.DBServiceHelper.GetSequenceInt64(ctx,"T_GL_VOUCHER",1)




【解决方案】

当种子表损坏出现主键冲突报错时怎么办?下面以物料为例,进行修复演示。


/*第一步,查看报错表的当前种子值,所有基础资料,共用一张种子表Z_BAS_ITEM*/
DBCC CHECKIDENT('Z_BAS_ITEM', NORESEED)


/*第二步,查看报错的基础资料的表的主键最大值,其中T_BD_MATERIAL为物料表主表,获取主键当前最大值应该查业务表而非种子表

系统运维.数据库.修复种子表(基础资料)

【应用场景】种子表因人为原因、使用不当或者数据库故障导致损坏,录单时系统报错,无法正常录入数据。【问题背景】种子表为什么会坏?因为...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信