OOAD大报告jBPM开源项目介绍 6/20 public ProcessInstance( ProcessDefinition processDefinition )i if (processDefinition==null) throw new JbpmException( can't create a process instance this processDefinition processDefinition this root Token new Token(this) this start= new Date 代码1 public Token(ProcessInstance processInstance)i this start new Date( this processInstance= processInstance this node processInstance getProcessDefinitiono. getstartstate O; Token lode supersTate children execute) add child Token拥有当前节点的引用,可以方便的更改当前节点的位置 43流程调度过程 调度过程主要类结构图
OOAD 大报告 jBPM 开源项目介绍 6/20 代码 1 代码 2 Token 拥有当前节点的引用,可以方便的更改当前节点的位置。 4.3 流程调度过程 调度过程主要类结构图
OOAD大报告jBPM开源项目介绍 720 Transition ExecutionContext Transition eo SupersTate paren children ◆read0 execute( na Execution Conteαt(执行上下文对象)保持当前流程状态的一个执行环境,就行函数执行中栈的 作用 当 Token已经在 Start- State节点了,我们可以开始往前推进,来促使流程实例往前运行。对于 外部操作来说,触发流程实例往下运行的操作有两个 强制执行 Processinstance的 signal操作 执行 Tas iNstance的end操作 但是,这两个操作都是通过“当前 to ken的 signal操作”来内部实现的,如下图所示 d ProcessInstance signalo) ken signalo o Taskinstance endO 松飞oken的5gna操作表示:实例需要离开当前 to ken所在的节点,转移到下一个节点上:因为Node 与Node之间是“ Transition”这个桥梁,所以,在转移过程中,会首先把 To ken放入相关联的 Transtion 象中,再由 Transition对象把 Token交给下一个节点
OOAD 大报告 jBPM 开源项目介绍 7/20 ExecutionContext(执行上下文对象)保持当前流程状态的一个执行环境,就行函数执行中栈的 作用。 当 Token 已经在 Start-State 节点了,我们可以开始往前推进,来促使流程实例往前运行。对于 外部操作来说,触发流程实例往下运行的操作有两个: • 强制执行 ProcessInstance 的 signal 操作 • 执行 TaskInstance 的 end 操作。 但是,这两个操作都是通过“当前 token 的 signal 操作”来内部实现的,如下图所示: Token 的 Signal 操作表示:实例需要离开当前 token 所在的节点,转移到下一个节点上。因为 Node 与 Node 之间是“Transition”这个桥梁,所以,在转移过程中,会首先把 Token 放入相关联的 Transtion 对象中,再由 Transition 对象把 Token 交给下一个节点