`
wwwwwhg
  • 浏览: 47523 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
文章分类
社区版块
存档分类
最新评论

jbpm4.x 基础知识教程学习

阅读更多
ProcessEngine流程引擎

在jBPM内部通过各种服务相互作用。 服务接口可以从ProcessEngine中获得, 它是从Configuration构建的。

流程引擎是线程安全的,它可以保存在静态变量中, 甚至JNDI中或者其他重要位置。 在应用中,所有线程和请求都可以使用同一个流程引擎对象, 现在就告诉你怎么获得流程引擎。

这章中涉及到的代码和下一章中关于流程部署的代码, 都来自org.jbpm.examples.services.ServicesTest 例子。

ProcessEngine processEngine = new Configuration()
      .buildProcessEngine();
上面的代码演示了如何通过classpath根目录下 默认的配置文件jbpm.cfg.xml创建一个ProcessService。 如果你要指定其他位置的配置文件, 请使用setResource()方法:

ProcessEngine processEngine = new Configuration()
      .setResource("my-own-configuration-file.xml")
      .buildProcessEngine();
还有其他setXxxx()方法可以获得配置内容, 例如:从InputStream中、 从xml字符串中、从InputSource中、 从URL中或者从文件(File)中。

我们可以根据流程引擎得到 下面的服务:

RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
在配置中定义的这些流程引擎(ProcessEngine)对象, 也可以根据类型processEngine.get(Class<T>) 或者根据名字processEngine.get(String)来获得。


Deploying a process部署流程
RepositoryService包含了用来管理发布资源的所有方法。 在第一个例子中,我们会使用RepositoryService 从classpath中部署一个流程资源。

String deploymentid = repositoryService.createDeployment()
    .addResourceFromClasspath("org/jbpm/examples/services/Order.jpdl.xml")
    .deploy();
通过上面的addResourceFromClass方法, 流程定义XML的内容可以从文件, 网址,字符串,输入流或zip输入流中获得。
每次部署都包含了一系列资源。每个资源的内容都是一个字节数组。 jPDL流程文件都是以.jpdl.xml作为扩展名的。 其他资源是任务表单和java类。

部署时要用到一系列资源, 默认会获得多种流程定义和其他的归档类型。 jPDL发布器会自动识别后缀名是.jpdl.xml 的流程文件。

在部署过程中,会把一个id分配给流程定义。 这个id的格式为{key}-{version}, key和version之间使用连字符连接。

如果没有提供key, 会在名字的基础自动生成。 生成的key会把所有不是字母和数字的字符替换成下划线。

同一个名称只能关联到一个key, 反之亦然。

如果没有为流程文件提供版本号, jBPM会自动为它分配一个版本号。 请特别注意那些已经部署了的名字 相同的流程文件的版本号。 它会比已经部署的同一个key的流程定义 里最大的版本号还大。 没有部署相同key的流程定义的版本号会分配为1。

在下面第1个例子里,我们只提供了流程的名字,没有提供其他信息:

<process name="Insurance claim">
...
</process>
假设这个流程是第一次部署, 下面就是它的属性:

表 5.1. 没有key值的属性流程

Property Value Source
name Insurance claim process xml
key Insurance_claim generated
version 1 generated
id Insurance_claim-1 generated



第2个例子我们将演示如何通过设置流程的key 来获得更短的id。

<process name="Insurance claim" key="ICL">
...
</process>
这个流程定义的属性就会像下面这样:

表 5.2. 有key值属性的流程

Property Value Source
name Insurance claim process xml
key ICL process xml
version 1 generated
id ICL-1 generated



5.4. 删除流程定义
删除一个流程定义会把它从数据库中删除。

repositoryService.deleteDeployment(deploymentId);
如果在发布中的流程定义还存在活动的流程实例, 这个方法就会抛出异常。

如果希望级联删除一个发布中流程定义的 所有流程实例, 可以使用deleteDeploymentCascade。

5.5. 启动一个新的流程实例
5.5.1. 最新的流程实例
下面是为流程定义启动一个新的流程实例的最简单也是 最常用的方法:

ProcessInstance processInstance = executionService.startProcessInstanceByKey("ICL");
上面service的方法会去查找 key为ICL的最新版本的流程定义, 然后在最新的流程定义里启动流程实例。

当insurance claim流程部署了一个新版本, startProcessInstanceByKey方法会自动切换到 最新部署的版本。

分享到:
评论

相关推荐

    jBPM4.x使用前的准备工作

    **jbPM4.x使用前的准备工作** ...总之,深入了解jbPM的核心组件、配置合适的开发环境、学习如何设计和部署流程,是成功运用jbPM4.x的前提。通过不断实践和学习,你将能够自如地利用jbPM实现复杂业务流程的自动化管理。

    jbpm jbpm4.3.jar

    jbpm jbpm4.3.jar DDDDDDDD

    jBPM3.x-4.x-5.X资料大全

    最后,“JBPM4教程.pdf”是对jBPM4的详细教程,它可能包含从基础概念到高级特性的全面讲解,对于想要深入理解jBPM4的开发者来说是一份宝贵的资源。 通过学习这些文档,开发者不仅可以了解jBPM的各个版本之间的差异...

    JBPM采购申请系统——05_构建JBPM数据库.7z

    JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...

    jbpm3.2.x开发所需jar包

    **jbpm3.2.x 开发环境搭建及关键jar包详解** 在Java企业级应用开发中,业务流程管理(Business Process Management,BPM)扮演着重要角色,而Jbpm是一个开源的BPM框架,它提供了流程定义、执行、监控和优化等一系列...

    jbpm4.rar_jbpm_jbpm designer_jbpm4

    jBPM,全称Java Business Process Management,是一个开源的工作流管理系统,主要负责处理业务流程的建模、执行和管理。jBPM 4是该系统的第四个主要...而jbpm4.doc文档则为学习和使用jBPM 4提供了详尽的指导和支持。

    Spring 3.1.x + Hibernate 4.2.x+JBPM 5.2 + Ecache例子源码

    标题中的"Spring 3.1.x + Hibernate 4.2.x + JBPM 5.2 + Ecache例子源码"代表了一个集成开发环境,其中包含了四个关键的技术组件: 1. **Spring 3.1.x**:这是一个开源的应用框架,主要用于简化Java企业级应用的...

    jbpm4.jar 下载

    jboss jbpm4最新开发包 采用了pvm框架

    jbpm.mysql.create.sql

    jbpm.mysql.create.sql jbpm mysql建表语句

    spring-modules-jbpm31.jar

    spring-modules-jbpm31.jar

    JBPM4.chm jbpm4 帮助文档,英文版javaDoc

    JBPM4.chm jbpm4 帮助文档,英文版javaDoc

    JBPM数据库表创建\jbpm.jpdl.oracle.sql

    JBPM数据库表创建\jbpm.jpdl.oracle.sqlJBPM数据库表创建\jbpm.jpdl.oracle.sqlJBPM数据库表创建\jbpm.jpdl.oracle.sqlJBPM数据库表创建\jbpm.jpdl.oracle.sqlJBPM数据库表创建\jbpm.jpdl.oracle.sql

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    **jbPM 3.2 知识点详解** jbPM,全称为Java Business Process Management,是一个开源的工作流管理系统,主要用于企业级应用中的业务流程管理。...希望这份知识总结能对你在jbPM的学习和使用上提供帮助。

    jbpm.4.4.jar

    jbpm-4.4.jar是JBoss Business Process Management (jbpm)框架的4.4版本的核心库文件。jbpm是一个开源的工作流管理系统,它提供了一套全面的工具和...此外,jbpm社区和文档是宝贵的资源,学习和解决问题时应充分利用。

    jbpm3.2 .jar

    jbpm3.2 .jar是基于Java的企业流程管理(Business Process Management,BPM)框架jbpm的特定版本,主要用于设计、执行和管理业务流程。jbpm是一个开源项目,它提供了全面的工作流和业务规则管理功能,使开发人员能够...

    jbpm-4.4.zip part03

    4. **集成能力**:jbpm可与Java EE、Spring等框架无缝集成,也可以与各种企业服务,如EJB、Web服务等进行交互,提供灵活的扩展性。 5. **任务管理**:jbpm提供任务服务,允许用户分配、接收、完成和转移任务,支持...

    安装和配置jBPM4.docx

    * jbpm.jar:jBPM 源代码归档包文件。 * migration:jBPM 升级功能解决方案包。 总结 jBPM4 是一个功能强大且灵活的工作流引擎,通过安装和配置 jBPM4,我们可以构建、部署和管理复杂的企业流程应用。本文中,我们...

    spring-modules-jbpm30.jar

    spring-modules-jbpm30.jar spring-modules-jbpm30.jar

    jbpm学习笔记.docx

    - 建立jBPM用户库,将所有必要的jar包添加到"Window → Preferences → Java → Build Path → User Libraries"中,包括lib目录下的所有jar和jbpm.jar。 - 为jbpm.jar添加源码,关联jbpm的src目录以方便调试。 5....

Global site tag (gtag.js) - Google Analytics