`
yuanlg
  • 浏览: 79682 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JBPM4.4简介(七)-ProcessInstance与Execution(转)

 
阅读更多

ProcessInstance与Execution

上面我们了解了所谓流程实例(ProcessInstance),实质就是指得一个业务对象(比如:“小赵的请假单”、“小李的报销单”、“某某单位的某 次发文”等等)。而Execution是一个执行控制对象,你必须要理解的一点就是每个Execution对象必然会指向一个节点(Activity)。 Execution指向哪里,就代表它执行到了哪里。每个Activity都有自己的行为。比如TaskActivity的行为就是创建任务实例 (TaskImpl),并把任务实例与参与者(assignee)相关联。这样,通过assignee就可以查找到其任务实例列表。

 

Execution有name、key、id、state等属性,Execution是树型结构,在fork和join流程中,将会创建子Execution对象。

 

子Execution对象的name属性是进入这个子Execution对象时的transition的名称。

 

ProcessInstance也是一种Execution类型的对象。实际上,对于ProcessInstance对象来说,它对应的 ProcessInstance(因为ProcessInstance也是Execution,所以它也有对应的ProcessInstance对象)就 是它自己。而对于ProcessInstance的那些子Execution对象(孙Execution对象等等等等)而言,也肯定会有指向 ProcessInstance对象的一个引用!

 

对于Execution对象(即ProcessInstance对象),它的ID是:流程定义的KEY.流程实例的KEY,比如上面例子中创建的流程实例的ID就是:”LEAVE.101”。

 

我们可以通过这个ID(或其它方法)来查询流程实例对象或Execution对象,从而得知这些Execution指向哪里。

       //流程引擎

       ProcessEngine engine = newConfiguration()

           .setResource("jbpm.cfg.xml").buildProcessEngine();

      

       ProcessInstance instance = engine.getExecutionService().findProcessInstanceById("LEAVE.101");

      

       Set<String> currentActivityNames = instance.findActiveActivityNames();

      

       //流程实例现在流转到哪个Activity了

       System.out.println(currentActivityNames.toString());

上述代码将输出:[张三审批],表明现在执行到了张三审批这个环节。

分享到:
评论

相关推荐

    jbpm4.4学习笔记

    3 Jbpm4.4介绍 7 3.1工作流引擎 8 3.2jpdl 8 3.3数据库 8 3.3.1资源库和运行时表结构 8 3.3.2历史数据库表 9 3.3.3身份认证表 9 3.4jbpm.cfg.xml 9 3.5 jbpm.hibernate.cfg.xml 10 3.6logging.properties 10 4 准备...

    jbpm 4.4 学习笔记

    3. 流程实例相关:如JBPM4_EXECUTION、JBPM4_HIST_ACTINST、JBPM4_HIST_DETAIL等。 4. 用户及权限相关:如JBPM4_ID_USER、JBPM4_ID_GROUP、JBPM4_ID_MEMBERSHIP。 5. 定时任务相关:如JBPM4_JOB。 6. 其他:如JBPM4_...

    jbpm4.4源代码阅读第一季发布(共3个视频)

    jbpm4.4源代码阅读第一季发布是一个针对企业级工作流引擎——jBPM的深入学习资源。jBPM是一款开源的业务流程管理(BPM)和工作流系统,它允许开发者通过Java编程语言来定义、执行和管理业务流程。这个资源包含3个...

    activiti笔记1

    【工作流与Activiti简介】 工作流(Workflow)是一种在计算机环境中实现业务过程自动化的方法,其目的是通过预定义的规则自动地在多个参与者之间传递文档、信息或任务,以达到预期的业务目标。工作流管理系统(WfMS...

    activiti-学习第一天

    - **ProcessInstance** 对应 `act_ru_execution` 表。 - **Task** 对应 `act_ru_task` 表。 #### 九、使用网页版流程设计器 为了更直观地设计流程,可以使用网页版的流程设计器: 1. **复制activiti-explorer.war...

Global site tag (gtag.js) - Google Analytics