二开单据重写提交功能报主键冲突案例分析

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

二开单据重写提交功能报主键冲突案例分析

一、问题描述

二开的单据点击提交时后台报错,报错信息为主键冲突

com.kingdee.bos.dao.ormapping.SQLAccessException: create data error.ERROR: duplicate key value violates unique constraint "cpk_ppp_pppploc09p"

  Detail: Key (fid)=(lK++aRWyThiBuv1bupLo8VbjnIk=) already exists.

Caused exception message is: ERROR: duplicate key value violates unique constraint "cpk_ppp_pppploc09p"

  Detail: Key (fid)=(lK++aRWyThiBuv1bupLo8VbjnIk=) already exists.

错误详细堆栈信息:org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "cpk_ppp_pppploc09p"

  Detail: Key (fid)=(lK++aRWyThiBuv1bupLo8VbjnIk=) already exists.

二、解决

经堆栈分析提交代码在com.kingdee.eas.framework.app.CoreBaseControllerBean的_save方法,该方法对id进行了判断,即存在则创建否则更新,因此排除后台原因。最终分析是前台二开代码错误使用了api导致相同按钮注册了两份click事件(wafLinkButton使用了wafMenuButton api导致),可通过waf("#xxx").attr("ctrlrole")判断对应的控件类型,修改二开代码解决

二开单据重写提交功能报主键冲突案例分析

一、问题描述二开的单据点击提交时后台报错,报错信息为主键冲突com.kingdee.bos.dao.ormapping.SQLAccessException: create data error...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息