什么是JPDL
jPDL(JBoss jBPMProcess Definition Language)是构建于jBPM框架上的流程语言之一。在jPDL中提供了任务(tasks)、待处理状态 (waitstates)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。
JPDL其实是一套XML语言,这套语言有特定的节点,每个节点代表不同的流程定义规则。通过XML对流程进行描述,JBPM去解析这套XML语言,然后把得到的信息存储到数据库中。
JPDL常用结点
1. Process-definition(流程定义节点)
它是所有节点的父节点,是流程定义的根节点,它代表了一个流程定义文件。该节点和许多xml文件一样,可以包 含子节点,可以有自己的属性,其中name属性是必须有的,它标识了流程定义的名称,是流程定义的标志,通过name来操作流程定义。其它节点比如task node event等都可以自由的添加,以让流程定义满足我们的要求。
2. state和task节点
State节点也叫手工节点 ,进入这种状态,整个业务程序实例的执行就会中断。直到系统外参与者发起继续执行的命令,即调用signal,或者end方法,业务程序实例的执行才能够继续下去 。
task节点就是任务节点,进入这个节点,业务会继续下去。当task节点下的所有任务执行完成以后,流程才可以走下去。
为什么拿它们两个一起来说呢,因为它们有一定的可比性,state是中断任务,需要有人审批才能通过,task相当于增加一个任务,下面可以有很多的任务,也可以是java代码或者js代码。需要这些执行完成以后才可以继续。这里面的执行完成是一般情况,通过设置task的属性,可以选择任务执行的方式,和继续的条件。
3 . fork和join节点
一个 fork 把一个执行路线分割成多个执行路线.默认分支的行为是为每个离开分支转换建立一个子令牌,在令牌要到达的分支之间建立一个父母-子女关系。
联合(join)假设所有来自同一个父母的子令牌联合,当在上使用fork(分支)这个
情形就出现了并且所有令牌分支建立,并且到达同一个联合(join)。当全部令牌都进入联合的时候联合就结束了,然后联合将检查父母-子女, 当所有兄弟令牌到达联合(join),父母令牌将传播(唯一的)离开转换,当还有兄弟令牌活动时,联合的行为将作为等待状态。
这两个节点是一对成对的节点,有分支必然有联合。
4. Decision(决策)
个decision 用以决定在多个执行路径中哪个才可以被执行。如果你是一个程序员,把它可以理解成 switch case 结构即可,一个 decision能够具有许多离开的 transition。
decision就像是我们编程语言中的switch case一样,是一个选择路径的过程。根据不同的条件,选择任务的流向。
5. Transition(转换)
转换节点是流程中最多的节点,它在设计器中用一条有向线段表示,表示从一个节点到达另一个节点。它的to属性就是标明它的目的节点的。
上面介绍的就是jpdl的常用节点,当然还有很多其它节点。帮助我们实现更加复杂的功能。
JPDL事件、动作、脚本
jPDL不光有节点,节点只是标明流程的流向的,那么如何控制流行,就需要jpdl的其它三个节点了。
event(事件)
BPM定义了一系列与工作流节点元素相关联的事件,例如,流程实例运行过程中,可
以触发节点进入(node-enter)、节点离开(node-leave)、流程启动(process-start)、流程结束(process-end)、任务创建(task-create)、任务分派(task-assign)、任务启动(task-start)等事件。 在流程定义时,JBPM 的事件均与 action 绑定。事件的触发将导致相应actions 的执行。
这个事件我个人感觉它就像是我们VB中经常用到的键盘事件,鼠标事件一样,其实都是一个动作触发一段代码。你可以自定义这段代码而已。
action(动作)
一个 action 是一段 java代码。在流程执行期间在一些事件之上定义,这样会在相关事件触发时自动在工作流引擎上执行。
action会继承jbpm自定义的org.jbpm.graph.def.ActionHandler 接口。这样再触发时间的时候,就可以执行这个action动作了。
Script(脚本)
Script里是动作执行的beanshell脚本.
JBPM中使用Script的例子
[html] view plaincopyprint?
01.<event type="node-enter">
02. <script>
03. <![CDATA[
04. System.out.println("Hello " + name);
05. ]]>
06. </script>
07. </event>
<event type="node-enter">
<script>
<![CDATA[
System.out.println("Hello " + name);
]]>
</script>
</event>
脚本就相当于在xml中书写java语句。在执行过程中执行java语句。
流程设计器
上面基本上说明了jbpm基本的节点,有了这些节点就可以定义流程执行文件。这些节点都是使用xml定义的。对于开发人员来说,jBoss给我们提供了一个eclipse插件,让我们以图像的方式设计流程定义,在eclipse使用拖拽的方式就可以实现。
下面就是jbpm4.4的流程设计界面:
当然,这个节目只有程序设计人员才能接触到,这样就大大制约了对流程的不断改进,所以现在很多地方已经采取web客户端的方式设计流程,它们提供了良好的设计器,我们这次也要研究这个设计器,准备使用Flex开发设计器界面。期待中。
分享到:
相关推荐
本篇我们将聚焦于Jbpm4中的流程定义文件——jpdl.xml,以及如何根据该文件绘制出对应的流程图。 首先,我们要理解什么是JPDL(Jbpm Process Definition Language)。JPDL是一种基于XML的语言,用于描述Jbpm中的业务...
我们可以使用jPDL语言来定义这个流程,并使用jBPM-jPDL来执行和监控这个流程。 结论 jBPM-jPDL提供了一个灵活的流程设计和控制机制,允许开发者定义、执行和监控业务流程。通过学习jBPM-jPDL,我们可以更好地设计...
jBPM(Java Business Process Management)是一个开源的工作流和业务流程管理套件,它允许开发者通过定义流程定义语言(jPDL)来设计和控制业务流程。这篇博文详细介绍了如何使用jPDL进行流程设计与控制,同时提供了...
JPDL (jBPM Process Definition Language) 是jBPM使用的流程定义语言。在v3.2版本中,jBPM提供了对Tomcat应用服务器和MySQL数据库的支持。本文将详细介绍如何在Windows 2003环境下,使用SUN JDK1.6U4、Tomcat6.0.14...
本资料主要围绕jbpm的核心组件——jPDL进行讲解,帮助学习者深入理解jbpm的工作原理和应用。 jPDL(jBPM Process Definition Language)是jbpm使用的一种基于XML的语言,用于描述业务流程。它提供了一系列的元素和...
- JPDL是JBPM的核心流程定义语言,这部分详细介绍了JPDL的语法和结构,对于定制复杂流程至关重要。 **1.7 Fork-Join活动详解** - Fork-Join活动是流程分支和合并的关键,这部分解释了其工作原理,并给出了示例,...
jBPM最大的特色在于其未采用市场上现有的规范如WfMC's XPDL, BPML, ebXML, BPEL4WS等,而是选择了自己定义的一套流程定义语言——JBoss jBPM Process Definition Language (jPdl)。这种语言视一个业务流程为一个UML...
首先,我们需要了解jbpm的流程定义语言——jpdl(jBPM Process Definition Language)。`buyEquipment.jpdl.xml`就是一个使用jpdl编写的流程定义文件。这个文件中包含了流程的各个步骤、决策点以及如何在这些元素...
接着,"process.jpdl.xml"文件则是JBOSS工作流定义语言(Java Process Definition Language)的XML文件,它是JBoss JBPM(Business Process Management)框架中用于描述工作流的一种格式。在这个文件中,详细定义了...
jBPM3是一个早期版本,提供了基于Eclipse的流程设计器和用于监控流程实例及任务的Web控制台,流程定义语言为jPDL。然而,随着jBPM创始人Tom Baeyens离开JBoss,jBPM5的开发方向发生了转变,它完全放弃了jBPM4的基础...
本篇还可以帮助读者快速上手jBPM4、使用jBPM4开发企业流程应用,包括安装和配置jBPM4、使用jBPM图形化流程设计器(GPD)设计流程、把流程部署到服务器上去、使用jBPM 4 Service API控制流程、掌握jBPM流程定义语言、...
jBPM的核心特性之一是它的流程定义语言——jPdl。jPdl以UML状态图的形式来描述业务流程,涵盖起始、结束状态以及状态间的转换。这种自定义的语言使得jBPM区别于其他遵循WfMC XPDL、BPML、ebXML或BPEL4WS等规范的工作...
- **JPDL**:JBPM的流程定义语言,用于编写流程模型,类似于XML格式。 2. **高级特性:JBPM_(2)_Advance.ppt** - **动态流程**:允许在运行时更改流程,适应变化的业务需求。 - **事件处理**:支持流程中的各种...
jBPM并没有采用一些现成的流程定义标准,例如WfMC XPDL、BPML、ebXML或BPEL4WS等,而是采用了自己的流程定义语言——jPDL(jBPM Process Definition Language)。jPDL将业务流程视为一个UML状态图,通过定义状态图中...
2. **自定义的流程定义语言**:与其他工作流引擎不同,jBPM采用了自己定义的JBoss jBPM Process Definition Language (jPdl),这种语言视业务流程为一个UML状态图,从而便于理解和维护。 3. **与Hibernate的集成**:...
JPBM的主要特点包括灵活的流程定义语言(JPDL)、强大的事件处理机制以及与各种持久化层的集成能力。 在安装配置方面,"jBPM-jPDL学习笔记—框架设计简介.doc"和"jBPM-JPDL v3.2环境部署——发布到Tomcat + MySQL....
jbpm使用JPDL(Jbpm Process Definition Language)进行流程定义,这是一种基于XML的语言,允许开发者直观地设计和定义复杂的业务流程。此外,jbpm还集成了Maven和Spring框架,方便集成到各种项目环境中。 ccbpm...
Jbpm4是一款基于Hibernate3的开源工作流引擎,它支持多种流程定义语言,如BPEL、XPDL、BPMN、JWT和自定义的JPDL。Jbpm4采用嵌入式设计,可以在任何JavaEE应用服务器上运行,并且提供了一个基于Eclipse的图形化插件和...