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

问题描述
客户在某些场景下需要在标准产品的基础上进行二次开发,针对某些操作进行扩展。如模型发布,设计器校验等场景。
操作步骤
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格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



