开始状态:
<!ELEMENT start-state ( description?, transition+ ) >
<!ATTLIST start-state name
CDATA #REQUIRED
swimlane CDATA #IMPLIED >
dtd fragment for start-state
开始状态是一个过程中的唯一状态,所有的过程实例从这里开始,注意在过程实例开始的时刻你能够把变量放在过程当中了。另外重点的概念是你能够有多个从开始状态出发的变迁,这样的话,就需要你指定哪个变迁是你启动过程实例时候需要执行的。
milestone
:
<!ELEMENT milestone ( description?, action*, transition ) >
<!ATTLIST milestone name
CDATA #REQUIRED>
dtd fragment for a milestone
一个
milestone
是一种特殊的状态,它用来处理两个并发事件中的同步的作用。一个
milestone
可以被应用在下面情形:一条执行路径需要等待另外一个执行路径上的事件。如果
milestone
没有到达,接下来的执行就必须在
milestone
处等待,知道另外一个并发路径到达的时候,才可继续执行。如果
milestone
已经到达了(条件具备了),接下来的执行就是通过这个
milestone
状态。关于
milestone
的更多信息和图形请参看工作流模式。一个
milestone
与一或多个
actions
(用信号通知
milestones
到达)相关联。那些
actions
能够用默认
ActionHandler
:
org.jbpm.delegation.action.MilestoneReachdActionHandler
在流程中建模。所以
actions
(发信号给
jbpm
引擎告诉它一个
milestone
已经到达)能够像下面这样在
processdefition.xml
中调度:
...
<milestone name="theMilestone">
<transition to="stateAfterMilestone" />
</milestone>
...
<state name="stateBeforeReachingMilestone" swimlane="initiator">
<transition to="stateAfterReachingMilestone">
<action>
<delegation class="org.jbpm.delegation.action.MilestoneReachedActionHandler">theMilestone</delegation>
</action>
</transition>
</state>
...
modelling a milestone in the processdefinition.xml
process-state:
<!ELEMENT process-state ( description?, delegation, action*, transition+ ) >
<!ATTLIST process-state name CDATA #REQUIRED>
dtd fragment for a process-state
一个
process-state
符合父过程的
invocation
。父过程执行到一个
procee-state
时候就开始一个子过程的执行。过程残留在
process-state
中用以子过程的持续。当一个子过程完成后,就从一个
process-state
中离开了。
Decision:
<!ELEMENT decision ( description?, delegation, action*, transition+ ) >
<!ATTLIST decision name CDATA #REQUIRED>
dtd fragment for a decision
一个
decision
用以决定在多个执行路径中哪个才可以被执行。如果你是一个程序员,把它可以理解成
if-then=else
结构即可,当然。一个
decision
能够具有许多离开的变迁。
需要注意的是一个
decision
对某个情况建模,在这里工作流引擎根据上下文(
=variables
)和一些其他外部资源决定哪个路由可以被接受。作为可供选择的(可以替代的做法),你设计从一个状态出发具备多个变迁。在那种情况下,
jbpm
客户端必须通过调用以一个选择变迁名字作为一个参数的
endOfState
方法决定哪个变迁被执行。
Fork
(分支):
<!ELEMENT fork ( description?, delegation
?, action*, transition+ ) >
<!ATTLIST fork name
CDATA #REQUIRED
corresponding-join CDATA #IMPLIED>
dtd fragment for a fork
这个比较好理解,定义一般普通的
fork
行为一般是通过
ForkHandler
接口。但是默认行为(当在
fork
中没有
delegetion
时候)是
fork
的每个变迁都将获得一个子
token
。所以仅仅对一些高级外来的并发,你才需要实现
ForkHandler.
一般情况下,一个
fork
会有一个相关的
join
。这个
join
定义个并发的
block
。默认下
fork
和
join
仅支持严格的嵌套,并且默认情况不支持绕过并发
block
边界的变迁。
public interface ForkHandler {
void fork( ForkContext forkContext ) throws ExecutionException;
}
the ForkHandler interface
join
:
<!ELEMENT join ( description?, delegation?, action*, transition ) >
<!ATTLIST join name
CDATA #REQUIRED
corresponding-fork CDATA #IMPLIED>
dtd fragment for a join
一个
fork joins
用于多条路径执行,用
JoinHandler
接口指定普通的
join
行为。但是默认情况下(没有
delegation
)是所有
fork
上的子
token
合并。最后
token
到达
join
将会触发父
token
最后引发
join
上的离开变迁。所以仅仅高级外来的并发你才需要实现
JoinHandler.
约束:一个
join
只能有一个离开变迁。
public interface JoinHandler {
void join( JoinContext joinContext ) throws ExecutionException;
}
the JoinHandler interface
结束状态:
<!ELEMENT end-state EMPTY >
<!ATTLIST end-state name CDATA #REQUIRED>
dtd fragment for end-state
一个过程定义有一个精确的结束状态。当一个过程实例执行到一个结束状态时候,这个过程实例就结束了。
变迁(
transition
):
<!ELEMENT transition ( action* )>
<!ATTLIST transition name CDATA #IMPLIED
to
CDATA #REQUIRED>
dtd fragment for a transition
变迁用来指定节点之间的连接。变迁元素应该放在
node
里面,那么这个变迁就会从这个节点出离开。
Action
:
<!ELEMENT action ( delegation ) >
<!ATTLIST action event-type (process-start|process-end|
state-enter|state-leave|state-after-assignment|
milestone-enter|milestone-leave|
decision-enter|decision-leave|
fork-enter|fork-every-leave|
join-every-enter|join-leave|
transition) #IMPLIED>
dtd fragment for an action
一个
action
是一段
java
代码。在过程执行期间在一些事件基础之上
action
在工作流引擎上执行。
Action
总是被定义成一个过程定义元素(
process-definition, state, transition, decision, ...
)的子元素。当
action
执行的时候,父元素会在过程执行时候外加一些事件类型来定义精确时刻。可以想象得到,一个
action
的可能事件类型依赖于
action
被包含进去的元素。
事件类型名字(
event-type-names
)被暗示出是他们应用到的元素(理解有误)。
在
javadoc
中有事件类型,可以进行查看。
public interface ActionHandler {
void execute( ExecutionContext executionContext );
}
the ActionHandler interface
delegation
:
<!ELEMENT delegation ( #PCDATA ) >
<!ATTLIST delegation class CDATA #REQUIRED>
dtd fragment for a delegation
解释在约束元素和
delegation
类必须实现的接口之间的关联。
四、其他
process archive
文件
当一个
process archive
被部署,
processdefinition.xml
将被解析并且把信息存储到
jbpm
数据库中去。所有其他的文件或者被存储在数据库中或者文件系统,与被创建的过程定义相关联。作为一
jbpm api
的客户端你能够通过
ExecutionReadService.getFile( Long processDefinitionId, String fileName )
访问这些文件。
一个
process archive
和一个过程定义(
process definition
)之间的区别参看
versioning mechanism
。
分享到:
相关推荐
2. **Eclipse插件**:jbpm-jpdl-designer通常作为一个Eclipse插件存在,使得开发者能够在熟悉的Eclipse集成开发环境中进行流程设计。 **压缩包内的文件说明:** 1. **release.notes.html**:这是发布说明文件,通常...
jbpm-jpdl-designer-3.0.13 是一个与jbpm相关的软件包,主要功能是提供jbpm流程定义的图形化设计工具。...通过深入学习和使用jbpm-jpdl-designer,开发人员和业务分析师可以更好地理解和管理复杂的企业级流程。
在"jbpm-jpdl-javadoc"中,"javadoc"是Java开发工具包提供的一个工具,用于生成关于Java源代码的API文档。这个压缩包文件"javadoc-jpdl"包含了jbpm中JPDL相关的API文档,这些文档详细解释了JPDL库的各种类、接口、...
在jbpm-jpdl-src.rar这个压缩包中,我们可以找到jBPM 3.2.2版本的源代码,这对于学习和理解jBPM的工作原理以及如何自定义流程非常有帮助。 在这个源码包中,"org"目录很可能是项目的核心组件,包含了以下关键部分:...
入门材料 jbpm-jpdl 学习笔记 jbpm-jpdl 学习笔记 jbpm-jpdl 学习笔记
在开始jBPM-jPDL的学习之前,首先要搭建一个合适的运行环境。系统平台通常要求Java运行环境(JRE或JDK),因为jBPM是基于Java的。安装包通常包括jBPM的核心库、示例项目以及相关的开发工具。对于部署,可以将jBPM...
jPDL-identity.jar是jBPM的轻量级扩展,实现了基础的用户认证和权限管理功能,适用于需求简单的应用场景。另外,jBPM Console是一个基于JSF技术的Web应用程序,用于监控jPDL平台的执行情况,包括数据库监控、流程...
下面,我们将通过学习笔记,了解jBPM-jPDL的流程设计与控制机制。 流程设计 在jBPM-jPDL中,流程设计是指定义业务流程的结构和行为。流程设计通常包括定义流程的各个节点、 переход和操作。jPDL(Java ...
《jBPM-jPDL学习笔记——流程设计与控制》 在IT行业中,流程管理和自动化是企业提升效率的关键。jBPM(Java Business Process Management)是一个开源的工作流和业务流程管理套件,它允许开发者通过定义流程定义...
**jBPM-jPDL学习笔记** jBPM(Java Business Process Management)是一个开源的工作流管理系统,用于在Java环境中执行业务流程。它提供了一个强大的工具集,包括模型、执行和服务,帮助开发者设计、部署和执行复杂...
根据提供的文件信息,我们可以深入探讨jbpm jpdl帮助文档中的关键知识点。该文档主要围绕jBPM(一款开源的工作流引擎)以及其图形化...通过这些内容的学习,可以帮助读者更好地理解和掌握jBPM和jpdl的相关技术细节。
**JBoss、jBPM与jPDL:工作流管理的...通过这份开发手册,开发者可以系统地学习并掌握jBPM和jPDL,从而在实际项目中有效地实现业务流程的自动化和管理。这不仅提升了开发效率,也为企业的业务流程优化提供了强大支持。
总之,《JBoss jBPM jPDL用户开发手册1.1》是一份详细的学习指南,涵盖了jBPM和jPDL的使用方法和最佳实践,对于希望深入了解和使用jBPM进行业务流程管理的开发者来说,是一份宝贵的参考资料。通过阅读这本手册,你...
2. **识别节点和转换**:在JPDL文件中,你会找到诸如`<action>`、`<event>`、`<condition>`等节点,它们分别对应流程中的动作、事件和条件。同时,`<transition>`元素用于描述从一个节点到另一个节点的转换路径,...
2. **jBPM流程模型**:理解BPMN 2.0符号,学习如何使用jPDL创建流程模型,包括任务、事件、网关和泳道等元素。 3. **流程部署**:了解如何将jPDL流程定义文件部署到JBoss服务器,以及如何在运行时启动和监控流程...
在第8章中,我们将会深入学习如何使用jPDL来创建和管理复杂的业务流程。 1. **任务(Tasks)** 在jPDL中,任务是流程的基本构建块,代表了流程中的一个操作或活动。你可以定义任务的类型、执行者、相关数据以及...
**jbPM jPDL 用户指南 (Version 3.2.3) - 第2章** jbPM(Java Business Process Management)是一种开源的工作流管理系统,专为Java开发者设计,它提供了业务流程建模、执行和监控的功能。jPDL(jBPM Process ...