【背景】
事情是这样的,今天接到某私有云客户线上问题反馈,说有异常数据(基础资料)需要删除,开始不以为然,答复说天梯提数据库脚本修复申请。
后来,现场反馈说,客户注重线上数据安全,不允许随意执行脚本篡改数据库的数据,只能通过业务系统上的业务操作进行数据修改处理,确实需要修改数据的需要走审批,等批下来估计黄花菜都凉了。因为基础资料在删除时会做引用校验,但是由于平台在交互上的不友好,根本无法知道是被哪里引用,所以,现场实施找到了总部这边协助。
【解决方案】
通过扩展元数据,添加KS脚本插件,通过DeleteServiceHelper中的delete接口删除,具体实现如下:
主要的逻辑是:通过界面操作触发点击事件调用KS脚本代码删除指定的数据。
第一步:在元数据列表界面的工具栏添加一个操作按钮:
第二步:在列表界面的插件配置界面注册脚本:
第三步:KS代码编写
require("kd.bos.servicehelper.operation.DeleteServiceHelper"); require("kd.bos.form.operate.FormOperate"); require("kd.bos.orm.query.QFilter"); /** * @author 高峰 * @date 2022-12-15 */ var plugin = new ListPlugin({ registerListener: function(e) { //监听工具栏,此处需要特别注意toolbarap 这个标识是固定的,不是给按钮添加监听 this.addItemClickListeners("toolbarap"); }, itemClick: function(e) { //获取触发事件的按钮标识 var itemKey = e.getItemKey(); //自定义按钮标识dce_delete if ("dce_delete".equals(itemKey)) { var filter = new QFilter("id", "=", 1568878184081197056); DeleteServiceHelper.delete("bd_project", filter); } } });
推荐阅读
移动端单据列表插件事件总览
1 事件总览 移动端单据,除了PC端[链接]标准单据列表插件事件 ,还支持如下插件事件,可在开发时获取提示说明: 方法 mobileSearchInit mob …
- 知识
2140
移动端工具栏点击事件
在普通单据开发时工具栏的监听事件为this.addItemClickListeners("工具栏标识");然后再itemclick事件中捕获点击按钮的key再做 …
- 文章
2370
标准单据列表插件事件总览
1 事件总览 标准单据列表插件,支持[链接]动态表单界面插件全部事件 ,并新增了IListPlugin、ListRowClickListener、IRegist …
- 知识
10553