二开单据重写提交功能报主键冲突案例分析
一、问题描述
二开的单据点击提交时后台报错,报错信息为主键冲突
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")判断对应的控件类型,修改二开代码解决
二开单据重写提交功能报主键冲突案例分析
本文2024-09-22 20:02:39发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-111091.html