让框架自动校验引用数据不能被删除

来源:互联网 发布:javascript无法跳转 编辑:程序博客网 时间:2024/06/12 15:00

在EAS二次开发中,大部分业务系统都会有一些基础资料,被其它业务单据使用。

 

如果某个基础资料被单据引用后,又把这个基础资料给删除了,再打开单据的查看界面时,系统就会报中断错误,提示对象找不到。

 

这种情况下,一般的做法是,在基础资料被删除前,检查一下是否被该单据引用了,如果已经被单据引用,提示不能删除。

 

假如基础资料不多,引用的单据也不多,编写一下代码也比较容易,但是如果基础资料比较多,引用关系也比较多,工作量就显的比较大了。重复的写这些代码,只能复制不能重用。

 

其实框架已经提供了自动校验引用关系逻辑,提供了一个引用关系表(T_SYS_EntityRef),在引用关系表中,按要求插入数据,就可以使用框架提供的功能了。

 

由于元数据上没有注释,也没有对应的实体,经试用发现表的字段含义如下:

 

如有如下基础资料:
违约概率和信用级别,信用级别引用了违约概率,所以在删除违约概率时,要检查是否被信用级别引用,只需要在引用关系表(T_SYS_EntityRef)中插入如下数据即可:
insert into T_SYS_ENTITYREF
(
 FBOSTYPE
,FREFTABLENAME
,FREFFIELDNAME
,FENTITYNAME
,FENTITYALIAS_L2 
,FREFENTITYNAME
,FREFENTITYALIAS_L2
)
values
(
 '违约概率实体的BOSTYPE'
,'信用级别对应的元数据表名'
,'信用级别对应的元数据表上记录违约概率ID的字段名'
,'违约概率实体名'
,'违约概率'
,'信用级别实体名'
,'信用级别'
);
 
如果BOS能提供功能,能够自动往引用关系表(T_SYS_EntityRef)中插入数据就好多了,不用自己再来写脚本了,开发效率能提高很多。
原创粉丝点击