• 1. SCCE 2010课程体系介绍第1章 工作流简介
  • 2. 课程地位G1:282CBTHTMLLogic JavaC#/WinFormsC LangugeJavaScriptSQL AdvanceJava OOPG2:368XHTML.Net/OOPServlet/JSPWeb 2.0 NTCG3:432ASP.Net/MVCORACLEPS/FlashC# AdvanceEnterprise libWCF/Silverlight .NET PRTLAMP Enterprise DevelopjBPMStruts/MVCWeb 2.0 NTCHibernate/EJBSpring J2EE PRTJ2EE PMPPRT: B/S B2C.NET PMPSQL BaseADO.NETPRT1:ADO.Net+WinForms +SQL C/S
  • 3. 课程目标学习内容 什么工作流、什么是jBPM jBPM基本原理 jBPM节点 jBPM应用 jBPM整合SSH 学习目标 了解什么是工作流,什么是jBPM 理解jBPM基本原理及应用 能够使用jBPM节点实现工作流 能够使用jBPM整合SSH应用 实战项目 综合项目:使用jBPM整合SSH开发协同工作平台
  • 4. 本章内容工作流简介 jBPM简介 jBPM流程设计器 jBPM应用
  • 5. 本章目标了解工作流概念 了解jBPM概念 掌握jBPM开发环境 掌握jBPM流程设计器 掌握jBPM应用
  • 6. 1. 工作流简介1.1 工作流概述 随着信息化的不断发展与推进,审批及处理等事务过程也逐步信息化,工作流管理系统应运而生 工作流管理系统通常能提供流程监控、查询统计模块,在更大程度上为用户优化流程提供了支持,从而为政府及企事业单位提高工作效率
  • 7. 1.2 工作流构成工作流管理系统,简称WFMS ,一个完整的工作流管理系统通常由八个部分组成,分别是下面八个部分: 工作流引擎 可视工作流程设计 流程操作 工作流客户端程序 流程监控 表单设计工具 与表单的集成 与应用程序的集成
  • 8. 1.3 使用工作流的好处工作流的使用能给软件开发和业务上带来十分明显的好处 方便开发 业务流程管理 (BPM)
  • 9. 2. jBPM简介2.1 jBPM概述 jBPM,全称是Java Business Process Management,是一种基于J2EE的轻量级工作流管理系统 jBPM最大的特色就是它的商务逻辑定义没有采用目前的一些规范,如 WfMC、 XPDL、BPML、 ebXML、 BPEL4WS等,而是采用了它自己定义的JBoss JBPM Process definition language (jpdl) JBPM的另一个特色是它使用Hibernate来管理它的数据库
  • 10. 2.1 jBPM概述工作流管理和业务流程管理(BPM)正在迅速成为企业获得软件敏捷性和适应性的重要方法。JBoss jBPM是一个面向流程的工作流/BPM框架和工具集 JBoss jBPM为设计及开发工作流和业务流程管理系统提供了一个先进的平台
  • 11. 2.2 jBPM构架JBoss jBPM定义了使用JBoss流程定义语言编写的文件里面的流程定义。jPDL是一种面向图形编程(GOP)的语言,它基于节点、转换和动作组成的模型 JBoss jBPM在以下组件里面进行封装: 流程引擎 流程监管器 流程语言 交互服务
  • 12. jBPM构架jBPM的组件关系
  • 13. 3. jBPM准备工作3.1 jBPM目录结构
  • 14. 3.1 jBPM目录结构jBPM目录结构说明目录名称内容说明configjBPM运行需要的基本配置dbjBPM在不同数据库下创建表需要的SQL源文件deploy含有几个已经创建完成的工程,可以直接发布至JBoss4及以上版本的应用服务器designer含有用于JBoss jBPM可视化流程设计器的Eclipse插件docjBPM相关组件的API文档examples学习的示例libjBPM的类库server含有JBoss应用服务器、JBoss jBPM引擎以及示例流程srcJBoss jBPM的源代码
  • 15. 3.2 jBPM示例jBPM解压后的目录server中含有JBoss应用服务器、JBoss jBPM引擎以及示例流程,点击该目录下的start.bat文件可以启动JBoss服务 jBPM示例
  • 16. jBPM示例jBPM示例中有3个流程示例 business trip request(出差申请流程) raise request(加薪申请流程) websale(在线订单处理流程)
  • 17. 3.3 jBPM流程设计器安装JBoss jBPM可视化流程设计器的安装方法 将插件下相关的JAR包复制到已安装的MyEclipse的plugins插件目录下 使用link方式,推荐此方式
  • 18. jBPM流程设计器安装使用link方式安装可视化流程设计器 在MyEclipse中eclipse的目录下存在一个links目录,在该目录下创建jBPM.link 在文件中输入“path=插件目录地址” 注意: 使用link方式安装MyEclipse插件时,一定要将path所指的插件放在一个名为eclipse的目录下
  • 19. jBPM流程设计器安装可视化流程设计器安装成功
  • 20. 3.4 jBPM流程图创建一个jBPM工程,自带一个simple的流程模板
  • 21. jBPM流程设计器 流程设计器可以用于创建流程定义、连接动作处理程序与事件、编辑定义来源、创建流程档案以及测试流程定义
  • 22. jBPM流程设计器流程设计器下方有4个标签,分别为:Diagram、Deployment、Design、Source
  • 23. 3.5 jBPM应用jBPM流程文件processdefinition.xml Going to the first state! About to finish! Start节点State节点
  • 24. jBPM应用 流程定义是基于定向图(Directed graph)的 ,每个节点的类型定义了该节点的运行时行为。以下简述基本概念: 流程实例:流程实例是流程定义的一次执行 标记:标记是一条执行路径,它是运行时概念,含有指向定向图中节点的指针 信号:信号指示标记继续由转换实现的图像执行 节点:节点负责图像执行的继续进行 动作:动作是流程执行过程中出现事件时执行的代码
  • 25. jBPM应用流程中MessageActionHandler 代码 package com.sample.action; import org.jbpm.graph.def.ActionHandler; import org.jbpm.graph.exe.ExecutionContext; public class MessageActionHandler implements ActionHandler { private static final long serialVersionUID = 1L; String message; public void execute(ExecutionContext context) throws Exception { context.getContextInstance().setVariable("message", message); } }该Action对message流程变量进行操作
  • 26. jBPM应用测试流程代码 public void testSimpleProcess() throws Exception { //定义流程定义文件 ProcessDefinition pd = ProcessDefinition.parseXmlResource("simple/processdefinition.xml"); System.out.println("流程定义:"+pd); ProcessInstance is = new ProcessInstance(pd); //创建流程实例 System.out.println("流程实例:"+instance); System.out.println("1,当前流程所在节点的名称 :"+ is.getRootToken().getNode().getName()); System.out.println("1,变量message:"+ is.getContextInstance().getVariable("message")); instance.signal(); //流程向下流转 System.out.println("2,当前流程所在节点的名称:"+ is.getRootToken().getNode().getName()); System.out.println("2,变量message:"+ is.getContextInstance().getVariable("message")); is.signal(); //流程继续向下流转 System.out.println("3,当前流程所在节点的名称:"+ is.getRootToken().getNode().getName()); System.out.println("3,变量message:"+ is.getContextInstance().getVariable("message")); System.out.println("流程是否结束:"+ is.hasEnded()); }
  • 27. jBPM应用测试结果
  • 28. jBPM应用对jBPM控制台信息日志级别进行调整:debug->info# Set root logger level to DEBUG and its only appender to CONSOLE. log4j.rootLogger=DEBUG, CONSOLE # CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayoutjBPM日志级别 log4j.appender.CONSOLE.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%t] %-5p %C{1} : %m%n # LIMIT CATEGORIES log4j.logger.org.jbpm=INFO # Hibernate debugging levels and their output log4j.logger.org.hibernate=INFO # hide optimistic locking failures log4j.logger.org.hibernate.event.def.AbstractFlushingEventListener=FATAL log4j.logger.org.hibernate.type=TRACE
  • 29. jBPM应用重新测试结果
  • 30. 总结什么是工作流管理系统 什么是jBPM 如何使用jBPM流程设计器 掌握jBPM的应用
  • 31. (本页无文本内容)