`
j2ee_zhongqi
  • 浏览: 209562 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Jbpm中State和Node的区别

    博客分类:
  • JBPM
阅读更多
state

State等待状态。进入这种状态,整个业务程序实例的执行就会中断。直到系统外参与者发起继续执行的命令,即调用signal方法,业务程序实例的执行才能够继续下去。

NodeNode

节点状态。当业务程序实例执行到这个节点,不会停止执行。而是会继续往下执行。如果存在该节点存在多个离开转向。那么,就会执行其中的第一个离开转向,在Node状态中,不需要外部参与者的参与,业务流程的这个部分是自动的、即时完成的。

processdefinition.xml


<?xml version="1.0" encoding="UTF-8"?>
<process-definition
  xmlns="urn:jbpm.org:jpdl-3.1"  name="example_7">
   <start-state name="start">
      <transition name="tr1" to="state"></transition>
      <transition name="tr2" to="node"></transition>
   </start-state>
   <state name="state">
      <transition name="" to="end"></transition>
   </state>
   <node name="node">
      <transition name="" to="end"></transition>
   </node>
   <end-state name="end"></end-state>
</process-definition>



测试(JUnit)
package com.sample;

import static org.junit.Assert.assertEquals;

import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.junit.Before;
import org.junit.Test;

public class Example7 ...{
    private ProcessDefinition processDefinition = null;
    @Before public void init()...{
        processDefinition = ProcessDefinition.parseXmlResource("example_7/processdefinition.xml");
    }
    @Test public void processState()...{
        ProcessInstance ProcessInstance = new ProcessInstance(processDefinition);
       
        Token token = ProcessInstance.getRootToken();
        assertEquals("start", token.getNode().getName());
        token.signal();
        assertEquals("state", token.getNode().getName());
       
        token.signal();
        assertEquals("end", token.getNode().getName());
    }
   
    @Test public void processNode()...{
        ProcessInstance ProcessInstance = new ProcessInstance(processDefinition);
       
        Token token = ProcessInstance.getRootToken();
        assertEquals("start", token.getNode().getName());
        token.signal("tr2");
        assertEquals("end", token.getNode().getName());
    }
}



转载请标明出处:http://blog.csdn.net/cydooo/archive/2006/12/24/1457029.aspx
分享到:
评论

相关推荐

    jbpm3.2表说明

    JBPM_NODE JBPM_PROCESSDEFINITION FK_PROCDEF_STRTSTA STARTSTATE_ 此关系表示那个节点是开始节点 JBPM_TRANSITION JBPM_TRANSITION FK_TRANS_PROCDEF PROCESSDEFINITION_ 一个流程可能会有很多的 TRANSITION...

    jBPM3 2 3数据库表说明 pdf

    - **STARTSTATE_**:起始节点ID,该字段关联了`JBPM_NODE`表中的节点ID,指示流程开始时所处的状态。 ##### 2.2 JBPM_NODE:流程节点表 - **ID_**:流程节点标识,作为该表的主键。 - **CLASS_**:节点类型,定义...

    中文文档JBPM

    JBPM,全称为Java Business Process Management,是一款功能强大的开源工作流管理系统,完全使用Java语言编写,并依赖Hibernate作为其持久化层,确保了良好的可扩展性和数据库兼容性。由于Hibernate支持多种数据库,...

    JBPM数据库分析文档.pdf

    这些表之间的关系密切,例如,JBPM_TRANSITION中的FROM和TO字段与JBPM_NODE关联,描述了流程的流转路径;JBPM_NODE的ACTION字段与JBPM_ACTION关联,定义了节点执行时的动作;而JBPM_ACTION的EVENT字段则与JBPM_EVENT...

    JBPM数据库表说明

    ISTERMINATIONIMPLICIT_字段标记流程是否支持强制终止,STARTSTATE_字段则保存了流程的起始节点ID,对应于JBPM_NODE表中的记录。 2. JBPM_NODE 表: 此表包含了流程中的各个节点。ID_字段是节点的唯一标识,CLASS_...

    JBPM工作流开发指南

    四、流程中任务的分配 37 4.1 assignment-handler方式的任务分配 38 4.2 swimlane方式的任务分配 39 五、JBPM持久化 42 5.1 特殊数据库支持 42 5.2 JBPM数据库的安装 42 5.2 JBPM流程发布 45 5.2.1 搭建JBPM的WEB...

    jbpm帮助文档(中文带源码)

    这包括安装必要的工具和库,创建流程定义文件(使用JPDL),然后在JBPM引擎中启动和跟踪流程实例。 三、学习 JPDL 3.1 简介 JPDL是JBPM中定义流程的关键,它允许开发者声明流程的各个组件,如开始和结束节点、任务...

    jbpm3.2开发总结.pdf

    文档中提到了节点类型,如task-node(任务节点)、state-node(状态节点)、decision-node(决策节点)、fork(分叉节点)、join(合并节点),以及节点之间的转换(transitions)。 文档提到了 jbpm-designer 和 ...

    jbpm_流程_能让你熟练的掌握

    node是jbpm流程定义中的自动节点,用于定义jbpm流程中的自动步骤。node可以是start-state、end-state、state、task-node等多种类型。 start-state(开始状态) start-state是jbpm流程定义中的开始状态,用于标识...

    jbpm安装及使用方法

    nodes表示流程中所有的node,startState用于启动流程时找到首节点。 (2)Transition表示转移,它有三个属性:from(Node),to(Node),supportedEventTypes表示支持的event类型 (3)node表示节点,它有四个属性:leaving...

    jbpm数据库表结构

    - **STARTSTATE_**:起始节点ID,在JBPM_NODE表中有对应的记录。 - **JBPM_NODE**:流程节点表 - **ID_**:流程节点的唯一标识符。 - **CLASS_**:节点类型,不同的字母代表不同类型的节点(例如C表示Process...

    JBPM中文表结构以及流程中文描述

    jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于设计、执行和管理业务流程。本文将详细介绍jBPM的中文表结构及其流程中的各个节点含义。 首先,jBPM的基本概念包括流程定义、流程实例、...

    jBPM2-流程图与JBPM API.ppt

    jBPM2 版本中,流程图和JBPM API 是核心组成部分,帮助开发者实现复杂的业务流程自动化。 ### 1. jBPM-jBDL 相关概念 jBPM-jBDL(jBPM Business Definition Language)是一种用来定义业务流程的语言,基于有向图...

    JBPM数据库表说明[归类].pdf

    `ISASYNC_` 指定节点是否可以异步执行,`ACTION_` 关联了 `JBPM_ACTION` 表中的动作,`SUPERSTATE_` 和 `PROCESSDEFINITION_` 分别指向超状态和流程模板ID。 3. **JBPM_TRANSITION_TRANSITION**: 此表记录了流程...

    jbpm数据库表字段详解

    * STARTSTATE_:流程的起始节点ID,在JBPM_NODE表中 2. JBPM_NODE表 JBPM_NODE表存储了流程节点的信息。该表的字段包括: * ID_:流程节点的唯一标识 * CLASS_:节点类型,包括C、D、E、F、J、K、N、R、S、U等 * ...

    jbpm自带表及其相互之间的关系详解

    - **CLASS_**:节点的类型,例如`org.jbpm.graph.node.ProcessState`表示这是一个子流程节点。 - **NAME_**:流程节点的名称。 - **SUBPROCESSDEFINITION_**:如果节点类型是`ProcessState`,则此字段表示子流程模版...

    JBPM数据表之间的关系

    - STARTSTATE_:引用JBPM_NODE表中的起始节点ID。 2. **JBPM_NODE**: - ID_:节点的唯一标识。 - CLASS_:表示节点的类型,如ProcessState、Decision、Task等。 - NAME_:节点的名称。 - ...

    jbpm数据结构及其数据库表的详细字段

    - STARTSTATE_:引用JBPM_NODE表中的ID,表示流程的起始节点。 2. **JBPM_NODE** 表: - ID_:节点的唯一标识。 - CLASS_:表示节点的类型,如ProcessState、Decision、EndState等。 - NAME_:节点的名称。 - ...

    JBPM数据库表关系

    - **JBPM_VARIABLEINSTANCE, JBPM_VARIABLEINSTANCEBLOCK, JBPM_VARIABLEMAPPING**: 变量实例、块和映射,存储流程中的变量信息。 1.1 **JBPM_PROCESSDEFINITION**: - **子流程关系**: 通过`JBPM_NODEFK_PROCST_...

    自己写的jbpm学习资料

    #### 三、jBPM在项目中的应用 将jBPM应用于项目的关键步骤包括: 1. **配置运行环境**:确保JAVA_HOME和ANT_HOME环境变量正确设置,运行数据库初始化脚本。 2. **搭建开发框架**:创建Web工程,放置必要的jar包至...

Global site tag (gtag.js) - Google Analytics