jbpm5安装说明
JBPM安装及请假流程实例
![JBPM安装及请假流程实例](https://img.taocdn.com/s3/m/414cea961711cc7930b7164f.png)
1、开垦环境拆修之阳早格格创做1)jdk 5大概者更下版本2)收援的数据库有hsqldb、mysql、oracle、postgresql、sybase,本证明以oracle动做数据库.3)GPD插件(jbpm正在IDE中的过程安排器), \install\src\gpd中的,本证明以eclipse3.6为例.1)挨开window preferences2)采用 JBoss jBPM --> jBPM 4 --> Runtime Locations3)面打 Add...4)正在Add Location 对于话框中,输进一个名字,比圆jbpm-4.0而后面打 Search...5)正在Browse For Folder 对于话框中,采用您的jbpm 根目录,而后面打 OK6)面打 OK 正在 Add Location 对于话框中1.3定义jBPM 用户库1)面打窗心 --> 属性(Windows --> Preferences)2)采用Java --> 创修路径--> 用户类库(Java --> Build Path --> User Libraries)3)面打新修(New)4)典型名字jBPM Libraries5)面打增加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)动做出心14)正在源码附件的摆设(Source Attachment Configuration)对于话框中,面打目录(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)而且关关所有的对于话框2、真例教程道解那节咱们将使用修坐一个简朴请假过程名目2.1 修坐名目正在eclipse中新修一个Dynamic Web Project的名目jbpm4leave.2.2 加进jbpm用户库1)邮件面打新修的名目jbpm4leave—>Properties2.3 加进jbpm所需要的摆设文献大家不妨从jbpm-4.4解压后的文献下,正在路径\examples\src中找到以下文献,加进到名目工程的src中其中jbpm.hibernate.cfg.xml是摆设jbpm4.4的hibernate摆设文献,包罗数据源的摆设,战普遍的hibernate.cfg.xml摆设文献好已几.Jbpm.mailkit开头的文献,是用于邮件功能的摆设.2.4 新修简朴的请假过程左键面打src New Other,采用JBoss jBPM下的Jbpm 4 Process Definition,文献名写leave,版本号写4.4即可.3)用过程安排器挨开新修的leave.jpdl.xml.Open With jBPM jPDL4 Editor,,瞅睹如下效验3)安排请假过程正在那个简朴的请假过程中,包罗开初(start)、中断(end)、任务(task)、计划(decision)四种过程元素.过程安排如下:4)仔细安排过程中的各任务节面的流转条件①选中“申请”任务节面,正在properties(属性)中,General标签的Name(属性值)挖为“申请”,Assignment标签的Type采用assignee (介进者,采用那个,不妨指定该任务节面的间接介进者),Expression的属性值挖为#{owner}(即指定那个任务节面的间接介进者便是那个过程的开用者).②选中“经理审批”任务节面,正在properties(属性)中,General 标签的Name(属性值)挖为“经理审批”,Assignment标签的Type 采用candidate-groups(介进者,采用那个,不妨该任务节面有某个用户组去介进),Expression的属性值挖为manager(即指定那个任务节面的有manager那个用户组去完毕).③“老板审批”节面共“经理审批”任务节面树坐类似,不过Expression改为boss④树坐计划节面,选中,正在属性标签General中按如下所示挖Name(节面称呼),Expression(推断表白式,其中day是正在过程流转历程中的一个记录天数的属性,所有表白式的意义是天数大于3天需要老板审批,如果天数没有大于3天,经理审批通过后便间接中断过程,没有需要老板审批).⑤安排佳过程后,面打保存,IDE将自动为您死成一个png的过程图片,切记没有成正在xml源码界里举止保存,可则会死成没有完备的过程图片.⑥正在面打下圆的“Source”属性,即可瞅到过程定义文献的xml 源码一下是leave.jpdl.xml的源码:<?xml version="1.0"encoding="UTF-8"?><process name="leave"xmlns="/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="申请"><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>2.5 颁布过程Jbpm的过程颁布本去很简朴,只消使用jbpm已经启拆佳的要领举履止用,即可.咱们新修一个deploy.jsp的页里用户颁布过程.正在此道解使用zip文献挨包颁布过程.1)将之前修坐佳的leave.jpdl.xml战leave.png文献,所有挨包进leave.zip文献.2)deploy.jsp代码如下:<%@page language="java"contentType="text/html; charset=gb2312"%> <%@pageimport="java.io.File,java.io.FileInputStream,java.io.InputStream,java.util.zi p.ZipInputStream,java.util.*,org.jbpm.api.*,java.util.zip.*"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN""/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;//将ZIP文献启转到IO流里InputStream is = new FileInputStream(new File(file)); ZipInputStream zis = new ZipInputStream(is);//将ZIP过程文献颁布到pvm(过程假造机中,他会把ZIP包中的xml文献战png图片保存到数据库中)repositoryService.createDeployment().addResourcesFromZipInputStream(zis).deploy();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)尝试颁布乐成截止4)查看已颁布乐成的过程已经有的一个查看过程的页里,源码如下:<%@page language="java"contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><%@include file="/head.jsp"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN""/TR/html4/loose.dtd"><%String username = (String) session.getAttribute("username");//过程引擎ProcessEngine processEngine = Configuration.getProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService();//过程定义集中List<ProcessDefinition> pdList = repositoryService.createProcessDefinitionQuery().list();<html><head><meta http-equiv="Content-Type"content="text/html; charset=GB18030"> <title>Insert title here</title><style type="text/css">body {font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica,sans-serif;color: #4f6b72;background: #E6EAE9;}a {color: #c75f3e;}#mytable {padding: 0;margin: 0;}caption {padding: 0 0 5px 0;width: 700px;font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; text-align: right;}th {font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72;border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;border-top: 1px solid #C1DAD7;letter-spacing: 2px;text-transform: uppercase;text-align: left;padding: 6px 6px 6px 12px;background: #CAE8EA;}th.nobg {border-top: 0;border-left: 0;border-right: 1px solid #C1DAD7;background: none;}border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;background: #fff;font-size: 11px;padding: 6px 6px 6px 12px;color: #4f6b72;}td.alt {background: #F5FAFA;color: #797268;}th.spec {border-left: 1px solid #C1DAD7;border-top: 0;background: #fff;font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; }th.specalt {border-left: 1px solid #C1DAD7;border-top: 0;background: #f5fafa;font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #797268;}body.td {font-size: 11px;}</style></head><body><TABLE width="100%"id="mytable"id="mytable"><caption>过程定义</caption><thead><tr><th class="spec">过程id</th><th>过程称呼</th><th>版本号</th><th>过程简略</th><th>开用过程</th></tr><tbody><%for (ProcessDefinition pd : pdList) {%><tr><th class="spec"><%=pd.getId()%></th><td class="alt"><%=pd.getName()%></td><td class="alt"><%=pd.getVersion()%></td><td class="alt"><a href="remove.jsp?id=<%=pd.getDeploymentId()%>">简略过程</a></td><td class="alt"><a href="start.jsp?id=<%=pd.getId()%>">开用过程</a></td></tr><%}%></tbody></table></body></html>5)查看过程颁布情况6)过程定义所安排到的表JBPM4_DEPLOYMENTJBPM4_DEPLOYPROP//存搁过程定义的版本号,使用的jbpm版本号,已经过程名JBPM4_JOB//存搁timer的定义JBPM4_LOB //存搁过程定义的xml战png图片文献2.6 开用过程1)开用过程,本去很简朴,需要赢得过程定义的ID,使用jbpm已经启拆佳的过程开用要领便不妨了.<%@page import="java.util.*,org.jbpm.api.*,java.util.*"%><%request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");try{//过程引擎//过程真例服务ExecutionService executionService = processEngine.getExecutionService();Map map = new HashMap();//拔出过程中存搁的数据,那里存搁过程开用者的名字,参数id是过程定义的IDmap.put("owner", session.getAttribute("username")); executionService.startProcessInstanceById(request.getParameter("id"), map);response.sendRedirect("task-personal-list.jsp");}catch(Exception e){e.printStackTrace();}%>2)查看代庖任务//<%@page language="java"contentType="text/html; charset=GB18030" pageEncoding="GB18030"%><%@page import="org.jbpm.api.*,org.jbpm.api.task.*"%><%@include file="/head.jsp"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN""/TR/html4/loose.dtd"><%String username = (String) session.getAttribute("username");//过程引擎ProcessEngine processEngine = Configuration.getProcessEngine();//任务引擎TaskService taskService = processEngine.getTaskService();//目前用户代庖的任务集中List<Task> taskList2 = taskService.findPersonalTasks(username);%><html><head><meta http-equiv="Content-Type"content="text/html; charset=GB18030"> <title>Insert title here</title><style type="text/css">body {font: normal 11px auto "Trebuchet MS", Verdana, Arial, Helvetica,sans-serif;color: #4f6b72;a {color: #c75f3e;}#mytable {padding: 0;margin: 0;}caption {padding: 0 0 5px 0;width: 700px;font: italic 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; text-align: right;}th {font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #4f6b72;border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;border-top: 1px solid #C1DAD7;letter-spacing: 2px;text-transform: uppercase;text-align: left;padding: 6px 6px 6px 12px;background: #CAE8EA;}th.nobg {border-top: 0;border-left: 0;border-right: 1px solid #C1DAD7;background: none;}td {border-right: 1px solid #C1DAD7;border-bottom: 1px solid #C1DAD7;background: #fff;font-size: 11px;padding: 6px 6px 6px 12px;color: #4f6b72;}td.alt {background: #F5FAFA;color: #797268;th.spec {border-left: 1px solid #C1DAD7;border-top: 0;background: #fff;font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;}th.specalt {border-left: 1px solid #C1DAD7;border-top: 0;background: #f5fafa;font: bold 10px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; color: #797268;}body.td {font-size: 11px;}</style></head><body><table width="100%"id="mytable"id="mytable"><caption>部分待办任务</caption><thead><tr><th class="spec">过程ID</th><th>目前节面</th><th>查看仔细疑息</th><th>查看过程图</th></tr></thead><tbody><%for (Task task : taskList2) {%><tr><td class="alt"><%=task.getId()%></td><td class="alt"><%=task.getName()%></td><td class="alt"><ahref="<%=task.getFormResourceName()%>?id=<%=task.getId()%>">查看仔细疑息</a></td><td class="alt"><a href="view.jsp?id=<%=task.getExecutionId() %>">查看过程图</a></td></tr><%}%></tbody></table></body></html>3)真止如图://过程列表//过程开用后,成为目前用户的待办任务2.7 过程操持(申请)由于咱们的过程如下,开用开用过程后,过程便加进了“申请”那个过程节面(注:过程开用后,会正在过程第一个节面所有人/所有组的代处世项中找到).所以,目前便要正在申请中举止操持.由于咱们正在定义过程时如下定义了:<task assignee="#{owner}"form="request.jsp"g="175,94,92,52"name="申请"><transition to="经理审批"/></task>定义了,“申请”那个节面是有过程开用者举止操持的,form指定操持“申请”那个节面的处理页里,用户不妨自己定义处理页里.Transition 指定申请过程的下一个出心.1)正在代处世项中,咱们有一止如下代码:<ahref="<%=task.getFormResourceName()%>?id=<%=task.getId()%>">查看仔细疑息</a>正在那里会传一个任务ID,所以正在request.jsp中必须要博得那个任务ID.<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");%><fieldset><legend>申请</legend><form method="post"onsubmit="return validate()"><input type="hidden"name="taskId"value="${param.id}">申请人:<input type="text"name="owner"value="${sessionScope['username']}"/><br />请假时间:<input type="text"name="day"value=""onchange="change(this)"/><br/>请假本果:<textarea name="reason"></textarea><br/><input type="submit"/></form></fieldset><script type="text/javascript">function change(obj){var reg = /^[1-9]\d*$/;if (!reg.test(obj.value)){alert("天数必须为正整数!");obj.value="";obj.focus();returnfalse;}}function validate(){var obj = document.getElementsByName("day")[0].value;var reg = /^[1-9]\d*$/;if (!reg.test(obj)){alert("天数必须为正整数!");document.getElementsByName("day")[0].value="";document.getElementsByName("day")[0].focus();returnfalse;}else{document.forms[0].action="submit.jsp";document.forms[0].submit();returntrue;}}</script></body></html>前台隐现如下:挖写完真质后,页里将会提接到submit.jsp,将对于提接的数据举止处理,共时过程继承流转,所以正在提接的的页里中要处理二件事务:1、处理用户提接数据,将数据战过程真例举止绑定2、将过程继承流转,提接给下一个节面操持。
jbpm下载路径及安装说明
![jbpm下载路径及安装说明](https://img.taocdn.com/s3/m/2a57a3fa9e31433239689336.png)
String pid = processInstance.getId();
//让state1活动继续往下执行,并进入结束活动,流程结束
//主要用来启动流程,执行流程
ExecutionService executionService = null;
protected void setUp() {
processEngine = new Configuration().buildProcessEngine();
3、左边Browse Software选择add site---->Add from Archive File;
4、Name写jbpm4.3,url是jbpm4.3解压缩目录下install-->src--->gpd-->jbpm-gpd-site.zip的文件路径,然后点击OK;
5、左边Browse Software下会出现Personal Sites,在底下有jbpm4.3的一个树,打开树底下7个分别右击选择add to profile;
}
protected void tearDown() {
repositoryService.deleteDeploymentCascade(deployId);
}
public void testEndHelloWorld() {
processInstance = executionService.signalExecutionById(pid);
ห้องสมุดไป่ตู้ assertTrue(processInstance.isEnded());
jBPM 5 教程:实践指南说明书
![jBPM 5 教程:实践指南说明书](https://img.taocdn.com/s3/m/c078c028f4335a8102d276a20029bd64783e62f4.png)
About the T utorialOrganizations throughout the world have been searching for a structured approach of designing their actions or transactions which can be transformed by implementing them using automated solutions.jBPM is one such tool that helps business automation needs of an organization. This tutorial provides an overview of how to use jBPM 5 in practice.AudienceThis tutorial is designed for Java professionals who would like to understand the features and capabilities of jBPM in a simple and easily understandable way. PrerequisitesYou are expected to have a basic understanding of business processes and application of technology to automate manual processes.Disclaimer & CopyrightCopyright 2015 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute, or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness, or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at **************************T able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Disclaimer & Copyright (i)Table of Contents .................................................................................................................................. i i OVERVIEW . (1)What is a Business Process? (1)What is jBPM? (2)Features of JBPM (2)JBPM – ECLIPSE PLUGIN (3)JBPM – HELLO WORLD! (8)JBPM – COMPONENTS (18)The Semantic Module (18)The Process Engine (18)Persistence and Transactions (19)Audit/History Logs (19)JBPM – WORKFLOW COMPONENTS (20)JBPM – DRAW AND VALIDATE A WORKFLOW (23)JBPM – EXAMPLE (32)jBPM 5 3JBPM stands for "Java Business Process Management". It is a JBoss product which is an open source framework. Before moving further, let us first define a business process.What is a Business Process?By definition, a business process is a sequence of tasks that takes place in a repeatable order, executed by humans and/or systems to achieve a business goal. It describes the order (using a flowchart) in which a series of steps needs to be executed. A business process can significantly improve the visibility and agility of a business logic.Let us take an example. The following screenshot depicts a workflow/flowchart that most IT professionals can relate to. It is a common process that is followed in most organizations to appraise the employees based on their performance.A Typical Organizational WorkflowThe process takes place in the following order:1. E mployees self-evaluate themselves and submit the report to their Project Managers.2. Y our performance is then evaluated by the Project Manager and the HR Manager.Based on the evaluation, they give the employees a rating.3. T he final rating or performance feedback is then relayed back to the employees.This process is applicable for almost all the employees and hence, it is a very good example to understand a business process. It is a sequence of tasks and it happens in a particular order.O VERVIEWjBPM 54What is jBPM?Business process is a key concept to understand any organizational framework. A technology like jBPM helps in managing complex business processes in an efficient way. JBPM is a tool that can orchestrate a business process effectively. Generally, every enterprise-level application will have a sequence of tasks which are executed in a specific order and those processes can be orchestrated with the help of jBPM.The beauty of jBPM is that it is similar to a flowchart. It can be easily understood by business analysts as well. jBPM can be embedded in a Java application and run as a service. Features of JBPMjBPM is a lightweight, open source, fully embeddable process engine written in Java. Its most notable features are listed below:∙jBPM executes business processes which are designed using the BPMN 2.0 specifications.∙jBPM can be fully integrated with Eclipse and similar IDEs to provide drag and drop support to create a workflow.∙jBPM has UI tools available to involve business analysts and users right from the design phase.∙jBPM supports persistence and transaction management with the help of JPA and JTA.∙One can define custom work item handlers to create a user-defined task which can be used as a component later on for other workflows.jBPM 5 5The following are the Prerequisites to install jBPM Plugin:∙Java 1.5 (or higher) SE JDK ∙ Eclipse 4.2 or any version and the jBPM pluginAs jBPM is written in Java, we will be covering how to add the desired plugins in this section. Considering maximum Java users use Eclipse, let us see how to add the jBPM plugin in Eclipse. Download the binaries from the following link:/drools/release/5.3.0.Final/Don't be confused on seeing Drools here. The same plugins are used for jBPM. If you already have installed Drools plugin, then you can skip the installation steps.Extract it to your hard disk. Then, launch Eclipse and go to Help Install New Software.J BPM – ECLIPSE PLUGIN6Click Add Repository:Click the Local button and then select ".../binaries/org.drools.updatesite" (where you downloaded on your machine)Select Drools and jBPM and then click the Next button.78Again Click Next and select “I accept the terms of license agreement” and then click Finish. The software installation starts:9Post successful installation, you will get the following dialog box:Click Yes. Eclipse restarts. Now, go to Windows -> Preferences -> Drools -> Drools Flow NodesjBPM 5 If you are able to see the nodes as shown in the above screenshot, it proves that the plugins were successfully installed. Now we are ready to write our first jBPM program.10jBPM 5 11Here in this chapter, we will write our first program "Hello World" using jBPM. Follow the steps given below:Go to File -> New -> Drools Project:Click Next . Give an appropriate name for the first project : "HelloWorld" in our case.J BPM – HELLO WORLD!Click Next. Select the bottom two checkboxes, viz:∙Add a sample HelloWorld process file to this project∙Add a sample class for loading and executing HelloWorld process12Click Next. Click Configure Workspace Settings (marked red in the following screenshot):13Click the Add button:1415End of ebook previewIf you liked what you saw…Buy it from our store @ https://16。
工作流框架jbpm使用说明书
![工作流框架jbpm使用说明书](https://img.taocdn.com/s3/m/54705bfdfab069dc50220120.png)
工作流框架JBPM使用说明书(V1.0)长城计算机软件与系统有限公司目录1引言 (2)1.1简介 (2)1.2使用版本 (2)1.3使用环境 (2)2使用说明 (3)2.1建立数据库 (3)2.2建立项目 (6)2.3建立工作流定义 (6)2.4工作流的发布 (8)2.5工作流中定义的类 (9)1引言1.1简介JBoss JBPM是一个灵活、可扩展的流程语言框架。
JPDL是建立在这个通用框架之上的一个流程语言。
它使用直观的流程语言以图形化的方式来表示业务流程,使用术语任务、异步通讯等待状态、定时器、自动操作等。
为了将这些操作绑定在一起,JPDL提供了强有力的、可扩展的流程控制机制。
JBoss jBPM有一个具有最小的依赖性和尽可能简单易用的java库。
当然它也可以用在吞吐量极为关键的J2EE集群应用服务器环境中。
持久层采用Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。
1.2使用版本本例中使用的是JBPM-3.2-GA版本,需要JDK 1.4.2及以上版本,下载地址为:/jbossjbpm/jbpm_downloads/,建议下载完整包。
在jbpm安装路径\designer\eclipse中有支持图形化设计的插件,将其加到eclipse中,在eclipse的窗口-首选项中如果有jboss jbpm选项,则安装成功。
1.3使用环境本说明书中用到的软件环境如下:操作系统:Window XP sp3JDK:1.4.2_08IDE:MyEclipse 5.5应用服务器:Weblogic 8.1 Tomcat 5.0数据库:oracle 9i2使用说明该示例演示的是一个公司报销流程。
普通员工可以填写报销单,然后提交主管审批;主管审批可以有三种可能:一是主管可以驳回请求,那么报销人需要重填报销单,或者取消报销操作;二是主管不同意请求,请求直接结束;三是主管同意请求,那又存在两种情况,一是如果报销总费用大于1000的话那么会自动转到老板那里,如果小于1000就直接进入财务处理子流程,老板审批的话有两种可能,一是同意进入财务处理子流程,二是不同意请求直接结束。
jbpm5安装过程遇到的问题
![jbpm5安装过程遇到的问题](https://img.taocdn.com/s3/m/437a85c1aa00b52acfc7cabe.png)
1、在命令行执行ant install.demo时,报错信息如下:download.h2:[echo] Getting h2 ...[get] Getting: /maven2/com/h2database/h2/1.2.124/h2-1.2.124.jar[get] To: E:\ServerFiles\jbpm-installer\db\driver\h2.jar[get] Error getting /maven2/com/h2database/h2/1.2.124/h2-1.2.124.jar to E:\ServerFiles\jbpm-installer\db\driver\h2.jarBUILD FAILEDE:\ServerFiles\jbpm-installer\build.xml:36: .SocketException: Network isunreachable: connectat .PlainSocketImpl.socketConnect(Native Method)at .PlainSocketImpl.doConnect(Unknown Source)at .PlainSocketImpl.connectToAddress(Unknown Source)at .PlainSocketImpl.connect(Unknown Source)at .SocksSocketImpl.connect(Unknown Source)at .Socket.connect(Unknown Source)at .Socket.connect(Unknown Source)at workClient.doConnect(Unknown Source)at .www.http.HttpClient.openServer(Unknown Source)at .www.http.HttpClient.openServer(Unknown Source)at .www.http.HttpClient.<init>(Unknown Source)at .www.http.HttpClient.New(Unknown Source)at .www.http.HttpClient.New(Unknown Source)at .www.protocol.http.HttpURLConnection.getNewHttpClient(UnknownSource)at .www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)at .www.protocol.http.HttpURLConnection.connect(Unknown Source)at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection(Get.java:661)at org.apache.tools.ant.taskdefs.Get$GetThread.get(Get.java:581)at org.apache.tools.ant.taskdefs.Get$GetThread.run(Get.java:571)解决方法:碰到这个问题,我先去E:\ServerFiles\jbpm-installer\build.xml文件找到download.h2部分,查看${h2.download.url}是否通的,我这里连接以后是通的,把h2-1.2.124.jar下载到指定目录(E:\ServerFiles\jbpm-installer\db\driver\)后,再把build.xml文件中的<target name="download.h2.check">……<available file="${install.home}/db/driver/h2.jar" />……</target><target name="download.h2" depends="download.h2.check" if="h2.not.available">……<get src="${h2.download.url}" dest="${install.home}/db/driver/h2.jar" /></target>改成:<target name="download.h2.check">……<available file="${install.home}/db/driver/h2-1.2.124.jar" />……</target><target name="download.h2" depends="download.h2.check" if="h2.not.available"> ……<get src="${h2.download.url}" dest="${install.home}/db/driver/h2-1.2.124.jar" /> </target>再试就行了(或者把下载的jar包改名为h2.jar)2、在上一个问题解决之后,再次执行ant install.demo,接着报错:download.eclipse:[echo] Getting Eclipse ...[get] Getting: /technology/epp/downloads/release/helios/SR2/eclipse-java-helios-SR2-win32.zip[get] To: E:\ServerFiles\jbpm-installer\lib\eclipse-java-helios-SR2-win32.zip[get] Error getting /technology/epp/downloads/r elease/helios/SR2/eclipse-java-helios-SR2-win32.zip to E:\ServerFiles\jbpm-installer\lib\eclipse-java-helios-SR2-win32.zipBUILD FAILEDE:\ServerFiles\jbpm-installer\build.xml:164: .SocketException: Network is unreachable: connectat .PlainSocketImpl.socketConnect(Native Method)at .PlainSocketImpl.doConnect(Unknown Source)at .PlainSocketImpl.connectToAddress(Unknown Source)at .PlainSocketImpl.connect(Unknown Source)at .SocksSocketImpl.connect(Unknown Source)at .Socket.connect(Unknown Source)at .Socket.connect(Unknown Source)at workClient.doConnect(Unknown Source)at .www.http.HttpClient.openServer(Unknown Source)at .www.http.HttpClient.openServer(Unknown Source)at .www.http.HttpClient.<init>(Unknown Source)at .www.http.HttpClient.New(Unknown Source)at .www.http.HttpClient.New(Unknown Source)at .www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)at .www.protocol.http.HttpURLConnection.plainConnect(Unknown Sour ce)at .www.protocol.http.HttpURLConnection.connect(Unknown Source)at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection(Get.java:661)at org.apache.tools.ant.taskdefs.Get$GetThread.get(Get.java:581)at org.apache.tools.ant.taskdefs.Get$GetThread.run(Get.java:571)解决方法:刚开始以为这个问题和之前碰到的差不多,后来发现是公司网络原因,所以只需要手动把eclipse-java-helios-SR2-win32.zip下载到指定文件夹(E:\ServerFiles\jbpm-installer\lib\)下即可3、继续执行会报错:download.eclipse.gef:[echo] Getting Eclipse GEF ...[get] Getting: /tools/gef/downloads/drops/3.6.2/R201102251600/GEF-SDK-3.6.2.zip[get] To: E:\ServerFiles\jbpm-installer\lib\GEF-SDK-3.6.2.zip[get] Error getting /tools/gef/downloads/drops/3.6.2/R201102251600/GEF-SDK-3.6.2.zip to E:\ServerFiles\jbpm-installer\lib\GEF-SDK-3.6.2.zipBUILD FAILEDE:\ServerFiles\jbpm-installer\build.xml:178: .SocketException: Network is unreachable: connectat .PlainSocketImpl.socketConnect(Native Method)at .PlainSocketImpl.doConnect(Unknown Source)at .PlainSocketImpl.connectToAddress(Unknown Source)at .PlainSocketImpl.connect(Unknown Source)at .SocksSocketImpl.connect(Unknown Source)at .Socket.connect(Unknown Source)at .Socket.connect(Unknown Source)at workClient.doConnect(Unknown Source)at .www.http.HttpClient.openServer(Unknown Source)at .www.http.HttpClient.openServer(Unknown Source)at .www.http.HttpClient.<init>(Unknown Source)at .www.http.HttpClient.New(Unknown Source)at .www.http.HttpClient.New(Unknown Source)at .www.protocol.http.HttpURLConnection.getNewHttpClient(UnknownSource)at .www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)at .www.protocol.http.HttpURLConnection.connect(Unknown Source)at org.apache.tools.ant.taskdefs.Get$GetThread.openConnection(Get.java:661)at org.apache.tools.ant.taskdefs.Get$GetThread.get(Get.java:581)at org.apache.tools.ant.taskdefs.Get$GetThread.run(Get.java:571)解决方法:跟以上解决方法一样4、这个步骤可能会出现了一个问题,启动h2数据库成功后,在启动JBOSS的过程出现了jboss did not startwithin 5 minutes的错误,也就是命令行停在那里,直到5分钟超时报错。
jbpm5安装DEMO
![jbpm5安装DEMO](https://img.taocdn.com/s3/m/5c236570f242336c1eb95e0b.png)
jbpm5 Demo 安装2.1 先决条件首先需要安装JDK和ANT,并配置相应的环境变量。
下载地址:JDK:/technetwork/java/javase/downloads/index.htmlANT:/bindownload.cgi根据自己的操作系统选择对应的版本下载,安装后配置JAVA_HOME,CLASSPATH及ANT_HOME。
2.2 installer安装接着下载jbpm相关的安装文件(jbpm-5.0-SNAPSHOT-installer.zip),下载地址:/hudson/job/jBPM5/lastSuccessfulBuild/artifact/target/jbpm-5.0-SN APSHOT-installer.zip完整版下载可跳过2.3中其他文件下载/project/jbpm/jBPM%205/jbpm-5.0-Final/jbpm-5.0.0-installer -full.zip2.3 demo安装将installer解压后,命令行下进入到该解压后文件夹(如D:/jbpm5),执行以下脚本:ant install.demo执行该脚本后,ant会根据当前文件夹下的build.xml下载以下文件:(1)birt-runtime-2_3_2_2.zip(2)designer-1.0.0.047-SNAPSHOT.war(3)designer-1.0.0.047-SNAPSHOT-jboss.war(4)drools-5.2.0.M1-eclipse-all.zip(5)drools-5.2.0.M1-guvnor.war(6)drools-5.2.0.M1-bin.zip(7)eclipse-java-helios-win32.zip(8)GEF-SDK-3.6.1.zip(9)jboss-5.1.0.GA.zip(10)jbpm-5.0-SNAPSHOT-bin.zip(11)jbpm-5.0-SNAPSHOT-eclipse-all.zip(12)jbpm-5.0-SNAPSHOT-gwt-console.zip(13)slf4j-jdk14-1.5.11.jar(14)h2-1.2.124.jar其中前13个会下载到根目录中的lib文件夹下,而h2.jar会下载到db\driver下。
JBPM5.1入门学习
![JBPM5.1入门学习](https://img.taocdn.com/s3/m/a1d1aa25e2bd960590c67743.png)
成都天府软件园有限公司JBPM5.1入门学习模板文档编号目录1简介 (3)1.1什么是JBPM (3)1.2概述 (3)1.3该版本的改进 (4)1.4E CLIPSE设计器 (5)1.5基于W EB的设计器 (6)1.6JBPM控制台 (6)2入门 (7)2.1下载 (7)2.2资源 (7)2.3环境准备 (8)2.3.1安装JDK (8)2.3.2安装Ant (8)3DEMO(官方例子)学习 (8)3.1下载安装包 (8)3.2启动DEMO (8)3.3学习使用E CLIPSE设计器 (9)3.4学习使用JBPM控制台 (10)3.5学习使用DROOLS-GUVNOR设计器 (12)4用TOMCAT+SSH+JOTM+MYSQL+JBPM移植DEMO (13)4.1环境准备 (13)4.1.1安装JDK (13)4.1.2安装Ant (13)4.1.3安装Eclipse (14)4.1.4安装Tomcat (14)4.1.5安装MySql (14)4.1.6下载Jotm (14)4.2移植H UMAN TASK S ERVICE PROJECT (15)4.2.1修改jbpm相关的数据库配置 (15)4.2.2第二次运行时注释掉以下代码 (16)4.3移植WF PROJECT (16)4.3.1创建jbpm的web工程 (16)4.3.2导入SSH相关的依赖 (22)4.3.3导入jbpm相关的依赖 (23)4.3.4使用jotm配置tomcat 数据源以支持JTA (24)4.3.5Jbpm相关配置文件更新 (28)4.3.6Java服务器端编码 (30)4.3.7Jsp客户端编码 (49)4.3.8Struts和spring的配置 (51)4.4部署和运行 (53)4.4.1启动Demo Human Task Service (53)4.4.2启动Tomcat (53)4.4.3运行Demo (54)附录A:MYSQL安装图解 (58)一、MYSQL5.1安装 (58)二、配置MYSQL SERVER (62)1简介1.1什么是JBPMJBPM,全称是Java Business Process Management(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。
JBPM5入门
![JBPM5入门](https://img.taocdn.com/s3/m/929d333367ec102de2bd89c2.png)
ant install.drools-eclipse.into.eclipse (最好手动以连接方式)
myeclipse手动连接方式:
目录:/8.5eclipse/dropins
slf4j-nop-1.5.8.jar
mysql.jar (or other driver)
btm-1.3.jar
还有jbpm runtime 的所有jar包
需要把runtime的jbpm-human-task-5.0.0.jar和jbpm-bam-5.0.0.jar内的有关数据库连接的配置文件全部修改成myeclips
jbpm5.入门。。
最近公司叫搞JBPM5分析出数据库结构。但是新东西。我英文又不好。所以就瞎琢磨。
最后main方法可以运行。数据库可以更改。但是把jar包部署tomcat或jboss成为web项目时。却总是报错。
现在总结一下过程。发出来记录一下。有会弄得高手给指导一下。
首先下载:/jbpm 5.0final全部程序
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new WSHumanTaskHandler());
ksession.startProcess("com.sample.bpmn.hello");
Startup JBoss AS:
ant start.jboss
Startup task service:
ant start.human.task
jbmp用户指南
![jbmp用户指南](https://img.taocdn.com/s3/m/0bac4df8770bf78a6529548e.png)
使用jBPM开发基于WEB的工作流,首先需要搭建好开发环境,经过一段时间的摸索,先将环境搭建的步骤做个简要说明:1.前提:Eclipse 3.2MyEclipse 5.0GAjBPM3.1.2(jbpm-starters-kit-3.1.2)Oracle 10gStruts1.2Hibernate32.至于数据库的脚本生成就不说了,有些参考资料讲得比较清楚,也有备份。
3.安装完JBPM的相关Eclipse插件以后,就可以使用Eclipse创建(new...)一个Process Project以及相关的ProcessDefinition,但这不是我们想要的。
我们想要的从步骤4开始。
4.使用Eclipse创建一个Web Project,加入必要的框架包,如Struts,JSTL等。
5.在构建路径中配置jBPM库,这也是环境搭建的重点。
由于使用默认的Process Project 可以帮我们创建好jBPM库,但没有帮我们创建WEB环境,因此,我们首先建立WEB工程,再来搭建JBPM库。
6.在工程的“Build Path”中选择配置构建路径(Config Build Path...)。
7.在打开的窗口中选择右边的Libraries标签库,通过Add Library选项,在打开的窗口中添加一个jBPM库。
8.可以看到没有所谓的jBPM库选项,因此要自己动手,选择User Library选项,创建一个自定义的用户库,取名为jBPM Library [jBPM Runtime]。
9.添加jar文件到我们自定义的User Library中,需要添加的内容是:jbpm-starters-kit-3.1.2\jbpm.3\lib目录下的所有jar包;jbpm-starters-kit-3.1.2\jbpm.3\build目录下的所有jar包。
OK,开发环境初步搭建完成,我们同样可以在新建的工程中自由的创建Process Definition 文件。
(BPM业务流程管理)jBPM5 用户手册-中文版
![(BPM业务流程管理)jBPM5 用户手册-中文版](https://img.taocdn.com/s3/m/20e85c0749649b6649d74740.png)
(BPM业务流程管理)jBPM5 用户手册-中文版jBPM用户手册目录jBPM用户手册-1-第一章概述-3-第二章安装-8-第三章流程-10-第四章BPMN2.0-21-第五章API-22-第六章人工任务-23-第七章领域-规范流程-33-第八章持久化-34-第九章控制台-39-第十章监视-42-第一章 概述本章节将介绍jBPM5的各种组件。
组件将带您快速的了解业务流程的生命周期和阶段。
这些阶段包括建模、部署、执行和监视。
1.建模jBPM允许用户通过图形的方式修改业务流程。
用户和开发者可通过三种方式修改BPMN2.0业务流程定义。
1.1.DroolsFlowforeclipse插件DroolsFlow支持创建,调试流程。
1.2.jBPM5foreclipse插件目前仍在开发中,仅支持创建流程。
完成后的版本将完全支持BPMN2.0规范。
1.3.基于WEB的Oryx编辑器(EXT实现)Oryx编辑器整合到Guvnor,它是一个存储流程的知识库。
Oryx编辑器支持查看、更新和创建流程。
2.部署Guvnor是一个知识库,用来存储流程、域模型、业务规则等。
它提供一个基于WEB 的控制台用来查找、修改和测试你的知识库内容。
3.执行3.1.流程引擎流程引擎是一个基于JAVA语言开发轻量级工作流引擎。
内置支持BPMN2.0规范的流程插件化的数据持久层与事务配置审计和历史日志记录基于通用的流程引擎目前流程引擎还没有实现BPMN2.0所有结点类型与属性,但大部分通用的结点类型已支持。
下图列出所有jBPM5已支持的元素:下面列出所有BPMN2.0定义的元素:流程对象事件*StartEvent(None,Conditional,Signal,Message,Timer)*EndEvent(None,Terminate,Error,Escalation,Signal,Message,Compensation)*IntermediateCatchEvent(Signal,Timer,Conditional,Message)立即捕获事件*IntermediateThrowEvent(None,Signal,Escalation,Message,Compensation)*Non-interruptingBoundaryEvent(Escalation,Timer)非中断边界事件*InterruptingBoundaryEvent(Escalation,Error,Timer,Compensation)活动*ScriptTask(Java、MVEL)JAVA或MVEL脚本表达式语言*Task*ServiceTask*UserTask*BusinessRuleTask*ManualTask*SendTask*ReceiveTask*ReusableSub-Process(CallActivity)可复用的子流程*EmbeddedSub-Process嵌入的子流程*Ad-HocSub-Process点对点的子流程*Data-Object关口*分支*Exclusive(Java,MVELorXPathexpressionlanguage)排斥*Inclusive(Java,MVELorXPathexpressionlanguage)包含*Parallel并行*Event-Based*合并*Exclusive排斥*Parallel并行*Lanes数据*Javatypelanguage*Processproperties*EmbeddedSub-Processproperties*活动properties连接对象*Sequenceflow时序流3.2.人工任务服务WS-HT人工任务服务是BPM业务流程管理的解决方案一个重要组成部分。
JBPM5_用户指南(doc 113页)
![JBPM5_用户指南(doc 113页)](https://img.taocdn.com/s3/m/7604677ed1f34693dbef3ebb.png)
JBPM5_用户指南(doc 113页)jBPM User GuidejBPM 用户指南目录目录第一章概述 (7)1.1 .................................................. 什么是jBPM?71.2 .......................................................... 概览91.3 ...................................................... 核心引擎101.4 ................................................. Eclipse编辑器101.5 .............................................. 基于Web的设计器111.6 .................................................... jBPM控制台121.7 ...................................................... 文档结构13第二章获得开始 (14)2.1 下载 (14)2.2 获得开始 (14)2.3 社区 (15)2.4 资源 (15)5.1.1 Eclipse BPMN2.0图形编辑器插件 (29)5.1.2 使用XML定义流程 (30)5.1.3使用流程API定义流程 (32)5.2 不同流程构造的细节概述 (33)5.3 流程属性的细节 (34)5.4 事件细节 (34)5.4.1 开始事件 (34)5.4.2 结束事件 (35)5.4.3 中间事件 (36)5.5 动作细节 (37)5.5.1 脚本任务 (37)5.5.3 服务任务 (38)5.5.3 用户任务 (39)5.5.4 重用的子流程 (40)5.5.5 业务规则任务 (40)5.5.6 嵌入子流程 (41)5.5.7 多个实例子流程 (42)5.6 Gateways 细节 (42)5.6.2 合并网关 (43)5.7 在你的应用中使用流程 (44)5.8 其他特性 (44)5.8.1 数据 (44)5.8.2 约束 (45)5.8.3 动作脚本 (46)5.8.4 事件 (47)5.8.5 计时器 (48)5.8.6 更新流程 (49)第六章 BPMN 2.0 核心引擎 (51)6.1 Business Process Model and Notation(BPMN)2.0 Specification业务流程建模和符号2.0规范 (51)6.2 例子 (56)6.3 支持的元素/属性 (56)第七章核心引擎:持久化和事务 (62)7.1 运行时状态 (63)7.1.1 二进制持久化 (63)7.1.2 Safe Pionts (63)7.1.3 配置持久化 (63)7.1.4 事务 (66)7.2 流程定义 (67)7.3 历史日志 (67)7.3.1 将流程事件存储到数据库 (67)第八章核心引擎:示例 (69)8.1 jBPM示例 (69)8.2 示例 (70)8.3 单元测试 (70)第九章 Eclipse BPMN 2.0 Plugin (70)9.1 安装 (71)9.2 创建你的BPMN 2.0 流程 (71)9.3 元素和属性的顾虑 (73)第十章设计器 (74)10.1 安装 (75)第十一章控制台 (76)11.1 安装 (76)11.2 运行流程管理控制台 (76)11.2.1 管理流程实例 (77)11.2.2 人工任务列表 (79)11.2.3 报告 (80)11.3 添加新的流程/任务表 (81)11.4 REST interface (82)第十二章 Human Tasks (83)12.1 流程内的Human tasks (83)12.1.1 Swimlanes (86)12.2 Human task 管理组件 (86)12.2.1 任务生命周期 (86)12.2.2 将任务组件链接到jBPM引擎 (87)12.2.3 启动任务管理组件 (89)12.2.4 和任务管理组件的交互 (91)12.3 人工任务管理接口 (92)12.3.1 Eclipse integration (92)12.3.2 基于Web的任务视图 (92)第十三章特定领域的流程 (92)13.1 介绍 (92)13.2 示例:通告 (93)13.2.1 创建工作定义 (95)13.2.2 注册你的工作定义 (95)13.2.3 在你的流程中使用你最新的工作条目 (96)13.2.4 执行服务节点 (98)第十四章测试和调试 (100)14.1 单元测试 (100)14.1.1 使用Helper方法创建你的session (101)14.1.2 断言 (101)14.1.3测试与外部服务的结合 (102)14.1.4 配置持久化 (103)14.2 调试 (104)14.2.1 流程实例视图 (104)14.2.2 人工任务视图 (105)14.2.3 核查视图 (105)第十五章流程知识库 (106)第十六章业务活动监视器 (108)16.1 报告 (108)16.2 直接接入 (110)第十七章复杂流程 (111)第十八章和Maven,OSGi,Spring的整合 (114)18.1 Maven (114)18.2 OGSi (116)第一章概述1.1什么是jBPM?jBPM是一个灵活的业务流程管理组件。
JBPM工作流演示系统使用说明
![JBPM工作流演示系统使用说明](https://img.taocdn.com/s3/m/933be5e0eefdc8d376ee32f6.png)
PM工作流演示系统(请假工作流)使用说明一、安装说明本系统在JDK1.5的基础上编译,请选择支持JDK1.5及以上版本的WEB容器,推荐使用Tomcat5.5,不保证与其他WEB服务器兼容,理论上应该不会出现兼容性问题。
如果要编辑源代码,请使用Eclipse3.3+MyEclipse6.0版本,PM版本为3.2.3,其他版本可能会出现文件无法打开或编译的情况。
本系统在Spring2.0+Struts1.2+Hibernate3.1基础上构建,与低版本不兼容。
数据库为MySql5.0,编码采用utf-8。
二、系统架构三、功能说明本应用主要用于演示PM工作流的使用,数据均存储在数据库中,包括两大模块:权限控制和流程控制。
权限控制模块是为流程控制模块服务的,为了说明在实际应用中如何动态指定审批执行者。
但实际上其代码量并不比工作流的代码少。
四、包名说明.aptech.mon:数据访问操作的通用实现,主要包括了添删改查操作,查询包括HQL查询和命名查询;.aptech.dao:数据访问操作类.aptech.exception:异常包.aptech.handler:PM的组件包,如Action等.aptech.pojo:工程中的6个POJO.aptech.service:业务类.aptech.struts:资源文件和编码处理.aptech.struts.action:Action 所在的包.aptech.tag:自定义标签和函数.aptech.utils:实用类.aptech.vo:值对象,用于在控制器和业务层之间的数据传输.aptech.test:测试default.query.hbm.xml:命名查询定义文件五、流程图六、功能详解1、创建请假条创建请假条时必须输入请假天数和请假原因,系统会对数据进行检查。
同时,会自动显示当前有效的审批人,包括经理审批和老板审批。
审批者是可以自定义的,而且只有一个有效,其他自动设为无效。
jbpm5.2入门实践
![jbpm5.2入门实践](https://img.taocdn.com/s3/m/bc045b0a844769eae009eddb.png)
Jbpm学习第一步:安装与配置jbpm准备工作:1.安装jdkJava入门级教程。
2.安装ant下载ant下载地址:/bindownload.cgi下载完成之后,解压缩到你想要的地方。
这里,我解压缩到:C:\java\apache-ant-1.8.3C:\java\apache-ant-1.8.3里面的目录机构是这样的:配置ANT_HOME,新建用户用户变量(这里当然也可以新建系统变量):ANT_HOME,设置值为:C:\java\apache-ant-1.8.3把%ANT_HOME%\bin 加入到系统变量PA TH 中。
检查ant是否正确安装:cmd输入ant,提示如下,则正确安装,否则请检查ANT_HOME配置是否正确到这里,前期的准备工作都已经完成了,下面就是来安装demo了。
注意安装demo需要联网,由于下载东西过多,过程较长。
这个过程当然是可以减少的,具体的这里不做说明,有兴趣的可以自己研究。
我这里的是一个default安装过程,没有修改jbpm的任何配置文件。
所以过程是有点漫长不过,按照步奏来,不会出错,特别是对刚刚接触jbpm的朋友来说。
3.安装demo首先,我们需要下载jbpm,可以去官网下载最新的版本,我这里使用的是jbpm5.2.0版本,下载地址:/projects/jbpm/files/下面的这个文件是最新的版本:接下来,下载完成以后,解压缩到你想要的目录下。
我这里解压缩地址为:G:\开源项目\jbpm\jbpm-5.2.0.Final-installer-full下面,通过ant来进行安装demoCmd到这个过程有点漫长,就是下载一些东西,如eclipse,jboss等,我这里也没有进行一些截图,因为我的已经安装好了。
不想再进行重复,这里,你需要的就是等待就好了。
如果你的网速较差,可能会安装失败。
如果安装失败,请将已经下载的,而且尚未下载完成的一些文件删除掉,当然,你也可以使用笨方法,重新解压缩,重来。
jbpm5初级demo的安装过程-eclipse
![jbpm5初级demo的安装过程-eclipse](https://img.taocdn.com/s3/m/d337ffdd7f1922791688e834.png)
JBPM5的demo的安装过程1、安装jboss,下载jboss,并解压到install.home路径下。
版本:jboss-5.1.0.GA,下载地址:/jboss/ jboss-5.1.0.GA.zip;2、安装drools-guvnor,下载drools-guvnor.war,在install.home/lib下有文件guvnor-distribution-wars-5.2.0.Final-jboss-as-5.1.war即是。
如果jboss版本不是5,直接将guvnor-distribution-wars-5.2.0.Final-jboss-as-5.1.war文件改名为drools-guvnor.war,然后放在jboss.home/server/default/deploy目录下即可。
若版本为5,则将war包解压,删除WEB-INF/lib下的xml-apis-*.jar文件,重新打成war包,改名为drools-guvnor.war,然后放在jboss.home/server/default/deploy目录下即可。
3、安装designer,下载designer.war,在install.home/lib下有文件designer-1.0.0.052-jboss.war既是。
直接将designer-1.0.0.052-jboss.war文件改名为designer.war,然后放在jboss.home/server/default/deploy目录下即可。
4、安装h2.jar,下载h2.jar,下载地址:/maven2/com/h2database/h2/1.2.124/h2-1.2.124.jar ,下载完成后,将h2-1.2.124.jar改名为h2.jar,复制到install.home/db/driver文件夹下。
5、下载birt,下载birt-runtime-2_3_2_2.zip ,下载地址:/birt/downloads/drops/R-R1-2_3_2_2-200906011507/birt-runtim e-2_3_2_2.zip。
jBPM5 用户指南中文版.
![jBPM5 用户指南中文版.](https://img.taocdn.com/s3/m/900ef60fbd64783e09122bd6.png)
jBPM User GuidejBPM 用户指南目录目录第一章概述 (61.1 什么是jBPM? (61.2 概览 (71.3 核心引擎 (91.4 Eclipse编辑器 (91.5 基于Web的设计器 (10 1.6 jBPM控制台 (111.7 文档结构 (12第二章获得开始 (132.1 下载 (132.2 获得开始 (132.3 社区 (142.4 资源 (142.41许可证 (142.42 源代码 (142.4.3 从源文件构建 (15第三章安装 (153.2 下载installer (153.3 演示安装 (153.4 10分钟指南:使用Eclipse工具 (163.5 10分钟向导:使用jBPM控制台 (183.6 10分钟指南:使用Guvnor知识库和设计器 (19 3.7 如果遇到问题或有问题应该怎么去做 (203.7 经常被问的问题 (20第四章:核心引擎的API (214.1 jBPM API (234.11 Knowledge Base (234.12 会话 (234.13 事件 (254.2. Knowledge-based API (27第五章核心引擎:基础 (275.1 创建一个流程 (275.1.1 Eclipse BPMN2.0图形编辑器插件 (285.1.2 使用XML定义流程 (285.1.3使用流程API定义流程 (30 5.2 不同流程构造的细节概述 (31 5.3 流程属性的细节 (325.4 事件细节 (325.4.1 开始事件 (325.4.2 结束事件 (335.4.3 中间事件 (345.5.1 脚本任务 (355.5.3 服务任务 (365.5.3 用户任务 (375.5.4 重用的子流程 (385.5.5 业务规则任务 (385.5.6 嵌入子流程 (395.5.7 多个实例子流程 (395.6 Gateways 细节 (405.6.2 合并网关 (415.7 在你的应用中使用流程 (41 5.8 其他特性 (425.8.1 数据 (425.8.2 约束 (435.8.3 动作脚本 (445.8.4 事件 (455.8.5 计时器 (465.8.6 更新流程 (47第六章BPMN 2.0 核心引擎 (496.1 Business Process Model and Notation(BPMN2.0 Specification业务流程建模和符号2.0规范 (496.2 例子 (536.3 支持的元素/属性 (54第七章核心引擎:持久化和事务 (607.1 运行时状态 (607.1.1 二进制持久化 (607.1.2 Safe Pionts (607.1.3 配置持久化 (617.1.4 事务 (647.2 流程定义 (647.3 历史日志 (647.3.1 将流程事件存储到数据库 (65 第八章核心引擎:示例 (668.1 jBPM示例 (668.2 示例 (678.3 单元测试 (67第九章Eclipse BPMN 2.0 Plugin (68 9.1 安装 (689.2 创建你的BPMN 2.0 流程 (68 9.3 元素和属性的顾虑 (71第十章设计器 (7210.1 安装 (73第十一章控制台 (7411.1 安装 (7411.2 运行流程管理控制台 (7411.2.1 管理流程实例 (7511.2.2 人工任务列表 (7711.2.3 报告 (7811.3 添加新的流程/任务表 (79 11.4 REST interface (80第十二章Human Tasks (8112.1 流程内的Human tasks (8112.1.1 Swimlanes (8412.2 Human task 管理组件 (8412.2.1 任务生命周期 (8412.2.2 将任务组件链接到jBPM引擎 (8512.2.3 启动任务管理组件 (8712.2.4 和任务管理组件的交互 (8912.3 人工任务管理接口 (9012.3.1 Eclipse integration (9012.3.2 基于Web的任务视图 (90第十三章特定领域的流程 (9013.1 介绍 (9013.2 示例:通告 (9113.2.1 创建工作定义 (9213.2.2 注册你的工作定义 (9213.2.3 在你的流程中使用你最新的工作条目 (93 13.2.4 执行服务节点 (95第十四章测试和调试 (9714.1 单元测试 (9714.1.1 使用Helper方法创建你的session (98 14.1.2 断言 (9814.1.3测试与外部服务的结合 (9914.1.4 配置持久化 (10014.2 调试 (10014.2.1 流程实例视图 (10114.2.2 人工任务视图 (10214.2.3 核查视图 (102第十五章流程知识库 (103第十六章业务活动监视器 (10516.1 报告 (10516.2 直接接入 (107第十七章复杂流程 (108第十八章和Maven,OSGi,Spring的整合 (111 18.1 Maven (11118.2 OGSi (113第一章概述1.1什么是jBPM?jBPM是一个灵活的业务流程管理组件。
jbpm5.1介绍(3)
![jbpm5.1介绍(3)](https://img.taocdn.com/s3/m/478554730b4c2e3f572763e5.png)
---------------------------------------------------------------最新资料推荐------------------------------------------------------jbpm5.1介绍(3)j bpm 5.1 介绍(3)在您好的应用程序中使用一个新的流程流程处理(1 )你需要建立一个知识库,其中包含过程定义 ? KnowledgeBuilder kbuilder = KnowledgeBuilderFactory. newKnowledgeBuilder() ; kbuilder. add( ResourceFactory. newClassPathResource(quot;MyProcess. bpmn2quot;) , ResourceType. BPMN2 ) ; 加入你的进程生成器(可以添加多个进程)后,您可以创建一个新的知识基础,这样的:? KnowledgeBase kbase = kbuilder. newKnowledgeBase() ;请注意,这将抛出一个异常,如果知识库包含错误(因为它不能正确地分析您的流程)。
(2)你需要创建一个会话,沟通与流程引擎和启动过程的启动过程。
启动过程:启动一个特定的进程,你会需要调用您的会话的startProcess 方法,并传递您要启动的进程的I D。
例如:? StatefulKnowledgeSession ksession = kbase. newStatefulKnowledgeSession() ; ksession. startProcess(quot;com. sample. helloquot;) ; startProcess方法的参数是需要启动的进程 I D。
1 / 3当定义一个过程,这需要作为一个过程的财产(例如在Eclipse 的属性视图显示,当您单击过程中的背景画布)指定进程 I D。
JBPM安装及请假流程实例
![JBPM安装及请假流程实例](https://img.taocdn.com/s3/m/d3f09b4e6294dd88d0d26bcd.png)
1、开发环境搭建必须安装的软件1) 5或者更高版本2)支持的数据库有hsqldb、mysql、oracle、postgresql、sybase,本说明以oracle作为数据库。
3)GPD插件(jbpm在IDE中的流程设计器), eclipse(建议版本以上)或者myeclipse(建议版本以上)安装插件所需的zip在解压后\install\src\gpd中的,本说明以为例。
配置JBPM运行时1)打开window preferences2)选择 JBoss jBPM --> jBPM 4 --> Runtime Locations3)点击 Add...4)在 Add Location 对话框中,输入一个名字,比如然后点击Search...5)在 Browse For Folder 对话框中,选择你的jbpm 根目录,然后点击 OK6)点击 OK 在 Add Location 对话框中定义jBPM 用户库1)点击窗口 --> 属性(Windows --> Preferences)2)选择Java --> 创建路径 --> 用户类库(Java --> Build Path --> User Libraries)3)点击新建(New)4)类型名字jBPM Libraries5)点击添加JARs(Add JARs...)6)找到jBPM 安装程序下的lib 目录7)选择lib 下的所有jar 文件并点击打开(Open)8)选择jBPM Libraries 作为入口9)重新点击添加JARs(Add JARs)10)在jBPM 的安装程序的根目录下选择文件11)点击打开(Open)12)在下选择源码附件(Source attachment)作为入口13)点击编辑(Edit)14)在源码附件的配置(Source Attachment Configuration)对话框中,点击目录(External Folder...)15)找到jBPM 安装程序下的src 目录16)点击选择(Choose)17)点击两次'确定'(Ok)会关闭所有对话框在目录中添加jPDL4 模式如果你想直接编辑XML 源码,最好是在你的XML 目录中指定一下模式(schema),这样当你在编辑流程源码的时候,可以更好的帮助你编写代码。
(BPM业务流程管理)jbpm5 持久化及流转流程剖析
![(BPM业务流程管理)jbpm5 持久化及流转流程剖析](https://img.taocdn.com/s3/m/1525040c76eeaeaad0f330bd.png)
(BPM 业务流程管理)jbpm5持久化及流转流程剖析Jbpm5 持久化及流转流程剖析1Jbpm5 持久化结构图Jbpm5 实例流程图下面的文档讲解了基于该流程的步骤流程2第一步启动任务流程时序图:2.1启动 TaskServer使用线程启动 TaskServer,初始化持久化 OrganizationEntity,将流程中需要使用到的groupId,actorId.全部初始化到表中。
2.2启动流程1)根据路径解析*.bpmn2 或*.bpmn 文件,放入到内存中。
在该类注册了相关的对象org.jbpm.bpmn2.xml.BPMNSemanticModule.2.2.1开启事务2.2.2Ksession 开始执行任务流程实例为 org.jbpm.ruleflow.instance.RuleFlowProcessInstance 的对象2.2.3执行 StartNode执行 StartNode,结点任务任务流转核心方法2.2.4流程执行 HumanTaskNode流程执行到HumanTask 任务结点,引擎会执行org.jbpm.workflow.instance.node.WorkItemNodeInstance 这个实例类的internalTrigger 方法,并持久化WorkItemInfo2.3初始化 Handler官方默认提供了WorkItemHandler 的实现,2.3.1初始化 Client初始化 TaskClient.用于 Client 与服务端 Server 交互2.3.2建立 Mina 通信连接Jbpm5 默认以 Mina 作为通信持久化通信桥梁2.3.32.3.4注册事件 Fail2.3.5注册事件 Skip客户端(通过 mina 发起):服务端(通过 mina 接收):2.4调用 excuteWorkItem 方法调用 excuteWorkItem 方法,目的初始化任务信息(任务名称、任务优先级、处理任务人员分配等),将得到的任务信息一并发送到服务端进行持久化2.4.1初始化 Task 任务信息2.4.2调用 Client 添加任务信息2.4.3AddTaskRequest由客户端(TaskClient)向服务端(TaskServer)转发持久化 Task 请求该方法最后一行通过发送AddTaskRequest 请求,发送到服务端,由服务端持久化 Task 和Content 信息2.4.4持久化 Task服务端(org.jbpm.task.service.TaskServerHandler)接收到客户端发送来的消息AddTaskRequest,1)持久化 Task 信息,插入相关的表( PeopleAssignments_PotOwners,PeopleAssignments_ExclOwners,PeopleAssignments_Stakeholders,PeopleAssignments_Bas,PeopleAssignments_Recipients,Task,I18NTEXT)2.4.5AddTaskResponse通过 AddTaskResponse,由服务端(TaskServer)发起请求通知客户端(TaskClient),通知客户端(org.jbpm.task.service.TaskClientHandler)添加任务完毕,持久化P r o c e s s I n s t a n c e I n f o,W o r k I t e m I n f o数据此时路程已经执行到了 HumanTask 任务结点上,同时分配了任务给具体的人。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、安装JBPM5之前,本机需要安装好JDK1.5以上和ANT1.7以上版本,并确认环境变量设
置正确,可以正常运行编译命令。
这里是我的环境变量设置:
ANT_HOME=C:\ant
JAVA_HOME=C:\Java\jdk1.6
Path=C:\Windows\System32;C:\Java\jdk1.6\bin;C:\ant\bin
设置完成后再命令行窗口的任意目录下运行java –version或者ant –version命令,系统可以识别该命令并且可以显示出JDK和ANT的版本。
2、到/projects/jbpm/files/网上下载jbpm-5.2.0.Final-installer-full.zip到
本地目录,解压至当前目录jbpm-installer
3、打开命令行,进入到jbpm-installer文件夹所在目录下(比如我的是
E:\ServerFiles\jbpm-installer),运行ant install.demo,该命令会执行下面一系列操作:(这个过程安装进程会自动去下载需要的程序并解压到指定的目录,执行时间与网络状况有关)
下载JBOSS download.jboss
安装Drools Guvnor 到JBoss download.drools.guvnor
安装Oryx Designer 到JBoss download.designer
安装jBPM Console 到JBoss download.jBPM.gwt-console
下载eclipse download.eclipse
安装jBPM Eclipse 插件download.jBPM.bin
安装Drools Eclipse 插件download.droolsjbpm.eclipse
最后BUILD SUCCESSFUL。
完成后,可以到相应的目录查看所下载的文件
如果想看到报告在jBPM控制台上,那么需要修改build.properties文件的jBPM.birt.downloa d属性设置为true
4、安装完成后,运行ant start.demo启动H2数据库,JBOSS服务器以及JBPM相关任务进
程。
Jboss启动之后,可以在http://localhost:8080/访问,JBPM的配置页面是http://localhost:8080/jbpm-console,默认用户名和密码是krisv、krisv。