传智播客java学习--jbpm进阶

本文介绍了JBPM流程引擎中各类节点的功能与用法,包括开始节点、结束节点、任务节点等,并详细解释了预定义节点的特性及其在流程设计中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我今天学习了jbpm的知识:我做了简单的摘要:

 

流程图中的各种节点的作用及用法:

    需要有不同类型(作用)的节点,才能设计出复杂的流程图。Jbpm有一套预先定义好的节点类型。如果不够用,也可以使用自定义节点进行扩展,以完成不同的流程的需要。不同的节点类型代表不同的行为。

每个流程都必须要有开始节点和结束节点。

 

预定义节点:

       start-state,开始节点:标识流程开始、

end-state,结束节点:标识流程结束、

task-node,任务节点:可以放0个或多个任务、

decision,决策节点 :路径选择,只使用一个流转(叉路口)、

fork/join,分支节点/合并节点:可以分为多个并行执行的分支、

state,状态节点:等待。

还有mail-node、process-state、super-state等

每个节点都对应一个类(Jbpm的持久化类),都是org.jbpm.graph.def.Node的子类。节点都有名字、流转(end-state除外)。

 

start-state 节点:

开始节点:标识流程开始边界。开始状态有且只有一个,就是说流程中不能有任何transition指向开始节点。

创建新的流程实例后,就有一个对应的Token(RootToken,根令牌)指向start-state。并且处于等待状态,需要给Token发信号(signal)才能使流程继续执行。

 

signal属性:

    task-node的signal属性:指定完成任务实例对执行流程的影响(发信号)。

(指定哪个任务实例完成后会发信号离开节点

属性可取的值:

last:默认值,当最后一个实例被完成时候发信号。当在这个入口没有任务被生成时候,流程继续执行(发信号)

first:当第一个实例被完成时候发信号。当在这个入口没有任务被生成时候,执行继续.

never:不管任务实例是否完成,都不发信号。

nsynchronized:进入节点后就发信号,不管任务是否没建立或有没有完成。就是说任务的执行和流程执行互不影响。

last-wait:当进入节点时没有任务实例被创建时,就会一直处于等待状态,直到任务实例被创建;创建任务实例后,就是当所有的实例都执行完成后发信号(和last一样了)。

进后节点后

If( taskInstance的数量 = 0 ){

    Wait,直到创建任务实例

}

Signal = “last”  first-wait: 和last-wait一样理解。

decision 节点:

    决策节点:用于计算流向。在decision中使用DecisionHandler。或使用一个表达式,也是返回要使用的transition的name。

 

进入节点

计算 String transitionName = DecisionHandler.decide();

使用指定流转 transitionName 离开

 

1, 计算下一步的路径,只会使用其中一个流转离开。

2, 计算逻辑是指定代码,指定一个DesitionHandler的实现类。

3, 同一个节点中的每个transition都要有唯一的名称。

 

ExecutionContext

// executionContext.getProcessInstance();

// executionContext.getContextInstance();

// executionContext.getJbpmContext().getSession();

 

异常org.jbpm.graph.def.DelegationException

一般原因如下:

1, 找不到指定的类

a)  类名指定有误(没有指定或指定错误)

b)  在classpath中找不到class文件(没有放到PAR或classpath中)

2, 执行时出现异常,这时会在异党中指定出错的代码的行号(在自己的类中)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值