电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何在设计期对设计器表单事件进行二次扩展

来源:金蝶云社区作者:金蝶2024-09-236

如何在设计期对设计器表单事件进行二次扩展


问题描述

客户在某些场景下需要在标准产品的基础上进行二次开发,针对某些操作进行扩展。如模型发布,设计器校验等场景。

操作步骤

1. 新增自定义插件类实现kd.bos.form.plugin.IFormPlugin,重写customEvent(CustomEventArgs e)方法。

2. 在customEvent()方法中判断event实际类型或者判断其父类CustomEventArgs对象属性key 的值,做出相应的扩展 

3. 在对应的设计器表单添加插件(第一步自定义的插件类),在操作执行成功之后会触发插件中相关的方法。

可以做采用Java 和 Ks 脚本:

Java 示范:


public class ModelEventTestPlugin implements IFormPlugin {
        @Override
	public void customEvent(CustomEventArgs e){
	//以模型保存事件为例
		if (e instanceof AfterSaveDigramEvent){
			AfterSaveDigramEvent tAfterSaveDigramEvent = (AfterSaveDigramEvent) e;
			GraphModel model=tAfterSaveDigramEvent.getGraphModel();
			String modelJson = model.getBpmnModelJson();
			String processNumber = tAfterSaveDigramEvent.getProcessNumber();
			String version = tAfterSaveDigramEvent.getProcessVersion();
        }
	}
}



Ks示范

require("kd.bos.servicehelper.devportal.BizScriptServiceHelper");
require("kd.bos.workflow.design.plugin.event.AfterSaveDigramEvent");
require("kd.bos.workflow.design.plugin.event.AfterCheckDigramEvent");
require("kd.bos.workflow.design.plugin.event.AfterExportProcessEvent");
require("kd.bos.workflow.design.plugin.event.AfterImportProcessEvent");
require("kd.bos.workflow.design.plugin.event.AfterPublishDigramEvent");
require("kd.bos.workflow.management.plugin.event.AfterActivateProcessEvent");
require("kd.bos.workflow.management.plugin.event.AfterSuspendProcessEvent");
require("kd.bos.workflow.management.plugin.event.AfterImportSchemesEvent");
require("kd.bos.workflow.management.plugin.event.AfterExportSchemesEvent");
require("kd.bos.workflow.design.graph.model.GraphModel");
var plugin = new FormPlugin({
	customEvent : function(e){
        if (e instanceof AfterSaveDigramEvent){
            var model=e.getGraphModel()
            var modelJson = JSON.parse(model.getBpmnModelJson());
            var str = 'AfterSaveDigramEvent ProcessNumber='+e.getProcessNumber()+'ProcessType='+e.getProcessType()+'GraphModel_procNumber='+modelJson.properties.process_id+'ProcessVersion='+e.getProcessVersion();
            this.log(str);
            
        }else if(e instanceof AfterPublishDigramEvent){
            var model=e.getGraphModel()
            var modelJson = JSON.parse(model.getBpmnModelJson());
            var str = 'AfterPublishDigramEvent ProcessNumber='+e.getProcessNumber()+'modelId='+e.getModelId()+'GraphModel_procNumber='+modelJson.properties.process_id+'ProcessVersion='+e.getProcessVersion()+'processVersion='+e.getProcessVersion();
            this.log(str);
            
        }else if(e instanceof AfterCheckDigramEvent){
            
            var model=e.getGraphModel()
            var modelJson = JSON.parse(model.getBpmnModelJson());
            var str = 'AfterCheckDigramEvent processType='+e.getProcessType()+'GraphModel_procNumber='+modelJson.properties.process_id;
            this.log(str);
 

如何在设计期对设计器表单事件进行二次扩展

问题描述客户在某些场景下需要在标准产品的基础上进行二次开发,针对某些操作进行扩展。如模型发布,设计器校验等场景。操作步骤1. 新增自...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信