金鹰BPM流程平台开发手册.docx

上传人:小飞机 文档编号:1676487 上传时间:2022-12-13 格式:DOCX 页数:37 大小:147.47KB
返回 下载 相关 举报
金鹰BPM流程平台开发手册.docx_第1页
第1页 / 共37页
金鹰BPM流程平台开发手册.docx_第2页
第2页 / 共37页
金鹰BPM流程平台开发手册.docx_第3页
第3页 / 共37页
金鹰BPM流程平台开发手册.docx_第4页
第4页 / 共37页
金鹰BPM流程平台开发手册.docx_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《金鹰BPM流程平台开发手册.docx》由会员分享,可在线阅读,更多相关《金鹰BPM流程平台开发手册.docx(37页珍藏版)》请在三一办公上搜索。

1、金鹰BPM系统平台开发文档文档编号适用范围开发人员适用版本V1.2目录1.文档约定41.1.阅读对象41.2.名词术语41.3.标记符号42.系统扩展接口及API方法52.1.流程扩展开发接口52.1.1.流程全局触发器接口52.1.2.流程节点触发器接口82.1.3.流程路由触发器接口112.1.4.流程系统规则跳转触发器接口122.1.5.流程节点脚本触发器接口142.2.数据维护扩展开发接口152.3.金鹰BPM组件开发接口182.3.1.域外观组件扩展接口开发182.3.2.RV参数扩展(动态获取运行时变量)接口开发222.4.SDK API接口242.4.1.DemAPI242.4.

2、2.ProcessAPI262.4.3.MessageAPI292.4.4.OrganizationAPI322.5.常用API接口342.5.1.DBUtil342.5.2.MessageQueueUtil361. 文档约定为帮助您快速浏览此文档,建议您首先阅读下面的文档约定。1.1. 阅读对象金鹰BPM开发人员1.2. 名词术语n APIn instanceId流程实例ID,n excuteId分支流程实例IDn taskId任务IDn actDefId流程流转模型IDn proDefId流程定义模型ID1.3. 标记符号为帮助您快速浏览此文档,建议您首先阅读下面的文档标记约定:符号说明示

3、例n 背景+斜体系统、模块、功能导航流程中心流程发起中心n 半角括号窗体可视标签请在标题输入工作流标题n 加粗+下划线+黑体按钮或热链接点击办理按钮n 双引号界面提示文字“任务已经发送给XXX”n帮助帮助:XXXn提醒提醒:XXXn警告警告:XXXn重要重要:XXXn技巧技巧:XXX2. 系统扩展接口及API方法2.1. 流程扩展开发接口当流程平台通过实施无法满足复杂的业务需求时,同通过平台提供的扩展接口,进行扩展开发满足系统对复杂业务的支持2.1.1. 流程全局触发器接口2.1.1.1. 事件类型窗体顶端n 加签完成后触发n 任务转发时触发n 任务删除时触发n 任务归档时触发2.1.1.2.

4、 继承类说明com.iwork.process.runtime.pvm.trigger.ProcessTriggerEvent2.1.1.3. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。2.1.1.4. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean2.1.1.5. 获取参数方法序号获取参数方法类型说明适用范围1getInstanceId()Long流程实例ID适用于全部全局事件2getTaskId()Long流

5、程任务ID适用于全部全局事件3getExcutionId()Long流程实例执行ID适用于全部全局事件4getActDefId() String流程ID适用于全部全局事件5getReceiveUser()String转发接收人适用于“任务转发时触发”事件6getParams()HashMap其他参数使用户加签、归档事件getOwner() String获取流程发起人2.1.1.6. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;importcom.iwo

6、rk.core.organization.context.UserContext;importcom.iwork.process.runtime.pvm.trigger.ProcessTriggerEvent;public class ProcessTriggerTestEventextends ProcessTriggerEvent privateUserContext _me;privateHashMapparams;publicProcessTriggerTestEvent()super();publicProcessTriggerTestEvent(UserContextme,Hash

7、Map hash)super(me,hash);_me= me;params= hash;publicbooleanexecute() if(params!=null)/获取流程IDString actDefId = this.getActDefId();/获取流程实例IDLong instanceId = this.getInstanceId();try MessageQueueUtil.getInstance().putAlertMsg(测试弹出窗口消息);catch(Exception e)System.out.println(“执行触发器事件”);return true;2.1.2.

8、流程节点触发器接口2.1.2.1. 支持触发事件n (E-01) 流程任务-选择办理人前n (E-02) 流程任务-确认发送动作前n (E-03) 流程任务-确认发送动作后n (E-04) 流程表单加载前n (E-05)流程表单加载后n (E-06)流程表单保存前n (E-07)IFORM表单保存后n (E-08)流程任务-执行驳回动作前2.1.2.2. 继承类说明com.iwork.process.runtime.pvm.trigger.ProcessStepTriggerEvent2.1.2.3. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统

