`

JBPM4

    博客分类:
  • JBPM
阅读更多

/**

 * 流程实例

 *    *  启动流程实例

 *    *  完成任务

 *    *  查询

 *      *  查询流程实例

 *      *  查询任务

 *          *  查询正在执行的任务

 *            *  查询所有的正在执行的任务

 *            *  根据任务的执行人查询正在执行的任务

 *            *  根据executionId查询正在执行的任务

 *            *  根据piid查询正在执行的任务

 *            *  根据pdid查询正在执行的任务

 *            *  根据taskid查询任务  taskService.getTask(String taskId);和其他的查询不一样

 *          *  查询已经完成的任务

 *            *  查询所有的

 *            *  根据任务的执行人

 *            *  根据executionID

 *            *  .......

 *    *  结束流程实例

 * @author Administrator

 *

 */

public class PITest extends BaseJbpm{

 /**

  * 涉及到的表

  *    *  JBPM4_EXECUTION

  *        *  表示当前正在执行的流程实例

  *        *  字段 

  *            DBID_:主键

  *            ID_:流程实例ID

  *            ACTIVITYNAME_:当前流程实例活跃的节点

  *            PROCDEFID_:流程定义ID

  *    *  JBPM4_HIST_PROCINST

  *        *  表示历史的流程实例,但是当前正在运行的流程实例也在这里

  *        *  字段

  *            DBID_:主键

  *            ID_:流程实例ID

  *            START_:整个流程实例的开始时间

  *            END_:流程实例的结束时间,如果该流程实例为当前正在运行的流程则,该值为空

  *            STATE:表示流程实例的状态  如果是正在运行,为active  如果流程实例结束  为ended

  *    *  JBPM4_TASK

  *        *  表示当前正在执行的任务

  *          说明:任务是jbpm流程图的一个节点

  *        *  字段

  *          DBID_:主键、任务ID

  *          NAME_:任务名称

  *          ASSIGNEE_:任务的执行人

  *    *  JBPM4_HIST_TASK

  *        *  表示历史的任务,但是当前正在执行的任务也在这里

  *        *  字段

  *           STATE_:如果一个任务被完成以后,值为completed

  *              end_:任务的结束时间有值了

  *    *  JBPM4_HIST_ACTINST

  *        *  表示历史的节点

  *        *  字段

  *            TYPE_:节点类型

  *  说明:

  *    *  当启动流程实例的时候,会自动的离开开始节点,流向下一个节点

  *    *  jbpm4_task为临时表,当当前的任务完成以后,该数据就被删除了

  */

 @Test

 public void testStartPIByPDID(){

  ProcessInstance pi= processEngine.getExecutionService().startProcessInstanceById("qingjia1-1");

  System.out.println(pi.getId());

  System.out.println(pi.getState());

  

 }

 /**

  * 根据pdkey启动流程实例,是该key下,最高版本

  */

 @Test

 public void testStartPIByPDKEY(){

  processEngine.getExecutionService()

  .startProcessInstanceByKey("qingjia1");

 }

 

 /**

  * 完成任务

  */

 @Test

 public void testFinishTask(){

  processEngine.getTaskService()

  .completeTask("60002");

 }

 

 /**

  * 查询所有的流程实例

  */

 @Test

 public void testQueryAllPI(){

  List<ProcessInstance> piList = processEngine.getExecutionService()

  .createProcessInstanceQuery()

//  /.processDefinitionId("")//可以根据pdid查询流程实例,很多个

  .list();

  for(ProcessInstance pi:piList){

   /**

    * 可以查询piid,pdid,state等

    */

   System.err.println();

   System.err.print("instanceID"+pi.getId());

   System.err.print("\t\t\tinstanceKEY"+pi.getKey());

   System.err.print("\t\t\tinstanceNAME"+pi.getName());

   System.err.println("\t\t\tinstanceSTATE"+pi.getState());

  }

 }

 

 /**

  * 查询所有的正在执行的任务

  */

 @Test

 public void testQueryAllTask(){

  List<Task> taskList = processEngine.getTaskService()

  .createTaskQuery()

//  .processDefinitionId("")

  .list();

  for(Task task:taskList){

   System.out.println("assignee:"+task.getAssignee());

   System.out.println("name:"+task.getName());

   System.out.println("createtime:"+task.getCreateTime());

  }

 }

 

 /**

  * 可以根据任务的执行人查询当前正在执行的任务

  * 可以根据pdid查询当前正在执行的任务

  */

 @Test

 public void testQueryTaskByPDID(){

  List<Task> taskList = processEngine.getTaskService()

  .createTaskQuery()

  .processDefinitionId("qingjia1-4")

  .list();

  System.out.println(taskList.size());

 }

 

 /**

  * Execution

  *    *  如果不存在并发的情况,那么exection和process instance是一样的

  *    *  如果存在并发的情况,execution代表分支,process instance代表主线

  *    *  根据executionID查询任务,有唯一的一个

  */

 

 @Test

 public void testQueryTaskByTaskID(){

  Task task = processEngine.getTaskService()

  .getTask("60002");

  System.out.println(task.getName());

 }

 

 /**

  * 查询已经完成的所有的任务

  */

 @Test

 public void testQueryAllHistTask(){

  List<HistoryTask> histTaskList = processEngine.getHistoryService()

  .createHistoryTaskQuery()

  //.assignee("")  可以根据任务的执行人查询已经完成的任务

  //.executionId("")可以根据executionID查询已经完成的任务

  .state("completed")

  .list();

  for(HistoryTask histTask:histTaskList){

   System.out.println(histTask.getEndTime());

   System.out.println(histTask.getAssignee());

  }

 }

 

 /**

  * 直接结束流程实例

  */

 @Test

 public void testEndPI(){

  processEngine.getExecutionService()

  .endProcessInstance("qingjia1.20001", "error");

 }

 

 /**

  * 根据 piid查询流程实例,如果查询出来的结果为null,说明该流程实例已经结束了

  */

 @Test

 public void testIsEndPI(){

  ProcessInstance pi = processEngine.getExecutionService()

  .createProcessInstanceQuery()

  .processInstanceId("qingjia1.60001")

  .uniqueResult();

  System.out.println(pi);//如果该值为null,说明该流程实例已经结束了

 }

}

 

文章出处:http://www.linuxidc.com/Linux/2014-06/102858.htm

 

分享到:
评论

相关推荐

    jBPM4工作流应用开发指南.pdf

    jBPM4作为该系列的一个版本,提供了一套完整的流程管理和执行框架,允许开发者构建灵活的工作流应用,以实现业务流程自动化。本指南由胡奇编写,旨在为开发者提供一个全面的参考,帮助他们快速学习和掌握使用jBPM4...

    jbpm4jbpm5

    jbpm4jbpm5是关于jbpm流程管理框架的专题,涵盖了jbpm4和jbpm5两个主要版本。jbpm是一个开源的工作流管理系统,用于帮助开发者实现业务流程自动化。以下是基于给定文件的信息,深入解析jbpm4和jbpm5的知识点: 1. *...

    jBPM4工作流示例jbpmDemo

    **jbPM4工作流示例jbpmDemo**是一款基于jBPM4的工作流管理系统实例,旨在帮助用户深入了解和掌握jBPM4工作流引擎的使用方法。jBPM4是一款强大的开源工作流管理系统,它提供了流程建模、执行以及监控等功能,广泛应用...

    jbpm4案例源码

    这个"jbpm4案例源码"包含了jbpm4系统的核心组件和示例代码,帮助开发者深入理解jbpm4的工作原理和实践应用。《jBPM4工作流应用开发指南.pdf》这本书则进一步阐述了如何利用jbpm4来构建工作流应用。 jbpm4的核心功能...

    JBPM4 java源代码分包详解JBPM4

    【JBPM4 Java源代码分包详解】 JBPM4是一个流行的开源工作流管理系统,它提供了一整套用于设计、执行和管理业务流程的工具。在深入研究JBPM4的源代码时,我们可以从其包结构中了解到框架的核心功能和设计理念。 1....

    JBPM4 表 详细介绍

    ### JBPM4 表结构详解 JBPM (JBoss Business Process Management) 是一款开源的工作流管理系统,被广泛应用于业务流程管理领域。JBPM4作为其一个版本,具有丰富的功能及特性,尤其在流程管理和任务分配方面表现突出...

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

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

    JBPM4与Spring整合例子代码

    **JBPM4与Spring整合详解** JBPM4(Java Business Process Management 4)是一个开源的工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能。Spring框架则是Java应用开发中的一个核心组件,主要负责依赖...

    JBPM4 开发文档 实例 流程

    **JBPM4 开发文档详解** JBPM4(Java Business Process Management 4)是一个轻量级的开源工作流管理系统,基于J2EE架构,旨在帮助开发者实现复杂的业务流程自动化。该项目于2004年10月18日发布2.0版本,并随后成为...

    jBPM4完整例子

    **jBPM4完整例子详解** jBPM4是一个企业级的工作流管理系统,它提供了强大的业务流程管理和工作流实现能力。这个"jBPM4完整例子"是一个基于SSH(Struts2、Spring、Hibernate)框架集成jBPM4.4的请假流程应用,非常...

    jbpm4 完整的请假流程

    jbpm4是一个基于Java的企业级工作流管理系统,用于设计、执行和管理业务流程。这个“jbpm4 完整的请假流程”是一个示例项目,旨在帮助初学者理解和实践jbpm4在处理业务流程,尤其是请假申请流程中的应用。在这个项目...

    jbpm4的员工请假例子原码

    【jbpm4的员工请假例子原码】是一个基于jbpm4流程引擎的示例项目,展示了如何在企业中实现一个简单的员工请假流程。这个Web项目是完全开源的,可以通过Eclipse这样的集成开发环境来打开和运行,对于学习和理解jbpm4...

    JBPM4 常用表结构及其说明

    ### JBPM4 常用表结构及其说明 JBPM4是JBPM(Java Business Process Model)的一个版本,主要用于提供业务流程管理的功能。它通过一组数据库表来支持工作流的执行与跟踪。本文将详细介绍JBPM4中的常用表结构及其...

    jbpm4基本jar包

    【jbpm4基本jar包】是企业级工作流管理系统Jboss Business Process Management Suite(简称jbpm)的一个核心组件集合。jbpm4是一个开源的工作流程管理框架,它提供了强大的业务流程建模、执行和监控能力,使得开发...

    JBPM4完整示例(包括lib库)

    JBPM4是一个强大的工作流管理系统,专为Java开发者设计,具备高度的可扩展性。它完全用Java语言编写,确保了跨平台的兼容性和良好的编程体验。JBPM4的核心特性之一是采用了Hibernate作为其持久层框架,使得数据管理...

    JBPM4环境搭建

    **JBPM4环境搭建** JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了对业务流程的建模、部署、执行和监控的能力。在本文中,我们将深入探讨如何搭建JBPM4.4的开发环境,这对于理解...

    JBPM4 每张表对应的含义

    ### JBPM4 每张表对应的含义 JBPM(JBoss Business Process Management)是一款开源的工作流管理系统,广泛应用于各种业务流程管理场景中。JBPM4版本是该系列中的一个重要版本,其数据库设计反映了该系统的核心功能...

    JBPM4表结构.doc

    JBPM4,全称为JBoss Business Process Management Suite,是一个基于Java的开源工作流管理系统,它提供了全面的业务流程管理功能,包括工作流引擎和基于Eclipse的图形化流程设计工具。该系统允许开发者和业务分析师...

    jBPM4学习总结

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

Global site tag (gtag.js) - Google Analytics