第4章 jBPM应用(理论).ppt
《第4章 jBPM应用(理论).ppt》由会员分享,可在线阅读,更多相关《第4章 jBPM应用(理论).ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SCCE 2010SCCE 2010课程体系介绍课程体系介绍第第4 4章章jBPMjBPM应用应用回顾回顾u了解流程节点的公共属性 u掌握Start、State、Node、Task Node、Fork、Join、Decision、End等节点用法本章内容本章内容uWeb应用中对jBPM的支持 u支持jBPM的配置文件u支持jBPM的JAR包u带中文流程的处理ujBPM整合Struts的开发步骤本章目标本章目标u了解支持jBPM的Web应用u了解支持jBPM的配置文件u了解支持jBPM的JAR包u熟悉jBPM开发带中文流程的实现方式u熟练掌握jBPM整合Struts的开发步骤1.创建创建jBPM
2、 Web工程工程 ujBPM的工作流引擎可以使用在C/S应用中,也可以使用在B/S的应用中u目前的发展形势看,以B/S架构的Web应用系统是主流u实际的应用中,一般不会也不应该将业务数据放在流程中处理1.1 创建创建Struts工程工程u使用MyEclipse创建一个Web工程,再添加Struts特性1.2 配置配置jBPM ujBPM配置文件 配置文件名称描述hibernatge.cfg.xml必需的。jBPM采用Hibernate来持久化数据jbpm.cfg.xml可选的。jBPM运行时所需的配置文件,如果没有,jBPM将使用默认的配置文件jbpm.mail.templates.xml可选
3、的。jBPM邮件提醒的配置文件log4j.properties可选的。日志输出配置文件配置配置jBPM ujBPM运行所需的JAR包 JAR文件名称描述jbpm-jpdl.jar必需的。jBPM工作流引擎核心包jbpm-identity.jar必需的。jBPM身份组件包hibernate3.jar必需的。jBPM持久层Hibernate核心包antlr.jar必需的。Hibernate使用antlr产生查询分析器cglib.jar必需的。CGLIB核心库asm.jar必需的。ASM字节码库,cglib.jar依赖的包jta.jar必需的。JTA规范包dom4j.jar必需的。解析XML配置文件
4、和映射文件包mail.jar必需的。jBPM工作流引擎发送邮件包注意:除了jbpm-jpdl.jar和jbpm-identity.jar这两个包需要复制外,其他的包都可以在SSH工程中自动添加 2.开发流程开发流程 2.1 请假单需求说明 n请假流程如下 员工登录系统,填写请假单 完成请假申请以后,请假单将根据流程流转到该员工所在部门的部门主管处进行审批 如果部门主管审批不通过,则流程结束 如果请假天数大于5天,则需要总经理审批 如果请假天数小于5天,则请假单将直接送到人事部门 如果总经理审批不通过,则流程结束 如果总经理审批通过,则请假单送到人事部门,最后由人事部门处理完成请假流程 2.2
5、创建流程图创建流程图 u根据请假需求说明,创建请假流程图 创建流程图创建流程图 ujBPM设计器对中文的支持不是很好,重新打开流程设计器u查看流程节点定位信息文件gpd.xml 创建流程图创建流程图 u产生中文乱码的原因njBPM设计器在产生gpd.xml时,使用的是本地编码。Linux的本地编码为utf-8,所以不存在问题;但是Windows不是,所以导致了乱码 u解决方案nMyEclipse的启动的快捷键中加入-Vmargs-Dfile.encoding=UTF-8u通过上面方法,jvm的默认编码就变成UTF-8,因此就不会产生中文乱码的问题了注意:解决中文问题后,其他地方会出现乱码。所以
6、改变快捷方式最好只用于定义、修改以及发布流程定义,在编码阶段再切换回原来的环境 2.3 分配任务分配任务 u假设有公司组织机构如下:n员工emp1和emp2n员工的部门主管分别为manager1和manager2n总经理为bossn人事部门为personnel分配任务分配任务 u请假单部门主管参与者的分配 public class ManagerAssignment implements AssignmentHandler public void assign(Assignable arg0,ExecutionContext arg1)throws Exception/从上下文实例获得申请员工
7、String leaveEmp=arg1.getContextInstance().getVariable(leaveEmp).toString();if(emp1.equals(leaveEmp)arg0.setActorId(manager1);elsearg0.setActorId(manager2);设置emp1的部门主管的参与者manager1设置emp2的部门主管的参与者manager2分配任务分配任务 u请假单总经理参与者的分配 public class BossAssignment implements AssignmentHandler public void assign(
8、Assignable arg0,ExecutionContext arg1)throws Exception arg0.setActorId(boss);设置总经理的参与者boss分配任务分配任务 u请假单人事处理参与者的分配 public class PersonnelAssignment implements AssignmentHandler public void assign(Assignable arg0,ExecutionContext arg1)throws Exception arg0.setActorId(personnel);设置人事的参与者personnel 2.4 流
9、程动作流程动作 u请假结束以后,为了将审批结果通知申请人,使用Action动作处理,在控制台打印消息说明请假结果public class LeaveNotifyAction implements ActionHandler public void execute(ExecutionContext arg0)throws Exception boolean flag=false;ContextInstance ci=arg0.getContextInstance();/获得流程上下文对象String user=(String)ci.getVariable(leaveEmp);/获得申请人/获得请
10、假申请是否通过String approveResult=(String)ci.getVariable(approveResult);if(1.equals(approveResult)flag=true;if(flag)System.out.println(user+,您的请假申请审批已经通过);elseSystem.out.println(user+,您的请假申请审批没有通过);arg0.getToken().signal();2.5 流程定义文件流程定义文件 u以Handler方式给部门主管的参与者分配任务 u以Handler方式给总经理的参与者分配任务 u以Handler方式给人事部的参
11、与者分配任务 u以Action方式将审批信息通知请假申请人 u判断请假天数的Decision节点采用Expression方式判断流程走向流程定义文件流程定义文件 u流程定义文件的XML代码 2.6 测试流程测试流程 u创建数据库方法public void testCreateDB()throws Exception/获得JbpmConfiguration对象JbpmConfiguration jbpmConfiguration=JbpmConfiguration.getInstance();jbpmConfiguration.createSchema();u部署流程 JbpmConfigura
12、tion jbpmConfiguration=JbpmConfiguration.getInstance();String fileName=E:/leaveWeb.zip;/定义流程打包文件的路径jbpmContext=jbpmConfiguration.createJbpmContext();InputStream is=new FileInputStream(new File(fileName);ZipInputStream zis=new ZipInputStream(is);ProcessDefinition pd=ProcessDefinition.parseParZipInput
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 jBPM应用理论 jBPM 应用 理论
限制150内