9、参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。2.1.2.4. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean2.1.2.5. 获取参数方法序号说明参数ID类型适用范围1流程实例IDgetInstanceId()Long适用于全部2流程任务IDgetTaskId()Long适用于全部3流程实例执行IDgetExcutionId()Long适用于全部4流程IDgetActDefId()String适用于全部5获取流程模型设置IDgetProDefId()Long适用于全部6流程节点IDgetActStepId

10、()String适用于全部7表单IDgetFormId() Long适用于全部8操作表名getTableName()String适用于表单保存、点击办理按钮触发事件9表单数据getFormData()HashMap适用于表单保存、点击办理按钮触发事件2.1.2.6. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;importcom.iwork.core.organization.context.UserContext;importcom.iwork.pr

11、ocess.runtime.pvm.trigger.ProcessStepTriggerEvent;public class ProcessStepTriggerTestEventextends ProcessStepTriggerEventprivateUserContext _me;privateHashMapparams;publicProcessTriggerTestEvent()super();publicProcessTriggerTestEvent(UserContextme,HashMap hash)super(me,hash);_me= me;params= hash;pub

12、licbooleanexecute() if(params!=null)/获取流程IDString actDefId =this.getActDefId();/获取流程实例IDLong instanceId = this.getInstanceId();/获取表名String tableName = this.getTableName()/获得表单填报数据HashMapFromData = this.getFormData();/获得流程节点IDString stepId = this.getActStepId();try MessageQueueUtil.getInstance().putA

13、lertMsg(测试弹出窗口消息);catch(Exception e)System.out.println(“执行触发器事件”);return true;2.1.3. 流程路由触发器接口2.1.3.1. 应用场景流程查找下一个办理人时,当金鹰BPM平台中提供的查找方案不能满足当前系统要求是,可通过此路由触发器接口,实现程序扩展,查找办理人。2.1.3.2. 继承类说明com.iwork.process.runtime.pvm.impl.route.SysRouteBaseTriggerEvent2.1.3.3. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2

14、Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。2.1.3.4. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean2.1.3.5. 参数输入序号获取参数方法描述说明类型1getInstanceId()流程实例IDLong2getTaskId()获取当前流程任务IDLong3getExcuteId()流程实例执行IDLong5getActDefId()流程模型IDString6getActStepId();流程节点IDString8getContext()获得当前用户上下文UserContext9ge

15、tProcessStepRouteModel()获得路由模型设置ProcessStepRoute10getTask()获得当前任务对象2.1.3.6. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;importcom.iwork.core.organization.context.UserContext;importcom.iwork.process.runtime.pvm.trigger.ProcessStepTriggerEvent;public c

16、lass ProcessJavaTriggerRouteDemoEventextends SysRouteBaseTriggerEventpublicProcessJavaTriggerRouteDemoEvent(UserContextme,ProcessStepRoutepsr,Task task)super(me,psr,task);/*获取当前节点办理人列表*/public ListgetRouteUser() List list = newArrayList();/获取流程IDString actDefId = this.getActDefId();/获得当前流程实例IDLong i

17、nstanceId = this.getInstanceId();UserContextuc = UserContextUtil.getInstance().getUserContext(SUQI);list.add(uc);return list;2.1.4. 流程系统规则跳转触发器接口2.1.4.1. 应用场景适用于金鹰BPM平台提供的系统规则表达式定义无法满足当前系统要求时,可通过注册此触发器,实现复杂规则跳转操作2.1.4.2. 继承类说明com.iwork.process.runtime.pvm.impl.SysJumpTriggerEvent2.1.4.3. 构造方法参数说明序号参

18、数名称说明类型1me当前用户上下文UserContext2task当前任务对象Task提醒:使用构造方法时注意调用super(uc,task);调用父类构造函数。2.1.4.4. 接口实现序号实现接口方法说明返回值返回值类型1getNextStepId()获取下一个办理节点目标节点IDStringgetCCUserList()获取抄送用户列表抄送用户列表List2.1.4.5. 获取参数方法序号说明参数ID类型适用范围1流程实例IDgetInstanceId()Long适用于全部2流程任务IDgetTaskId()Long适用于全部3流程实例执行IDgetExcutionId()Long适用于

19、全部4流程IDgetActDefId()String适用于全部5流程节点IDgetActStepId()String适用于全部6获得当前实例发起人getOwner()String适用于全部2.1.4.6. 示例packagecom.iwork.demo;importjava.util.ArrayList;importjava.util.List;importorg.activiti.engine.task.Task;importcom.iwork.core.organization.context.UserContext;importcom.iwork.process.runtime.pvm.

