PeopleSoft-序号自增
序号自增
代码写在页面对应表的RowInit中,每次点击添加一行时,会触发该代码,代码如下:
实践证明:代码写在Rowinit中,每次加载该表时,直接生成的序号保存在缓存中,保存时,如果该行数据无实际业务数据,但是有必填字段,会出触发必填校验。应该将代码写在该表的某个必填字段的fieldchange中,只有当填写了实际业务数据时,才会自增序号,否则不触发自增序号,缓存中也就无数据,保存时便不会触发必填校验。
1 | /*========================================================== |
2022年6月26日,在工作实践中发现,使用以上逻辑处理序号问题时,会出现缓存区中的序号与数据库中数据出现冲突无法保存的情况。
解决方案:
在组件加载时,先查询数据库中最大序号保存至组件级字段,生命周期为该组件加载至关闭;然后,每次新增一条记录时,该字段+1,即可避免缓存区中序号与数据库序号冲突。
优点:可完全避免数据冲突保存失败。
缺点:序号只能在原有基础上+1,导致序号无法充分使用。