前段时间学习JBPM,刚开始有点迷茫,不知道从何下手。现在回过头来和大家分享一下我的学习经验,希望可以对即将要学习JBPM而不知道如何学习的人一点点的帮助。
首先,JBPM是什么,有什么作用?
打开百度,即可搜索到:JBPM是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。可以看出JBPM主要的处理方向在流程上。
什么是流程? 比如一个报销流程, 由申请人发起申请,再由部门主管审批,部门经理审批,接着财务、出纳等等这样的一个审批过程就是一个流程。
好了,知道的JBPM的处理方向,接下来就需要了解JBPM由什么组成的。
一、JBPM的服务接口都可以通过流程引擎(ProcessEngine)获得,而流程引擎是由 org.jbpm.api.Configuration 来获得的。其构建方式有以下三种:
1、ProcessEngine pe = Configuration.getProcessEngine();
通过静态方法直接按照默认的配置文件名称构建流程引擎,该方法会直接加载classpath下名为jbpm.cfg.xml 的配置文件,通过该配置文件中的生命去构建引擎。
jbpm.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <import resource="jbpm.default.cfg.xml" /> <import resource="jbpm.businesscalendar.cfg.xml" /> <import resource="jbpm.tx.hibernate.cfg.xml" /> <import resource="jbpm.jpdl.cfg.xml" /> <import resource="jbpm.bpmn.cfg.xml" /> <import resource="jbpm.identity.cfg.xml" /> <!-- Job executor is excluded for running the example test cases. --> <!-- To enable timers and messages in production use, this should be included. --> <!-- <import resource="jbpm.jobexecutor.cfg.xml" /> --> </jbpm-configuration>
这个文件中的内容是对一些配置的引,现在也不用管里面都有什么东西,知道生成流程引擎需要此东西就可以了。
2、ProcessEngine processEngine = new Configuration().buildProcessEngine();通过实例化Cofiguration后的buildProcessEngine方法构建引擎,该方法与上述方法过程类似。
3、ProcessEngine pe = new Configuration(). setResource(“my.jbpm.cfg.xml”).buildProcessEngine();此方法通过自定义JBPM配置文件名称后,构建流程引擎,熟练之后可以使用这种方式。
二、获取了流程引擎之后,接下来要获取服务接口。JBPM中一共有以下5个服务接口:
1、RepositoryService repositoryService = processEngine.getRepositoryService();管理流程资源服务,该服务中定义了流程的发布、删除、挂起/恢复、查询等操作。
2、ExecutionService executionService = processEngine.getExecutionService();执行服务,该服务定义了流程多种方式的启动、等待流程的执行等操作。
3、TaskService taskService = processEngine.getTaskService();任务服务,该服务定义了流程任务列表、读写相关数据、完成任务等操作。
4、HistoryService historyService = processEngine.getHistoryService();历史服务,该服务定义了对流程实例运行历史进行访问,如已办列表等。
5、ManagementService managementService = processEngine.getManagementService();管理服务,该服务通常用来管理job
三、JBPM中的流程节点
1、启动节点start:每个流程里面至少有一个start节点,并且必须有一个向外的流向,这个流向会在流程启动的时候执行。
2、状态节点state:State是一个等待状态节点,流程实例执行到state节点时会一直处于等待状态,知道外部触发器调用API。state节点和其他节点不同,没有任何属性或元素。
3、决策节点decision:在多条路径中选择一条。一个决策节点拥有多个transition,当一个流向达到一个决策点时,会自动执行并决定交给哪个tansition。
4、结束节点end:流程的结束,只有流向达到结束节点时整个流程才会结束并且其他发布流程会放弃活动。一个流程可以有多个结束节点。
5、任务节点task:JBPM中最常用的节点之一,作用是为某人或某组人创建一个任务
6、子流程sub-process:创建一个子流程,当自流程执行完成之后,父流程的流向就会继续。
7、自定义节点custom:调用用户代码,实现一个自定义的活动行为。
8、分支节点fork:把一条执行路径分离成多条并发进行执行。
9、合并流程节点join:fork后一般会有join节点来合并流程,join节点中可以设置在执行该节点前需要到达该节点的执行数目。
10、事件event:流程节点的事件监听器,当流程通过这一节点时,会触发事件监听器,监听器不会在流程图中显示。
11、Java节点:当流程执行到Java节点时,会在执行该节点上配置相应的方法。如果有返回值,则通过var属性设置,我们可以通过variables拿到该返回值。
12、HQL节点:我们可以执行HQL Query并将结果集存放到variables中。
13、SQL节点:和HQL相似,不同的是SQL使用session.createSQLQuery(...) 。
14、mail节点:开发人员可以指定邮件内容,通过mail活动发送给多个收件人。
四、一些其它相关重要概念
1、流程变量
我们可以在流程启动的时候通过Map的形式绑定到流程中
Map<String,Object> vars = new HashMap<String,Object>(); vars.put("customer","John"); vars.put("amount",new Float(123.4)); executionService.startProcessInstanceByKey("leave",vars);2、流程中的用户
task节点中 我们可以设置 assignee来指定用户,或者使用candidate-group和candidate-urses来指定候选人
如:<task assignee="#{onwer}"></task>其中onwer在流程启动时绑定到流程变量的map中。
候选人,eg:
//获取服务 IdentityService identityService = pe.getIdentityService(); //创建用户组 identityService.createGroup("hr-dept"); //创建用户 identityService.createUser("John", "first name", "family name", "email"); //将用户加入组中 identityService.createMembership("John", "hr-dept");
相关推荐
建议初学者首先阅读这份文档,理解jbpm的基本概念和操作,然后通过实际项目练习,掌握jbpm的实战应用。 总结,jbpm作为企业级的业务流程管理工具,其强大之处在于它提供的完整流程生命周期管理、灵活的流程定义和...
在本总结中,我们将深入探讨jbpm3的核心概念、功能以及如何进行实际开发。 ### 1. jbpm3核心概念 - **工作流引擎**: jbpm3的核心是工作流引擎,它负责执行流程定义(BPMN模型)并管理流程实例的生命周期。引擎通过...
1. **jbpm概述**:解释jbpm的基本概念,包括工作流引擎、流程定义语言(JPDL)以及它在企业应用中的角色。 2. **安装与配置**:详述如何在开发环境中安装jbpm,包括设置环境变量、导入依赖库和配置数据库连接等步骤...
活动(Activity)**:活动是工作流中的基本单元,它可以是任何类型的操作,如人工任务、自动任务或子流程等。每个活动都有自己的状态,例如等待、运行中或已完成。 **3. 转移(Transition)**:转移定义了活动之间...
在本文中,我们将深入探讨jbpm的基本概念、工作原理以及如何在实际项目中应用。 一、jbpm简介 jbpm是一个基于Java的业务流程管理(BPM)框架,它提供了一整套工具和服务,包括流程定义、流程执行、监控和管理。jbpm...
在实际应用中,广义的工作流涵盖了所有由软件系统控制的过程,常用于自动化过程,按预定规则传递文档和任务以达成业务目标。 工作流技术的优势在于,它是业务流程重组(BPR)的有效工具,可用于建模、评估和实施BPR...
1. **概念介绍**:文档可能会解释Jbpm的基本概念,如工作流实例、任务、事件和信号等,帮助读者建立对系统运作机制的基础理解。 2. **安装与配置**:这部分内容会指导用户如何下载Jbpm,设置开发环境,并集成到自己...
通过《jBPM中文用户指南》的学习,初学者可以掌握jBPM的基本概念和操作,进一步提升到能够设计和实施复杂的业务流程。这份指南详细介绍了每个知识点,并且以中文呈现,降低了学习门槛,对于中国用户来说是一份非常有...
- **目录结构**:从给出的部分内容来看,文档包含多个章节或部分,涵盖了从基本概念到高级用法的各个方面。 - **语言**:本手册为中文版,适合母语为中文的开发者或用户阅读。 ### 核心概念与功能 #### 工作流基础...
通过这四部分的系统学习,你不仅能掌握jbpm的基本操作,还能了解到如何在实际项目中灵活运用,实现高效、可维护的业务流程自动化。这套教程采用PPT的形式,易于理解和吸收,同时可能还包含了PDF文档,方便离线查阅和...
在深入探讨JBPM之前,我们先来了解工作流管理系统的基本概念。工作流管理系统是一种软件系统,用于自动化业务过程,通过定义、执行和监控业务流程,使得企业能够更有效地管理其日常运营。JBPM不仅提供了这些基本功能...
在"JBPM教程"中,你可能会看到关于流程设计的基本原则,如何使用Eclipse插件进行开发,以及如何进行单元测试和性能测试等内容。同时,教程通常会通过实例演示,帮助你理解和应用这些知识。 "jBPM中文用户指南"则...
通过深入研究这个jbpm3.2.2入门例子,你不仅可以了解jbpm的基本概念和使用方法,还能掌握如何在实际项目中应用工作流管理,提升你的企业级应用开发能力。这个例子为你提供了一个动手实践的平台,通过运行和修改代码...
通过研读这份中文文档,你将能够掌握jbpm3的基本操作,理解其设计理念,以及如何在实际项目中利用它来提升业务流程效率。同时,这也会为你进一步学习更高级的jbpm版本,或者其他工作流管理系统打下坚实的基础。
总之,【JBPM案例详解(一)】涵盖了JBPM的基本概念、流程设计、部署执行、监控和系统集成等多个方面,旨在通过一个具体的业务场景,使读者深入理解和应用JBPM这一强大的工作流管理工具。通过学习和实践,读者不仅能...
1. 阅读基础理论:先了解jbpm4.4的基本概念、架构和核心组件。 2. 学习流程设计:掌握BPMN 2.0语言,学习如何在jbpm中创建和编辑流程模型。 3. 实践操作:通过示例代码和项目实践,熟悉jbpm的部署、运行和管理工作...
这一章深入讨论了 BPMN2.0 标准,包括其基本概念、元素类型和语义,以及如何在 jBPM5 中利用这些元素构建符合标准的流程模型。 第五章 API jBPM5 提供了一组强大的 Java API,用于程序化地操作流程实例。这些 API ...
在深入探讨JBPM及其下载资源之前,我们先来了解一下JBPM的基本概念以及它在工作流管理领域的地位。JBPM(JBoss Business Process Management)是Red Hat公司开发的一款开源业务流程管理(BPM)框架,主要应用于Java...
工作流的基本元素包括任务及其相互关系。它是一种面向业务流程的模型,区别于传统的面向功能的管理方式,更注重业务过程的自动化。工作流模型应明确四个关键要素:目的或目标、执行的任务和步骤、参与者以及完成任务...