JBPM节点均是继承于Node,ProcessDefinition与Node是OneToMany的关系,ProcessDefinition与StartState是ManyToOne的关系。
在操作流程时,有时候需要依据节点类型作相应的处理,那么如何获取节点类型呢?
protected void getNodeType(ProcessDefinition processDefinition){
List<Node> nodes = processDefinition.getNodes();
for(Node node : nodes){
if (node instanceof TaskNode){
// TODO
} else if (node instanceof Decision){
// TODO
} else if (node instanceof StartState){
// TODO
} else if (.....) {
.....
}
}
}
这样的处理方式常规看是没有问题,但是不见得代码是稳健的,一定就可以获取节点类型。
其原因是延时加载。流程定义的StartState就是延时加载的,运行过程中有些节点也是延时对象。可以通过获取延时对象,然后再参与运算:
if (node instanceof HibernateProxy){
HibernateProxy hiberanteProxy = (HibernateProxy)node;
LazyInitializer lazyInitializer = hiberanteProxy.getHibernateLazyInitializer();
node = (Node)lazyInitializer.getImplementation();
}
分享到:
相关推荐
总的来说,本文涉及了jbpm3.2开发中的核心概念,包括流程定义、节点类型、流程动作、持久化、API使用等方面,对于理解和使用jbpm3.2提供了丰富的信息。掌握这些知识点,对于开发和维护基于jbpm3.2的业务流程管理系统...
- **DECISIONDELEGATION**:当节点类型为Decision时,此字段表示对应的代理类,与JBPM_DELEGATION表关联。 - **DECISIONEXPRESSION_**:当节点类型为Decision时,此字段表示决策表达式。 2. **流程实例相关的表**...
NAME_字段为节点的名称,SUBPROCESSDEFINITION_字段在节点类型为ProcessState时,关联子流程模板的ID。ISASYNC_字段标识节点是否支持异步执行,ACTION_字段与JBPM_ACTION表关联,定义了节点的行为,SUPERSTATE_字段...
在流程设计中,JBPM提供了丰富的节点类型和事件处理,允许开发者定义复杂的业务逻辑。例如,决策节点(Decision)可以通过DECISIONDELEGATION指定代理类或DECISIONEXPRESSION设置判断表达式来实现动态决策。而任务...
2. **任务管理**:jPDL允许定义不同类型的用户任务,比如分配给特定用户或角色,设置任务优先级,以及设定任务完成条件。 3. **分支与合并**:通过条件节点,jPDL可以实现流程的分支,根据不同的条件执行不同的路径...
jbpm3.2表说明 很详细 1.1 JBPM_PROCESSDEFINITION:流程模版表 关系表 外键存在表 外键名称 外键存在表字段 存在原因 可能...JBPM_LOG JBPM_LOG FK_LOG_NODE NODE_ 日志所属NODE,当日志类型为N(NodeLog)时使用
* DECISIONDELEGATION:节点类型为Decision时使用,表明Decision对应的代理类,对应JBPM_DELEGATION表 * DECISIONEXPRESSION_:节点类型为Decision时使用,该属性表示Decision中的判断表达式 3. JBPM_TRANSITION表 ...
常见的节点类型包括: - **任务节点(Task Node)**:代表需人参与的任务,创建任务实例放入参与者的工作列表。 - **状态节点(State Node)**:简单的等待状态,需要信号触发执行。 - **无条件节点(Node)**:...
JBPM(JBoss Business Process ...同时,通过jbpm_NODE和jbpm_PROCESSDEFINITION可以获取流程的结构和当前运行的状态。在开发过程中,这些关系将指导如何正确地配置和执行流程,以及如何设计符合业务需求的自定义逻辑。
- **SUBPROCESSDEFINITION_**:当节点类型为`ProcessState`时,此字段表示该节点是另一个流程模版的实例,即子流程。 - **ISASYNC_**:节点是否支持异步执行机制,允许流程的部分执行可以在后台进行。 - **ACTION_**...
**JBPM4_HIST_ACTINST** — 流程活动(节点)实例表 - **作用**: 存储历史活动节点的执行信息。 - **主要内容**: 活动ID、开始时间、结束时间等。 ##### 12. **JBPM4_HIST_DETAIL** — 流程历史详细表 - **作用**: ...
- **SUBPROCESSDEFINITION_**:如果节点类型是`ProcessState`,则此字段表示子流程模版的ID,与`JBPM_PROCESSDEFINITION`表关联。 - **ISASYNC_**:布尔值,表示节点是否支持异步执行。 - **ACTION_**:节点上绑定的...
它提供了对jBPM4.4版本的下载链接,并对源码的获取途径进行了说明。 在安装配置方面,文档详细介绍了如何发布和安装jBPM以及必须安装的软件。对于初学者,它提供了快速上手指南,并阐述了安装脚本的使用方法。此外...
- **自定义节点**:开发自定义的节点类型,以满足特定业务需求。 - **持久化策略**:选择合适的持久化机制,如使用JPA进行流程实例的数据存储。 - **集群支持**:为提高可用性和扩展性,jbpm4.2支持集群部署模式。 -...
设计器支持BPMN2.0标准,包含各种节点类型,如开始事件、结束事件、任务、网关等。用户可以通过连接线来定义流程流转逻辑。流程图完成后,可以导出为.jpdl文件,这是jBPM4的流程定义语言。 **第四章 部署业务归档**...
- SUBPROCESSDEFINITION_:仅在节点类型为ProcessState时使用,表示子流程模版的ID。 - ISASYNC_:标记节点是否支持异步执行。 - ACTION_:关联到JBPM_ACTION表,表示节点执行的动作。 - SUPERSTATE_:当节点是...
BPMN 2.0是一种通用的流程建模语言,广泛应用于业务流程建模、分析和实施,它提供了丰富的图形元素,如开始事件、结束事件、任务、网关和流程连接线等,用于表示不同类型的业务活动和决策。 在jBPM 4中,设计的流程...
此表包含了流程中的各个节点信息,如任务节点、决策节点等,记录了节点的ID、类型和名称。 #### 1.3 JBPM_TRANSITION 流程迁移表记录了节点间的转移逻辑,定义了流程从一个状态到另一个状态的路径。 #### 1.4 JBPM...
**JBPM4_HIST_ACTINST** - 流程活动(节点)实例表 - **描述**: 记录流程执行过程中每个活动节点的实例信息。 - **字段说明**: 包括活动实例ID、所属流程实例ID、活动类型等。 - **操作信息**: 当流程实例中的活动...
节点类型 在流程定义中,包含以下几种主要类型的节点: - **开始节点和结束节点**:开始节点标志着流程的启动,结束节点则表示流程的结束。每个流程必须至少有一个开始节点和一个结束节点。 - **状态节点**:表示...