ImageVerifierCode 换一换
格式:DOC , 页数:102 ,大小:2.85MB ,
资源ID:10511    下载:注册后免费下载
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-10511.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JBPM工作流开发指南v10-20070706.doc)为本站会员(李静文)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

JBPM工作流开发指南v10-20070706.doc

1、JBPM 工作流开发指南 v1.0第 1 页 共 102 页JBPM 开发指南BSTEK2007 年 7 月JBPM 工作流开发指南 v1.0第 2 页 共 102 页目录一、概述 .4二、第一个流程 .52.1、开始前的准备 .52.2 、Hello World 例子 .6三、学习 JPDL.113.1 、简介 .113.2 、流程版本(Version) .113.3 、流程定义 .123.3.1 process-definition(流程定义 ) .123.3.2 node(自动节点) .133.3.3 start-state(开始状态) .133.3.4 end-state(结束节点)

2、.143.3.5 state(状态) .143.3.6 task-node (任务节点) .153.3.7 fork(分支 ).163.3.8 join(联合) .173.3.9 decision(决策) .183.3.10 transition(转换) .193.3.11 event(事件) .203.3.12 action(动作) .203.3.13 script(脚本) .223.3.14 expression(表达式) .233.3.15 variable(变量) .233.3.16 handler(句柄) .233.3.17 timer(定时器 ) .243.3.18 create-

3、timer(创建定时器) .253.3.19 cancel-timer(取消定时器) .263.3.20 task(任务) .263.3.21 swimlane(泳道) .273.3.22 assignment(委派) .283.3.23 controller(控制器) .293.3.24 process-state 子流程 .293.3.25 sub-process 子流程 .303.3.26 condition 条件 .303.3.27 exception-handler 异常处理 .31小结 .33四、流程中任务的分配 .374.1 assignment-handler 方式的任务分配

4、.384.2 swimlane 方式的任务分配 .39五、JBPM 持久化 .42JBPM 工作流开发指南 v1.0第 3 页 共 102 页5.1 特殊数据库支持 .425.2 JBPM 数据库的安装 .425.2 JBPM 流程发布 .455.2.1 搭建 JBPM 的 WEB 应用 .465.2.2 发布第一个流程 .48六、日历(Scheduler) .546.1 Scheduler 在 C/S 程序上的应用 .546.2 Scheduler 在 Web 上的应用 .576.3 Scheduler 时间的分类 .60七、异步执行 .63八、JBPM 流程建模与应用 .648.1 JBP

5、M 的建模工具 .648.1.1 建模工具的安装 .648.2 公司报销流程示例 .678.2.1 流程建模 .678.2.2 流程数据库搭建 .768.2.3 构建业务表 .798.2.4 搭建工程 .828.2.5 报销流程的发布 .838.2.6 应用程序搭建 .84九、写在最后 .100JBPM 工作流开发指南 v1.0第 4 页 共 102 页一、概述JBPM 是一个扩展性很强的工作流系统,百分百用 JAVA 语言开发,持久层采用Hibernate 实现,理论上说,只要 Hibernate 支持的数据库 JBPM 都支持。同时它还能被部署在任何一款 JAVA 应用服务器上。JBPM

6、工作流开发指南 v1.0第 5 页 共 102 页二、第一个流程2.1、开始前的准备JBPM 的工程文件,大家可以到如下网站上去下载:http:/ 目前的最新版本是 3.2.1,本文就以此版本为例。在这里请大家下载 jbpm-starters-kit-3.1.2 这样一个版本。在这个版本里包括一个 JBPM 流程设计器的 Eclipse 插件,和一个用 JBOSS 作为服务器的示例流程等相关文件。解压 jbpm-starters-kit-3.1.2.rar 到某个特定目录,这里我们首先用到的是包里的 JBPM 目录下的文件。JBPM 目录里面是 JBPM 的 Eclipse 的工程文件,我们可

7、以用 Eclipse 导入该工程。从 Eclipse 的 File 菜单里选择 import Existing Projects into Workspacenext根据向导找到前面提到的 JBPM 目录就可以把该工程导入到 Eclipse 当中。如下图:JBPM 工作流开发指南 v1.0第 6 页 共 102 页好了,接下来,我们就在这个工程的基础之上来开始我们的第一个流程。2.2 、Hello World 例子我们的第一个流程示例源自 JBPM 的 reference。流程图如下:JBPM 的流程定义采用 XML 的方式(实际绝大多数的流程引擎的流程定义都采用的是这种方式) ,作为测试 X

