让框架自动校验引用数据不能被删除
2010-09-21 18:20
267 查看
在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)中插入数据就好多了,不用自己再来写脚本了,开发效率能提高很多。
如果某个基础资料被单据引用后,又把这个基础资料给删除了,再打开单据的查看界面时,系统就会报中断错误,提示对象找不到。
这种情况下,一般的做法是,在基础资料被删除前,检查一下是否被该单据引用了,如果已经被单据引用,提示不能删除。
假如基础资料不多,引用的单据也不多,编写一下代码也比较容易,但是如果基础资料比较多,引用关系也比较多,工作量就显的比较大了。重复的写这些代码,只能复制不能重用。
其实框架已经提供了自动校验引用关系逻辑,提供了一个引用关系表(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)中插入数据就好多了,不用自己再来写脚本了,开发效率能提高很多。
相关文章推荐
- jeecms 数据被引用,不能删除。解决办法
- jeecms 数据被引用,不能删除。解决办法
- 关于layui前端的框架(自动渲染中加在数据 和重新渲染)layui 官网例子bug解决 不能自动伸缩
- jsp中include引用页面不能自动更新
- spring ssm框架整合redis,用来存储一些常用校验数据
- 自动删除一天的数据
- SQL 已更新或删除的行值要么不能使该行成为唯一行(sqlserver中有多行所有的列重复的数据,无法更新或删除问题)
- Struts2.0 (开发之三)--数据校验框架--CTO
- DataGridView数据绑定到支持更改通知并允许删除的IBindinglist,否则不能以编程的方式移除
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- PowerShell自动删除过期数据
- 网站发布成功上传以后数据不能删除和添加?
- 利用PS脚本自动删除7天前建立的数据-方法2!
- C/C++,数据结构单链表(采用C++"引用"方法)(寻找节点、在某处插入结点、删除某位置结点)
- MSSql ID自动增长删除数据重1开始
- MySQL Workbench 6 不能删除数据等问题(“Error Code: 1175”) 和入门教程
- rownum 的使用,不能对rownum用">",删除查询特定条数据
- 内置虚拟化,自动分层,重复数据删除,固态硬盘,IBM Storwize V7000亮点解析
- struts2:数据校验,通过XWork校验框架实现(validation.xml)
- VS2013与MySql建立连接;您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库 EF6使用Mysql的技巧