金鹰BPM流程平台开发手册.docx_第1页
金鹰BPM流程平台开发手册.docx_第2页
金鹰BPM流程平台开发手册.docx_第3页
金鹰BPM流程平台开发手册.docx_第4页
金鹰BPM流程平台开发手册.docx_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

金鹰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.ProcessAPI262.4.3.MessageAPI292.4.4.OrganizationAPI322.5.常用API接口342.5.1.DBUtil342.5.2.MessageQueueUtil3637 / 371. 文档约定为帮助您快速浏览此文档,建议您首先阅读下面的文档约定。1.1. 阅读对象金鹰BPM开发人员1.2. 名词术语n APIn instanceId流程实例ID,n excuteId分支流程实例IDn taskId任务IDn actDefId流程流转模型IDn proDefId流程定义模型ID1.3. 标记符号为帮助您快速浏览此文档,建议您首先阅读下面的文档标记约定:符号说明示例n 背景+斜体系统、模块、功能导航流程中心流程发起中心n 半角括号窗体可视标签请在标题输入工作流标题n 加粗+下划线+黑体按钮或热链接点击办理按钮n 双引号界面提示文字“任务已经发送给XXX”n帮助帮助:XXXn提醒提醒:XXXn警告警告:XXXn重要重要:XXXn技巧技巧:XXX2. 系统扩展接口及API方法2.1. 流程扩展开发接口当流程平台通过实施无法满足复杂的业务需求时,同通过平台提供的扩展接口,进行扩展开发满足系统对复杂业务的支持2.1.1. 流程全局触发器接口. 事件类型窗体顶端n 加签完成后触发n 任务转发时触发n 任务删除时触发n 任务归档时触发. 继承类说明cess.runtime.pvm.trigger.ProcessTriggerEvent. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean. 获取参数方法序号获取参数方法类型说明适用范围1getInstanceId()Long流程实例ID适用于全部全局事件2getTaskId()Long流程任务ID适用于全部全局事件3getExcutionId()Long流程实例执行ID适用于全部全局事件4getActDefId() String流程ID适用于全部全局事件5getReceiveUser()String转发接收人适用于“任务转发时触发”事件6getParams()HashMap其他参数使用户加签、归档事件getOwner() String获取流程发起人. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;anization.context.UserContext;cess.runtime.pvm.trigger.ProcessTriggerEvent;public class ProcessTriggerTestEventextends ProcessTriggerEvent privateUserContext _me;privateHashMapparams;publicProcessTriggerTestEvent()super();publicProcessTriggerTestEvent(UserContextme,HashMap 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. 流程节点触发器接口. 支持触发事件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)流程任务-执行驳回动作前. 继承类说明cess.runtime.pvm.trigger.ProcessStepTriggerEvent. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean. 获取参数方法序号说明参数ID类型适用范围1流程实例IDgetInstanceId()Long适用于全部2流程任务IDgetTaskId()Long适用于全部3流程实例执行IDgetExcutionId()Long适用于全部4流程IDgetActDefId()String适用于全部5获取流程模型设置IDgetProDefId()Long适用于全部6流程节点IDgetActStepId()String适用于全部7表单IDgetFormId() Long适用于全部8操作表名getTableName()String适用于表单保存、点击办理按钮触发事件9表单数据getFormData()HashMap适用于表单保存、点击办理按钮触发事件. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;anization.context.UserContext;cess.runtime.pvm.trigger.ProcessStepTriggerEvent;public class ProcessStepTriggerTestEventextends ProcessStepTriggerEventprivateUserContext _me;privateHashMapparams;publicProcessTriggerTestEvent()super();publicProcessTriggerTestEvent(UserContextme,HashMap hash)super(me,hash);_me= me;params= hash;publicbooleanexecute() 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().putAlertMsg(测试弹出窗口消息);catch(Exception e)System.out.println(“执行触发器事件”);return true;2.1.3. 流程路由触发器接口. 应用场景流程查找下一个办理人时,当金鹰BPM平台中提供的查找方案不能满足当前系统要求是,可通过此路由触发器接口,实现程序扩展,查找办理人。. 继承类说明cess.runtime.pvm.impl.route.SysRouteBaseTriggerEvent. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean. 参数输入序号获取参数方法描述说明类型1getInstanceId()流程实例IDLong2getTaskId()获取当前流程任务IDLong3getExcuteId()流程实例执行IDLong5getActDefId()流程模型IDString6getActStepId();流程节点IDString8getContext()获得当前用户上下文UserContext9getProcessStepRouteModel()获得路由模型设置ProcessStepRoute10getTask()获得当前任务对象. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;anization.context.UserContext;cess.runtime.pvm.trigger.ProcessStepTriggerEvent;public class ProcessJavaTriggerRouteDemoEventextends SysRouteBaseTriggerEventpublicProcessJavaTriggerRouteDemoEvent(UserContextme,ProcessStepRoutepsr,Task task)super(me,psr,task);/*获取当前节点办理人列表*/public ListgetRouteUser() List list = newArrayList();/获取流程IDString actDefId = this.getActDefId();/获得当前流程实例IDLong instanceId = this.getInstanceId();UserContextuc = UserContextUtil.getInstance().getUserContext(SUQI);list.add(uc);return list;2.1.4. 流程系统规则跳转触发器接口. 应用场景适用于金鹰BPM平台提供的系统规则表达式定义无法满足当前系统要求时,可通过注册此触发器,实现复杂规则跳转操作. 继承类说明cess.runtime.pvm.impl.SysJumpTriggerEvent. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2task当前任务对象Task提醒:使用构造方法时注意调用super(uc,task);调用父类构造函数。. 接口实现序号实现接口方法说明返回值返回值类型1getNextStepId()获取下一个办理节点目标节点IDStringgetCCUserList()获取抄送用户列表抄送用户列表List. 获取参数方法序号说明参数ID类型适用范围1流程实例IDgetInstanceId()Long适用于全部2流程任务IDgetTaskId()Long适用于全部3流程实例执行IDgetExcutionId()Long适用于全部4流程IDgetActDefId()String适用于全部5流程节点IDgetActStepId()String适用于全部6获得当前实例发起人getOwner()String适用于全部. 示例packagecom.iwork.demo;importjava.util.ArrayList;importjava.util.List;importorg.activiti.engine.task.Task;anization.context.UserContext;cess.runtime.pvm.impl.system.SysJumpTriggerEvent;public class SysJumpTestTriggerEventextends SysJumpTriggerEvent publicSysJumpTestTriggerEvent(UserContextuc,Task task)super(uc,task); /* * 获得下一个办理节点 */publicString getNextStepId()/ TODO Auto-generated method stubreturnusertask5;/* * 获得抄送用户列表 */publicListgetCCUserList() List list = new ArrayList();list.add(this.getContext();returnlist;2.1.5. 流程节点脚本触发器接口. 应用场景点击“保存”或“顺序办理”(包含人工跳转)按钮菜单时,先执行预定义js脚本,实现事件拦截操作. 示例帮助:录入js脚本时,可直接编辑脚本正文,无需填写js方法名,js脚本支持jquery语法2.2. 数据维护扩展开发接口. 支持触发事件n (D-05) 表单数据删除前n (D-02) 表单数据加载后n (D-04) 表单数据保存后n (D-01) 表单数据加载前n (D-03) 表单数据保存前. 继承类说明com.iwork.core.engine.dem.trigger.DemTriggerEvent. 构造方法参数说明序号参数名称说明类型1me当前用户上下文UserContext2Hash系统参数集合HashMap提醒:使用构造方法时注意调用super(me,hash),调用父类构造函数。. 接口实现序号实现接口方法说明返回值1execute()执行触发器入口boolean. 获取参数方法序号参数ID类型说明适用范围1getInstanceId()Long数据维护实例ID适用于全部事件2getDataId()Long记录ID适用于全部事件3getFormData()HashMap流程实例执行ID【保存前】、【保存后】4getFormId()String表单ID【保存前】、【保存后】、【加载前】事件5getTableName()String当前表名适用于“任务转发时触发”事件6getActionType()String操作类型使用户加签、归档事件7getUserContext()UserContext当前用户上下文适用于全部事件. 示例packagecom.iwork.demo;importjava.util.HashMap;importcom.iwork.core.mq.util.MessageQueueUtil;anization.context.UserContext;cess.runtime.pvm.trigger.ProcessStepTriggerEvent;public class DemTriggerTestEventextends DemTriggerEventprivateUserContext _me;privateHashMapparams;publicProcessTriggerTestEvent()super();publicDemTriggerTestEvent(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. 域外观组件扩展接口开发当系统平台在“表单域”中定义的外观组件不能满足系统要求时,可通过定义外观域组件,实现扩展,适应复杂的系统变化. 继承类ponent.IFormUIComponentAbst. 接口实现. 构造方法参数说明序号参数名称说明类型1metadataMap数据库字段存储设置SysEngineMetadataMap2iformMap表单域设置SysEngineIformMap3value默认值String提醒:使用构造方法时注意调用super(metadataMap,iformMap, value);调用父类构造函数。. 接口实现序号实现接口方法说明返回值1getMobileHtmlDefine(HashMapparams)获取移动端表单域显示可编辑状态外观代码String2getModifyHtmlDefine(HashMapparams)获取PC端表单域显示可编辑状态外观代码String3getReadHtmlDefine(HashMapparams) 获取只读单域显示可编辑状态外观代码String. 获取参数方法序号参数ID类型说明1this.getIformMapModel()SysEngineIformMap获取表单域模型定义2this.getMetadataMapModel()SysEngineMetadataMap数据库字段存储模型设置3this.getValue()String获取当前值. 注册组件开发完毕后,在%HOME%WEB-INF/iform-component.xml配置文件中进行注册表单域组件TxtBox单行文本域iwork_img/engine/component/ponent.UIComponentIponent.IFormComponentTextImpl普通HTML输入标签. 示例ponent;importjava.util.HashMap;importjava.util.Map;importcom.iwork.core.engine.iform.model.SysEngineIformMap;importcom.iwork.core.engine.metadata.model.SysEngineMetadataMap;importcom.iwork.core.engine.util.WrapScriptUtil;public class IFormUIComponentHiddenImplextends IFormUIComponentAbst /* * param value * parammetaDataMapModel * preserve 声明此方法不被JOC混淆. */publicIFormUIComponentHiddenImpl(SysEngineMetadataMapmetadataMap,SysEngineIformMapiformMap,String value) super(metadataMap,iformMap, value);/* 获得移动端显示的组件代码 */publicString getMobileHtmlDefine(HashMapparams) returnthis.getModifyHtmlDefine(params);/* * preserve 声明此方法不被JOC混淆. */publicString getModifyHtmlDefine(HashMapparams) StringBufferfieldHtml = new StringBuffer();fieldHtml.append(getValue().append();returnfieldHtml.toString();/* * preserve 声明此方法不被JOC混淆. */publicString getReadHtmlDefine(HashMapparams) returngetModifyHtmlDefine(params);2.3.2. RV参数扩展(动态获取运行时变量)接口开发当系统平台在“表单域”中定义的默认值中,填写的RV参数不能满足系统要求时,可通过自定义,实现扩展,扩展动态获取运行时参数. 继承类com.iwork.core.engine.runtime.el.ExpressionAbst. 接口实现. 构造方法参数说明序号参数名称说明类型1model参数对象集合ExpressionParamsModel2expressionValue参数标识String提醒:使用构造方法时注意调用super(model, expressionValue);调用父类构造函数。. 接口实现序号实现接口方法说明返回值1expressionParse(HashMapparams)解析公式,并返回结果String. 获取参数方法序号参数ID类型说明1this.getFormId()SysEngineIformMap获取当前表单ID2this.getInstanceid()Long获取当前流程实例3this.getEntityname()String获得当前存储表名this.getContext()UserContext获取当前用户上下文this.getTaskParams()HashMap获得其他任务参数. 注册组件开发完毕后,在%HOME%WEB-INF/iform-runtime-variable.xml配置文件中进行注册组织结构变量username当前用户姓名com.iwork.app.expand.runtime.expression.UsernameExpressionImpl%username%获取当前操作者的真实姓名. 示例packagecom.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 instanceid;publicSequenceNoExpressionImpl(ExpressionParamsModel model, String expressionValue) super(model, expressionValue);instanceid=model.getInstanceid();publicString expressionParse(String expression) intsequenceNo = 0;trysequenceNo = SequenceUtil.getInstance().getSequenceIndex(BPM: + instanceid); catch(Exception e) returnInteger.toString(sequenceNo);2.4. SDK API接口2.4.1. DemAPI. 概述实现数据维护扩展操作,通过DemAPI实现数据维护的新增、保存、删除等操作. 方法摘要序号返回类型方法说明1LongnewInstance(String demUUID,StringcreateUser)新建数据维护实例2booleansaveFormData(String demUUID,LonginstanceId, HashMaphashdata,booleanisLog)保存数据维护表单数据3booleansaveFormDatas(String demUUID,LonginstanceId, String subformkey,Listlist,booleanisLog)保存数据维护子表数据4booleanupdateFormData(Long demId,LonginstanceId, HashMaphashdata, Long dataid,booleanislog)更新表单数据5booleanremoveFormData(Long instanceId)移除表单实例数据. 方法详细信息新建数据维护实例publicLong newInstance(java.Long.StringdemUUID,java.Long.StringcreateUser)参数说明demUUID数据维护模型唯一标识(点击数据维护模型)createUser创建人保存数据维护表单数据publicbooleansaveFormData(String demUUID,LonginstanceId, HashMaphashdata,booleanisLog)参数说明demUUID数据维护模型唯一标识(点击数据维护模型)instanceId数据维护实例IDhashdata数据维护表单数据值isLog是否记录日志 0:表示不记录 1:记录修改日志保存数据维护子表数据publicbooleansaveFormDatas(StringdemUUID,LonginstanceId, String subformkey,Listlist,booleanisLog)参数说明demUUID数据维护模型唯一标识(点击数据维护模型)instanceId数据维护实例IDsubformkey子表键值,从绑定子表模型中获取list数据维护表单子多行数据列表isLog是否记录日志 0:表示不记录 1:记录修改日志移除表单实例数据publicbooleanremoveFormData(Long instanceId)参数说明instanceId数据维护实例ID. 示例2.4.2. ProcessAPI. 概述实现流程发起,创建任务,添加、更新表单数据等功能. 方法摘要序号返回类型方法说明1LongnewInstance(String actDefId,StringcreateUser)新建流程实例2booleannewTaskId(Long instanceId)创建新的流程任务实例3booleansaveFormData(String actDefId,LonginstanceId, HashMaphashdata,booleanisLog)保存流程表单数据4booleansaveFormDatas(String actDefId,LonginstanceId, String subformkey,Listlist,booleanisLog)保存流程表单子表数据5booleanupdateFormData(String actDefId,LonginstanceId, HashMaphashdata, Long dataid,booleanislog)更新表单数据. 方法详细信息新建流程实例实例publicLong newInstance(String actDefId,LongformId,StringcreateUser)参数说明actDefId流程描述IDformId表单IDcreateUser创建人新建数据维护实例publicLong newTaskId(Long instanceId)参数说明instanceId流程实例ID保存数据维护表单数据publicbooleansaveFormData(String actDefId,LonginstanceId, HashMaphashdata,booleanisLog)参数说明actDefId流程模型唯一标识IDinstanceId数据维护实例IDhashdata数据维护表单数据值isLog是否记录日志 0:表示不记录 1:记录修改日志. 示例保存数据维护子表数据publicbooleansaveFormDatas(StringactDefId,LonginstanceId, String subformkey,Listlist,booleanisLog)参数说明actDefId流程模型唯一标识IDinstanceId数据维护实例IDsubformkey子表键值,从绑定子表模型中获取list数据维护表单子多行数据列表isLog是否记录日志 0:表示不记录 1:记录修改日志更新数据维护表单数据publicbooleanupdateFormData(String actDefId,LonginstanceId, HashMaphashdata,Longdataid,booleanisLog)参数说明actDefId流程模型唯一标识IDinstanceId数据维护实例IDhashdata数据维护表单数据值dataid行标识IDisLog是否记录日志 0:表示不记录 1:记录修改日志2.4.3. MessageAPI. 概述消息发送API,实现邮件、系统消息、短信、IM即时消息等发送. 方法摘要序号返回类型方法说明1voidsendSysMail(String fromTitle,StringmailAddress,Stringtitle,String content)发送系统邮件2voidsendSysMsg(String userid,Stringtype,Stringtitle,Stringcontent,Stringurl,int priority)发送系统消息3voidsendSysMsg(Stringuserid,Stringtitle,Stringcontent,Stringurl)发送系统消息4voidsendSysMsg(String userid,Stringtitle,String content)发送系统消息5voidsendSMS(UserContextfromContext,Stringsmsto,String content)发送短信方法voidsendIM(String fromUser, String toUser, String title)发送即时消息(标准提醒信息)sendIM(String fromUser, String toUser, String title,String content) 发送即时消息(自定义提醒信息). 方法详细信息发送系统邮件publicvoidsendSysMail(String fromTitle,StringmailAddress,Stringtitle,String content)参数说明fromTitle“来自”标题mailAddress邮件地址,多个邮件地址已逗号分割例如:,title邮件标题content邮件正文发送系统消息publicvoidsendSysMsg(String userid,Stringtype,Stringtitle,Stringcontent,Stringurl,int priority)参数说明userid消息接收人type消息类型SysMessage.MSG_TYPE_SYSTEM系统提醒SysMessage.MSG_TYPE_BIRTH生日提醒SysMessage.MSG_TYPE_WORKFLOW流程提醒SysMessage.MSG_TYPE_MEETINIG会议提醒title系统消息标题content系统消息正文url系统消息相关链接priority消息优先级发送(IM)即时消息publicvoidsendIM(String fromUser, String toUser, String title,String content)参数说明fromUser发送人toUser收通知人员名单列表,如“LIUYAQI刘雅琪,ZHANGHAORAN张浩冉”title即时消息标题content即时消息正文. 示例2.4.4. OrganizationAPI. 概述实现组织、部门、用户管理. 方法摘要序号返回类型方法说明1voidaddUser(OrgUser model)添加新用户2booleandisabledUser(String userId)注销用户帐号3booleanactiveUser(String userId)激活用户帐号4voidupdateUser(OrgUser model)更新用户信息5booleanupdateUser(String userId,LongtargetDeptId)修改指定用户所在部门6voidaddD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论