8、ML 定义我们既可以写在代码当中,也可以以一个独立的 XML 文件的形式存在,接下来的例子我们将分别为大家介绍一下这两种情况。我们首先来看看把XML 流程定义写在代码中的方式。JBPM 工作流开发指南 v1.0第 7 页 共 102 页新建一个 Junit 的测试用例,测试代码如下:package org.jbpm.tutorial.helloworld;import junit.framework.TestCase;import org.jbpm.graph.def.ProcessDefinition;import org.jbpm.graph.exe.ProcessInstance;imp

9、ort org.jbpm.graph.exe.Token;public class HelloWorldTest extends TestCase public void testHelloWorldProcess() /*这个段测试方法演示了一个流程的在代码中以字符串形式定义和这个流程定义的具体执行。这个流程定义包含三个节点:一个未命名的开始状态(start-state), 一个名字为s的状态(state)和一个名字为 end的结束状态(end-state)。 下一行的功能是把一段xml文本解析为一个 ProcessDefinition,一个ProcessDefinition是一个java对

10、象的形式对流程的正式的描述。*/ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(“ +“ “ +“ “ +“ “ +“ “ +“ “ +“ “ +“ “ +JBPM 工作流开发指南 v1.0第 8 页 共 102 页“);/*下边的一行根据流程定义构造了的一个具体的执行实例。 构造以后,执行的流程就有了一个被定位在开始状态(start-state)上的主要的执行路径 */ProcessInstance processInstance = new ProcessInstance(processDefin

11、ition);/*构造以后,执行的流程就有了一个主要的执行路径(root token) */Token token = processInstance.getRootToken();/*当然,构造以后,流程定义的主要的执行路径被定位在开始状态(start-state)*/assertSame(processDefinition.getStartState(), token.getNode(); /*开始流程执行,通过默认的转换(transition)离开开始状态( start-state)*/token.signal();/*直到运行的流程进入一个等待状态,signal 方法将一直被阻塞,运行

12、的流程将要进入第一个等待状态:状态s.因此现在主要的执行路径 ,定位到了状态s 上。 */assertSame(processDefinition.getNode(“s“), token.getNode();/*执行signal,流程将继续执行,将通过默认的转换( transition)离开状态s*/JBPM 工作流开发指南 v1.0第 9 页 共 102 页token.signal();/*流程实例已经到达了结束状态。*/assertSame(processDefinition.getNode(“end“), token.getNode();运行测试,我们看到流程和我们预想的结果完全符合。在

13、这里我们的流程定义是写在一个代码中,XML 的定义方式是以通过拼字符串的方式完成的,这种方式给我们带来的结果是不直观,同时流程定义起来也很不方便。除了这种定义方式之外我们可以把刚才那段写在代码里的流程定义信息搬到我们的 XML 文件里,同样可以达到相同的效果。接下来我们就来看一下这种做法。流程定义文件:helloWorld.xml测试代码:HelloWorldTest.javapackage org.jbpm.tutorial.helloworld;import junit.framework.TestCase;import org.jbpm.graph.def.ProcessDefiniti

14、on;import org.jbpm.graph.exe.ProcessInstance;JBPM 工作流开发指南 v1.0第 10 页 共 102 页import org.jbpm.graph.exe.Token;public class HelloWorldTest extends TestCase public void testHelloWorldProcess() ProcessDefinition processDefinition = ProcessDefinition.parseXmlResource(“helloWorld.xml“);/*从这里可以看出,与上面那段代码唯一不

15、同之处就是没有字符串形式的流程定义信息了,取而代之的是对流程定义的XML进行解析*/ProcessInstance processInstance = new ProcessInstance(processDefinition);Token token = processInstance.getRootToken();assertSame(processDefinition.getStartState(), token.getNode(); token.signal();assertSame(processDefinition.getNode(“s“), token.getNode();token.signal();assertSame(processDefinition.getNode(“end“), token.getNode();运行测试,得到的结果同上例完全相同。到这里为止,我们已经做了一个非常简单的流程示例,对 JBPM 的流程定义及使用方法也有了初步的概念,在下面的内容中我们将着重来讨论 JBPM 的流程定义方法,及各个节点的主要含义及使用方法。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报