jBPM4.4工作流开发指南

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一下是 leave.jpdl.xml 的源码: <?xml version="1.0" encoding="UTF-8"?>
<process name="leave" xmlns="http://jbpm.org/4.4/jpdl"> <start g="198,15,48,48" name="start1"> <transition to="申请"/> </start> <task assignee="#{owner}" form="request.jsp" g="175,94,92,52" name="
目录(External Folder...) 15) 找到 jBPM 安装程序下的 src 目录 16) 点击选择(Choose) 17) 点击两次'确定'(Ok)会关闭所有对话框
1.4 在目录中添加 jPDL4 模式
如 果你 想直 接编 辑 XML 源码 , 最好 是在 你的 XML 目 录中 指定一 下模 式 (schema) ,这样当你在编辑流程源码的时候,可以更好的帮助你编写代码。 1) 点击窗口 --> 属性(Windows --> Preferences) 2) 选择 XML --> 目录(XML --> CataLog) 3) 点击添加(Add) 4) 添加 XML 目录(Add XML Catalog Entry)的窗口打开 5) 点击 map-icon 的图标下面的按钮并选择文件系统(File System) 6) 在打开的对话框中, 选择 jBPM 安装目录下 src 文件夹中 jpdl.xsd 文件 7) 点击打开(Open)并且关闭所有的对话框
④设置决策节点,选中
,在属性标签 General 中按如下所示填写:
Name(节点名称) ,Expression(判断表达式,其中 day 是在流程流转过程中的一个记录 天数的属性,整个表达式的意思是天数大于 3 天需要老板审批,如果天数不大于 3 天,经 理审批通过后就直接结束流程,不需要老板审批) 。 ⑤设计好流程后,点击保存,IDE 将自动为你生成一个 png 的流程图片,切记不可在 xml 源码界面进行保存,否则会生成不完整的流程图片。 ⑥在点击下方的“Source”属性,即可看到流程定义文件的 xml 源码
2.4 新建简单的请假流程
1)新建一个 jbpm4.4 的流程定义文件 右键点击 srcNewOther,选择 JBoss jBPM 下的 Jbpm 4 Process Definition,文 件名写 leave,版本号写 4.4 即可。
3)用流程设计器打开新建的 leave.jpdl.xml。 右键点击 leave.jpdl.xmlOpen WithjBPM jPDL4 Editor,,看见如下效果
3)设计请假流程 在这个简单的请假流程中,包含开始(start) 、结束(end) 、任务(task) 、决策(decision) 四种流程元素。 流程设计如下:
4)详细设计流程中的各任务节点的流转条件 ①选中“申请”任务节点,在 properties(属性)中,General 标签的 Name(属性 值)填为“申请” ,Assignment 标签的 Type 选择 assignee(参与者,选择这个,可以指 定该任务节点的直接参与者) ,Expression 的属性值填为#{owner}(即指定这个任务节点 的直接参与者就是这个流程的启动者) 。
2.3 加入 jbpm 所需要的配置文件
大家可以从 jbpm-4.4 解压后的文件下,在路径\examples\src 中找到以下文件,加入到 项目工程的 src 中
其中 jbpm.hibernate.cfg.xml 是配置 jbpm4.4 的 hibernate 配置文件,包括数据源的配 置,和一般的 hibernate.cfg.xml 配置文件差不多。Jbpm.mailkit 开头的文件,是用于邮 件功能的配置。
2、实例教程讲解
这节我们将使用建立一个简单请假流程项目
2.1 建立项目
在 eclipse 中新建一个 Dynamic Web Project 的项目 jbpm4leave。
2.2 加入 jbpm 用户库
1)邮件点击新建的项目 jbpm4leave—>Properties 2)如下图说示加入用户库
1、开发环境搭建
1.1 必须安装的软件
1) jbpm-4.4.zip 2) jdk 5 或者更高版本 3) 支持的数据库有 hsqldb、mysql 、oracle 、postgresql 、sybase,本说明以 oracle 作为数据库。 4) GPD 插件(jbpm 在 IDE 中的流程设计器), eclipse(建议 3.6 版本以上)或 者 myeclipse ( 建 议 8.1 版 本 以 上 ) 安 装 插 件 所 需 的 zip 在 解 压 后 jbpm-4.4\install\src\gpd 中的 jbpm-gpd-site.zip,本说明以 eclipse3.6 为 例。
至此工程的 src 文件下就有下面这些文件:
2.5 发布流程
Jbpm 的流程发布其实很简单,只要使用 jbpm 已经封装好的方法进行使用,即可。 我们新建一个 deploy.jsp 的页面用户发布流程。在此讲解使用 zip 文件打包发布流程。 1) 将之前建立好的 leave.jpdl.xml 和 leave.png 文件,一起打包进 leave.zip 文件。
//将ZIP文件封转到IO流里 InputStream is = new FileInputStream(new File(file)); ZipInputStream zis = new ZipInputStream(is); //将ZIP流程文件发布到pvm(流程虚拟机中,他会把ZIP包中的xml文件和png 图片存储到数据库中) repositoryService.createDeployment() .addResourcesFromZipInputStream(zis).deploy(); zis.close(); is.close(); out.println("发布流程成功<br />"); out.println("<a href='task-write.jsp'>返回</a><br />"); } catch (Exception e) { e.printStackTrace(); out.println("发布流程失败"); } } %> <script type="text/javascript"> function readFile(obj) { document.getElementById("file").value = obj.value; } </script> <font color="red">可直接发布zip文件</font><br /> <form name="form1" method="post" action="deploy.jsp"><label> 发布流程文件 <input type="file" name="processDef" onchange="readFile(this)"> </label> <label> <input type="submit" name="Submit" value="提交"> </label></form> </body> </html> 3) 测试发布成功结果
2) deploy.jsp 代码如下: <%@ page language="java" contentType="text/html; charset=gb2312"%> <%@page import="java.io.File,java.io.FileInputStream,java.io.InputStream, java.util.zip.ZipInputStream,java.util.*,org.jbpm.api.*,java.util.zip .*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Insert title here</title> </head> <body> <% request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String deployFile = request.getParameter("processDef"); if (deployFile != null && deployFile != "") {
//必须使用的,流程引擎 ProcessEngine processEngine = Configuration.getProcessEngine(); RepositoryService repositoryService = processEngine .getRepositoryService(); try { String file = deployFile;
1.2 Байду номын сангаас置 JBPM 运行时
1) 打开 window preferences 2) 选择 JBoss jBPM --> jBPM 4 --> Runtime Locations 3) 点击 Add... 4) 在 Add Location 对话框中,输入 一个名字, 比如 jbpm-4.0 然后点击 Search... 5) 在 Browse For Folder 对话框中,选择你的 jbpm 根目录,然后点击 OK 6) 点击 OK 在 Add Location 对话框中
②选中“经理审批”任务节点,在 properties(属性)中,General 标签的 Name(属 性值)填为“经理审批” ,Assignment 标签的 Type 选择 candidate-groups(参与者, 选择这个, 可以该任务节点有某个用户组来参与) , Expression 的属性值填为 manager (即 指定这个任务节点的有 manager 这个用户组来完成) 。 ③“老板审批”节点同“经理审批”任务节点设置类似,只是 Expression 改为 boss
1.3 定义 jBPM 用户库
1) 点击窗口 --> 属性(Windows --> Preferences) 2) 选择 Java --> 创建路径 --> 用户类库( Java --> Build Path --> User Libraries) 3) 点击新建(New) 4) 类型名字 jBPM Libraries 5) 点击添加 JARs(Add JARs...) 6) 找到 jBPM 安装程序下的 lib 目录 7) 选择 lib 下的所有 jar 文件并点击打开(Open) 8) 选择 jBPM Libraries 作为入口 9) 重新点击添加 JARs(Add JARs) 10) 在 jBPM 的安装程序的根目录下选择 jbpm.jar 文件 11) 点击打开(Open) 12) 在 jbpm.jar 下选择源码附件(Source attachment)作为入口 13) 点击编辑(Edit) 14) 在源码附件的配置(Source Attachment Configuration)对话框中,点击
申请">
<transition to="经理审批"/>
</task> <task candidate-groups="manager" form="manager.jsp" g="176,174,92,52" name="经理审批"> <transition g="-32,-8" name="批准" to="exclusive1"/> <transition g="120,199;121,122:-42,-18" name="驳回" to="申请"/> </task> <decision expr="#{day > 3 ? '老板审批' : '结束'}" g="196,259,48,48" name="exclusive1"> <transition g="-39,-10" name="结束" to="end1"/> <transition g="344,283:-71,-17" name="老板审批" to="老板审批"/> </decision> <task candidate-groups="boss" form="boss.jsp" g="299,305,92,52" name="老板审批"> <transition g="342,378:" to="end1"/> </task> <end g="196,354,48,48" name="end1"/> </process>
相关文档
最新文档