`
suhuanzheng7784877
  • 浏览: 702552 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Ff8d036b-05a9-33b5-828a-2633bb68b7e6
读金庸故事,品程序人生
浏览量:47708
社区版块
存档分类
最新评论

JBPM4学习总结之2——发布流程模板、流程实例

    博客分类:
  • jbpm
阅读更多

1.       发布流程模板

当我们通过流程编辑器编辑好了流程之后就可以将这个流程模板发布到数据库中。我觉得定义一个流程模板更像是定义一个Java Class类,发布一个流程模板就好像是编译这个类成为class,而流程实例就好像是一个Java类的一个实例对象。

最常用的是用Java代码的方式发布流程~~~还有一个是利用Ant脚本发布流程,不过一般在开发阶段十分少用。

// 加载默认的jbpm.cfg.xml文件

ProcessEngine processEngine = new Configuration().buildProcessEngine();

 

/**

 * 发布流程

 */

public void test01Deploy() {

 

         String deployId = repositoryService.createDeployment()

                            .addResourceFromClasspath("decision.jpdl.xml").deploy();

 

         System.out.println(deployId);

}

这样就把流程模板为decision的流程发布到了数据库中,发布成功后,jbpm相关表会变化如下:

jbpm4_deployment

 jbpm4_deployprop

jbpm4_lob

jbpm4_property

 

比较重要的几个服务接口,其他服务接口都是从主接口——引擎服务接口ProcessEngine获得的。

// 引擎服务接口

ProcessEngine processEngine = new Configuration().buildProcessEngine();

 

// 资源服务,流程模板的部署、查询、删除

RepositoryService repositoryService = processEngine.getRepositoryService();

 

// 执行服务,设置流程实例的发起、执行

ExecutionService executionService = processEngine.getExecutionService();

 

// 流程管理接口、异步工作相关执行

ManagementService managementService = processEngine.getManagementService();

 

// 人工任务服务接口,对任务task的查询、提交、删除、保存

TaskService taskService = processEngine.getTaskService();

 

// 历史记录操作接口

HistoryService historyService = processEngine.getHistoryService();

 

// 身份验证服务

IdentityService identityService = processEngine.getIdentityService();

 

1.       根据流程模板发起一个流程实例

定义好了模板后,就可以建立此流程模板的实例对象了,实例对象就是现实中一个个真正的流程事件了。

1.       直接发起StateChoice流程实例

// 开始process流程

ProcessInstance processInstance = executionService.startProcessInstanceByKey("StateChoice");

 

2.       发起流程时加入流程实例变量

HashMap<String, Object> parm = new HashMap<String, Object>();

parm.put("MyId", "13000000000");

parm.put("MyName", "liuyan");

parm.put("MyDate", new Date());

 

ProcessInstance processInstance = executionService.startProcessInstanceById("StateChoice -1", parm);

这样在发起流程的时候通过一个HashMap将流程变量传到整个流程中,可能以后的某一个节点会用到“当初”传入的变量。

startProcessInstanceByKey:根据StateChoice找到最新的部署版本去发起流程。

startProcessInstanceById:根据StateChoice的版本(1就是第1版本)去发起流程。

如果传入流程实例的是一个自定义的复杂对象,则该对象必须实现Serializable接口,以便流程实例上下文的变量持久化。

  • 大小: 8.3 KB
  • 大小: 8.6 KB
  • 大小: 12.7 KB
  • 大小: 8 KB
分享到:
评论

相关推荐

    JBPM采购申请系统——08_JBPM流程节点.7z

    JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...

    jBPM4学习总结

    【jBPM4学习总结】 jBPM,全称为Java Business Process Management,是一个开源的、灵活且可扩展的业务流程管理框架,涵盖了业务流程管理、工作流和服务协作等多个领域。自2004年10月加入JBoss组织后,jBPM逐渐成为...

    jBPM-jPDL学习笔记——流程设计与控制(转载)

    《jBPM-jPDL学习笔记——流程设计与控制》 在IT行业中,流程管理和自动化是企业提升效率的关键。jBPM(Java Business Process Management)是一个开源的工作流和业务流程管理套件,它允许开发者通过定义流程定义...

    jBPM-jPDL学习笔记——流程设计与控制

    下面,我们将通过学习笔记,了解jBPM-jPDL的流程设计与控制机制。 流程设计 在jBPM-jPDL中,流程设计是指定义业务流程的结构和行为。流程设计通常包括定义流程的各个节点、 переход和操作。jPDL(Java ...

    JBPM采购申请系统——09_任务实例与任务分配.7z

    JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——09_任务实例与任务分配.7z JBPM采购申请系统——...

    JBPM4 开发文档 实例 流程

    总结,JBPM4提供了一套完整的工作流管理系统,包括流程设计、执行、监控和优化等功能,通过JPdl语言和Hibernate整合,实现了流程的可视化和灵活管理。对于开发人员来说,理解这些核心概念和数据库表结构,能更好地...

    JBPM4 学习使用总结

    **JBPM4 学习使用总结** JBPM4(Java Business Process Management)是Jboss公司推出的一款开源的工作流管理系统,它提供了完整的业务流程自动化解决方案,包括流程设计、部署、执行、监控以及管理等功能。在深入...

    JBPM4学习经验总结

    JBPM4学习经验总结 JBPM4是Java Business Process Management(业务流程管理)的缩写,它是一个开源的、灵活的、易扩展的可执行流程语言框架。JBPM4学习经验总结包括了JBPM4的概念、配置JBPM4开发环境、JBPM默认的...

    jbpm4实例源码,可直接运行

    **jbpm4实例源码详解** ...通过研究这个jbpm4实例源码,开发者不仅可以了解jbpm4的基本概念,还能学习到如何在实际项目中部署和运行流程。这将极大地提升开发者的业务流程管理能力,使其能够高效地实现企业流程自动化。

    JBPM4 实例

    - **部署流程**:将流程定义文件(.bpmn或.bpmn2)部署到JBPM4服务器。 - **编写代码**:集成JBPM4 API到Java应用中,控制流程实例的启动、暂停、恢复和终止,以及任务的分配和完成。 - **监控与管理**:通过JBPM4...

    jbpm4流程提交及执行完整代码

    jbpm4是一款强大的工作流管理系统,它提供了流程定义、流程实例管理、任务处理以及流程监控等一系列功能。在“jbpm4流程提交及执行完整代码”这个压缩包中,包含了实现jbpm4流程提交和执行所需的若干关键文件。下面...

    jbpm4请假实例代码

    【jbpm4请假实例代码】是一个基于jbpm4工作流引擎的示例应用,它用于演示如何在实际项目中实现员工请假流程的自动化管理。jbpm4是一个开源的工作流管理系统,它提供了强大的业务流程建模、执行和管理功能,使得...

    jbpm实例开发

    接下来,我们讨论数据库示例,这是jbPM的一个重要特性——流程实例的持久化。jbPM支持在流程等待状态时将执行信息存储到数据库,以便后续继续执行。在示例中,创建流程实例后,可以将其保存到数据库,同时可以设置上...

    jBPM 4视频教程03管理流程实例

    **jBPM 4视频教程03:管理流程实例** jBPM 4是一个开源的工作流管理系统,它为业务流程的...通过本视频教程,学习者将能深入理解jBPM 4如何处理管理流程实例,从而在实际工作中应用这些知识来优化业务流程,提高效率。

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

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

    jbpm4之HelloWorld实例

    【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z ...

    JBPM采购申请系统——02_Eclipse与JBPM.7z

    JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z ...

Global site tag (gtag.js) - Google Analytics