20、impl.system.SysJumpTriggerEvent;public class SysJumpTestTriggerEventextends SysJumpTriggerEvent publicSysJumpTestTriggerEvent(UserContextuc,Task task)super(uc,task); /* * 获得下一个办理节点 */publicString getNextStepId()/ TODO Auto-generated method stubreturnusertask5;/* * 获得抄送用户列表 */publicListgetCCUserList(

21、) List list = new ArrayList();list.add(this.getContext();returnlist;2.1.5. 流程节点脚本触发器接口2.1.5.1. 应用场景点击“保存”或“顺序办理”(包含人工跳转)按钮菜单时,先执行预定义js脚本,实现事件拦截操作2.1.5.2. 示例帮助:录入js脚本时,可直接编辑脚本正文,无需填写js方法名,js脚本支持jquery语法2.2. 数据维护扩展开发接口2.2.1.1. 支持触发事件n (D-05) 表单数据删除前n (D-02) 表单数据加载后n (D-04) 表单数据保存后n (D-01) 表单数据加载前n (D-

22、03) 表单数据保存前2.2.1.2. 继承类说明com.iwork.core.engine.dem.trigger.DemTriggerEvent2.2.1.3. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。2.2.1.4. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean2.2.1.5. 获取参数方法序号参数ID类型说明适用范围1getInstanceId()Long数据维护实例ID适用于全部事件2getData

23、Id()Long记录ID适用于全部事件3getFormData()HashMap流程实例执行ID【保存前】、【保存后】4getFormId()String表单ID【保存前】、【保存后】、【加载前】事件5getTableName()String当前表名适用于“任务转发时触发”事件6getActionType()String操作类型使用户加签、归档事件7getUserContext()UserContext当前用户上下文适用于全部事件2.2.1.6. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.ut

24、il.MessageQueueUtil;importcom.iwork.core.organization.context.UserContext;importcom.iwork.process.runtime.pvm.trigger.ProcessStepTriggerEvent;public class DemTriggerTestEventextends DemTriggerEventprivateUserContext _me;privateHashMapparams;publicProcessTriggerTestEvent()super();publicDemTriggerTest

25、Event(UserContextme,HashMap hash)super(me,hash);_me= me;params= hash;publicbooleanexecute() if(params!=null)/获取流程实例IDLong instanceId = this.getInstanceId();return true;2.3. 金鹰BPM组件开发接口2.3.1. 域外观组件扩展接口开发当系统平台在“表单域”中定义的外观组件不能满足系统要求时,可通过定义外观域组件,实现扩展,适应复杂的系统变化2.3.1.1. 继承类ponent.IFormUIComponentAbst2.3.1

26、.2. 接口实现2.3.1.3. 构造方法参数说明序号参数名称说明类型1metadataMap数据库字段存储设置SysEngineMetadataMap2iformMap表单域设置SysEngineIformMap3value默认值String提醒:使用构造方法时注意调用super(metadataMap,iformMap, value);调用父类构造函数。2.3.1.4. 接口实现序号实现接口方法说明返回值1getMobileHtmlDefine(HashMapparams)获取移动端表单域显示可编辑状态外观代码String2getModifyHtmlDefine(HashMapparams

27、)获取PC端表单域显示可编辑状态外观代码String3getReadHtmlDefine(HashMapparams) 获取只读单域显示可编辑状态外观代码String2.3.1.5. 获取参数方法序号参数ID类型说明1this.getIformMapModel()SysEngineIformMap获取表单域模型定义2this.getMetadataMapModel()SysEngineMetadataMap数据库字段存储模型设置3this.getValue()String获取当前值2.3.1.6. 注册组件开发完毕后,在%HOME%WEB-INF/iform-component.xml配置文件

28、中进行注册表单域组件TxtBox单行文本域iwork_img/engine/component/text.pngponent.UIComponentInterfaceponent.IFormComponentTextImpl普通HTML输入标签2.3.1.7. 示例ponent;importjava.util.HashMap;importjava.util.Map;importcom.iwork.core.engine.iform.model.SysEngineIformMap;importcom.iwork.core.engine.metadata.model.SysEngineMetada

29、taMap;importcom.iwork.core.engine.util.WrapScriptUtil;public class IFormUIComponentHiddenImplextends IFormUIComponentAbst /* * param value * parammetaDataMapModel * preserve 声明此方法不被JOC混淆. */publicIFormUIComponentHiddenImpl(SysEngineMetadataMapmetadataMap,SysEngineIformMapiformMap,String value) super

30、(metadataMap,iformMap, value);/* 获得移动端显示的组件代码 */publicString getMobileHtmlDefine(HashMapparams) returnthis.getModifyHtmlDefine(params);/* * preserve 声明此方法不被JOC混淆. */publicString getModifyHtmlDefine(HashMapparams) StringBufferfieldHtml = new StringBuffer();fieldHtml.append(getValue().append();returnf

31、ieldHtml.toString();/* * preserve 声明此方法不被JOC混淆. */publicString getReadHtmlDefine(HashMapparams) returngetModifyHtmlDefine(params);2.3.2. RV参数扩展(动态获取运行时变量)接口开发当系统平台在“表单域”中定义的默认值中,填写的RV参数不能满足系统要求时,可通过自定义,实现扩展,扩展动态获取运行时参数2.3.2.1. 继承类com.iwork.core.engine.runtime.el.ExpressionAbst2.3.2.2. 接口实现2.3.2.3. 构

32、造方法参数说明序号参数名称说明类型1model参数对象集合ExpressionParamsModel2expressionValue参数标识String提醒:使用构造方法时注意调用super(model, expressionValue);调用父类构造函数。2.3.2.4. 接口实现序号实现接口方法说明返回值1expressionParse(HashMapparams)解析公式,并返回结果String2.3.2.5. 获取参数方法序号参数ID类型说明1this.getFormId()SysEngineIformMap获取当前表单ID2this.getInstanceid()Long获取当前流程

33、实例3this.getEntityname()String获得当前存储表名this.getContext()UserContext获取当前用户上下文this.getTaskParams()HashMap获得其他任务参数2.3.2.6. 注册组件开发完毕后,在%HOME%WEB-INF/iform-runtime-variable.xml配置文件中进行注册组织结构变量username当前用户姓名com.iwork.app.expand.runtime.expression.UsernameExpressionImpl%username%获取当前操作者的真实姓名2.3.2.7. 示例package

34、com.iwork.app.expand.runtime.expression;importjava.util.HashMap;importcom.iwork.core.engine.runtime.el.ExpressionAbst;importcom.iwork.core.engine.runtime.el.ExpressionParamsModel;importcom.iwork.core.util.SequenceUtil;public class SequenceNoExpressionImplextends ExpressionAbst private long instancei

35、d;publicSequenceNoExpressionImpl(ExpressionParamsModel model, String expressionValue) super(model, expressionValue);instanceid=model.getInstanceid();publicString expressionParse(String expression) intsequenceNo = 0;trysequenceNo = SequenceUtil.getInstance().getSequenceIndex(BPM: + instanceid); catch

36、(Exception e) returnInteger.toString(sequenceNo);2.4. SDK API接口2.4.1. DemAPI2.4.1.1. 概述实现数据维护扩展操作,通过DemAPI实现数据维护的新增、保存、删除等操作2.4.1.2. 方法摘要序号返回类型方法说明1LongnewInstance(String demUUID,StringcreateUser)新建数据维护实例2booleansaveFormData(String demUUID,LonginstanceId, HashMaphashdata,booleanisLog)保存数据维护表单数据3bool

37、eansaveFormDatas(String demUUID,LonginstanceId, String subformkey,Listlist,booleanisLog)保存数据维护子表数据4booleanupdateFormData(Long demId,LonginstanceId, HashMaphashdata, Long dataid,booleanislog)更新表单数据5booleanremoveFormData(Long instanceId)移除表单实例数据2.4.1.3. 方法详细信息新建数据维护实例publicLong newInstance(java.Long.S

38、tringdemUUID,java.Long.StringcreateUser)参数说明demUUID数据维护模型唯一标识(点击数据维护模型)createUser创建人保存数据维护表单数据publicbooleansaveFormData(String demUUID,LonginstanceId, HashMaphashdata,booleanisLog)参数说明demUUID数据维护模型唯一标识(点击数据维护模型)instanceId数据维护实例IDhashdata数据维护表单数据值isLog是否记录日志 0:表示不记录 1:记录修改日志保存数据维护子表数据publicbooleansav

39、eFormDatas(StringdemUUID,LonginstanceId, String subformkey,Listlist,booleanisLog)参数说明demUUID数据维护模型唯一标识(点击数据维护模型)instanceId数据维护实例IDsubformkey子表键值,从绑定子表模型中获取list数据维护表单子多行数据列表isLog是否记录日志 0:表示不记录 1:记录修改日志移除表单实例数据publicbooleanremoveFormData(Long instanceId)参数说明instanceId数据维护实例ID2.4.1.4. 示例2.4.2. ProcessAPI2.4.2.1. 概述实现流程发起,创建任务,添加、更新表单数据等功能2.4.2.2. 方法摘要序号返回类型方法说明1LongnewInstance(String actDefId,StringcreateUser)新建流程实例2booleannewTaskId(Long instanceId)创建新的流程任务实例3booleansaveFormData

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号