配置校验 框架引用数据不能被删除
金蝶云社区-何丽洲
何丽洲
0人赞赏了该文章 894次浏览 未经作者许可,禁止转载编辑于2018年03月02日 15:48:51

问题场景:EAS二次开发中,大部分业务系统都会有一些基础资料被其它业务单据引用,如果某个基础资料被单据引用后,又把这个基础资料给删除了,再打开业务单据界面时,系统就会报中断错误,提示对象找不到。这种情况下,一般的做法是,在基础资料被删除前,检查一下是否被该单据引用了,如果已经被单据引用,提示不能删除。假如基础资料不多,引用的单据也不多,编写一下代码也比较容易,但是如果基础资料比较多,引用关系也比较多,工作量就显的比较大了。重复的写这些代码,只能复制不能重用。 其实框架已经提供了自动校验引用关系逻辑,提供了一个引用关系表(T_SYS_EntityRef),在引用关系表中,按要求插入数据,就可以使用框架提供的功能了。经试用发现表的字段含义如下:


eg:
违约概率和信用级别,信用级别引用了违约概率,所以在删除违约概率时,要检查是否被信用级别引用,只需要在引用关系表(T_SYS_EntityRef)中插入如下数据即可:
insert into T_SYS_ENTITYREF
(
FBOSTYPE
,FREFTABLENAME
,FREFFIELDNAME
,FENTITYNAME
,FENTITYALIAS_L2
,FREFENTITYNAME
,FREFENTITYALIAS_L2
)
values
(
'违约概率实体的BOSTYPE'
,'信用级别对应的元数据表名'
,'信用级别对应的元数据表上记录违约概率ID的字段名'
,'违约概率实体名'
,'违约概率'
,'信用级别实体名'
,'信用级别'
);

insert into T_SYS_ENTITYREF
( FBOSTYPE,FREFTABLENAME,FREFFIELDNAME,FENTITYNAME,FENTITYALIAS_L2 ,FREFENTITYNAME,FREFENTITYALIAS_L2,FIsBOSFK)
values
('8C89C590','T_RB_IndZoneIndexInf','FIndustryID','IndustryInf','行业信息','IndZoneIndexInf','行业区域及指标信息',1);