jbpm4.3中文开发手册

合集下载

jBPM4.3简单深入理解(一)

jBPM4.3简单深入理解(一)

jBPM4.3简单深入理解(一)工作流(系统)主要概念工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理流程定义:预先定义的业务流转逻辑流程实例:业务的一次实际流转过程参与者:任务的执行者活动(任务):组成流程定义的节点活动实例:组成流程实例的元素流转:从一个节点到另一个节点这一行为工作列表:当前需要办理的任务集合开发步骤1)根据实际应用场景创建流程文件;即编写*.jpdl.xml文件2)部署流程文件或流程资源到系统中;3)执行流程(使用指定的流程定义);3.1)启动流程实例3.2)获取任务3.3)开始任务3.4)结束任务3.1到3.4是办理一个任务的过程,流程的执行就是启动流程实例+一次次办理任务的过程。

流程在实际应用场景中的一些操作一.流程的定义管理流程定义的发布、查询、删除、暂停、恢复二.流程实例管理流程实例的启动、显示流程图、执行、暂停、恢复三.任务管理分配任务、收回任务、定时任务、任务与表单绑定四.流程的历史查询任务的历史、流程实例历史、活动历史---下面开始进行代码描述------在详细描述之前,我们先来了解一下流程引擎ProcessEngine引用One ProcessEngine object can be used by all reque sts and threads in an application. Here’s how you can obtain a ProcessEngine把这个交给spring去管理Java代码<beanid="springHelper"class="org.jbpm.pvm.internal.processengine.Spring Helper"/><beanid="processEngine"factory-bean="springHelper"factory-method ="createProcessEngine"/>我们需要的一些服务都是通过流程引擎得到的RepositoryService repositoryService = processEngine.getRepositoryService(); ExecutionService executionService = processEngine.getExecutionService();TaskService taskService = processEngine.getTaskService();HistoryService historyService = processEngine.getHistoryService();ManagementService managementService = processEngine.getManagementService();一.流程的定义管理1.1流程定义的发布(即部署流程文件或流程资源到系统中)流程定义*.jpdl.xml的内容可以从文件,网址,字符串,输入流或zip输入流中获得Org.jbpm.api.newdeployment代码public interface NewDeployment extends Deployment {.../** adds a resource as a string */NewDeployment addResourceFromString(String resourceName, String string);/** adds a resource as a string */NewDeployment addResourceFromInputStream(String resourceName, InputStream inputStream);/** adds a resource as a resource from the classpath */NewDeployment addResourceFromClasspath(String resourceName);/** adds a resource as a url */NewDeployment addResourceFromUrl(URL url);/** adds a resource as a zip stream */NewDeployment addResourcesFromZipInputStream(ZipInputStream zipInputStream);/** adds a resource from a file */NewDeployment addResourceFromFile(File file);...}在测试的时候Java代码ProcessEngine processEngine = new Configuration().buildProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService();//布署当前目录下test.jpdl.xml文件String deploymentId = repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").de ploy();在我们实际应用中,addResourceFromInputStream和addResourcesFromZipInputStream运用较多。

jbmp入门指南

jbmp入门指南

按步骤来:
1)打开命令控制台(即Windows下的cmd),进入目录 ${jbpm.home}/install。
2)运行脚本(当然需要配置好Ant命令的路径)ant demo.setup.tomcat或者ant demo.setup.jboss。
没了,就这么简单的两步。
实际上这两步帮您做了如下工作:
这时候,您也可以使用jBPM控制台:http://localhost:8080/jbpm-console/,利用表2-1中所列用户之一进行登录。
表 2-1 jBPM控制台用户
注意:jBPM4.3控制台目前存在一个问题——对于一些比较慢的机器,在初始化流程报表时,控制台的失效时间太短了,所以当您第一次请求流程报表时,会出现超时,控制台会崩溃。注销,然后再次登录,就可以避过这个问题。同时,这个问题已经提交到了官方JIRA – JBPM-2508。
2)安装jBPM需要执行Ant脚本,所以需要Apache Ant 1.7.0或更高版本。可以在 /bindownload.cgi 获取到最新版本的Ant。
快速开始吧
如果作为一名初学者,拿到jBPM后,您最想做什么?没错,快速地安装好,开始运行。
事实上,jBPM在每一次大版本号变迁时的改动才是革命性的,例如jBPM3到jBPM4;而jBPM小版本号的变迁则是相对有限的改变,几乎不会需要您重新学习什么,例如jBPM4.1到jBPM4.3,改动不大,只要关注新版本的“What’s new”即可,也就是说:掌握了jBPM4.3,jBPM4.X对您就不在话下啦!
1)把Tomcat安装到${jbpm.home}/apache-tomcat-6.0.20目录下。
2)把jBPM安装到Tomcat中。

jbpm4.3简单小例子(一)

jbpm4.3简单小例子(一)

最近学习jbpm4.3.一个工作流框架。

准备工作请参考jbpm4.3用户指南。

注意的地方就是jbpm.hibernate.cfg.xml里配置数据库连接。

另外在jbpm4.3zip包下install的db里执行对应数据库的初始化脚本.start...关键对象ConfigurationProcessEngineRepositoryServiceExecutionServiceTaskServiceHistoryServiceManagementService其用法请参考用户指南.本例子流程图如下:A用户提出请假申请--》B用户审批--》C用户审批。

流程结束。

这个例子只用到两张自定义表,用作演示,一张为用户表,仅有username和password字段。

用作登录验证另一张为请假表单表,记录每一例请假表单,有id,title,content,process_id字段.其中process_id和jbpm4的流程实例关联。

index.jsp关键代码如下:----------------------------------------------------------------------------------------------<form action="login" method="post"><label for="username" >用户名:</label><input type="text" name="username" id="username" /><br/><label for="password" >密码:</label><input type="password" name="password" id="password" /><br/><input class="submit" type="submit" value="登录" /></form>----------------------------------------------------------------------------------------------action对应为登录验证的login servlet,这个比较简单,就是从user表中找记录登录成功后跳转至welcome.jsp页面,关键代码如下:<div><div class="navigate"><ul><li><a href="todolist" target="result" onclick="javascript:document.getElementById('ifr').src=todolist">代办事项</a></li><li><a href="postleave" target="result" onclick="javascript:document.getElementById('ifr').src=postleave">请假申请</a></li><li><a href="deployleave" target="result">部署请假流程</a></li><li><a href="logout">注销</a></li></ul></div><div class="main"><iframesrc="" width="99%" height="99%" frameborder="0" id="ifr" name="result"></iframe></div></div>页面分为左右两部分,左边为导航区,点击相应链接,右边显示相应模块点击请假申请,右边弹出请假表单,填写完成后,点击提交,即启动一个请假流程实例。

jBPM开发入门指南

jBPM开发入门指南

jBPM开发入门指南jBPM开发入门指南(1)工作流虽然还在不成熟的发展阶段,甚至还没有一个公认的规范标准。

但其应用却已经在快速展开,这说明市场对工作流框架的需求是急迫而巨大的。

我们公司的后台短信管理系统涉及短信编发、领导层层审核等操作,这是一个比较典型的工作流系统。

过去我们用的工作流引擎是 shark ,然后在使用后发现其过于庞大,后台数据库操作频繁而未进行优化,直接导致的后果就是前台操作缓慢。

于是经研究决定,将工作流引擎由 shark 换成 jBPM 。

jBPM 之前是一个开源软件,后加入 JBoss 组织。

正好我们公司也是用 JBoss 的。

不过 jBPM 并没有绑定在 JBOSS 上, Tomcat 等也可以使用它。

jBPM 的正处在不断发展中,做为开源软件的特点,其设计变化往往很大。

所以一些过去的资料可能已经不适用了。

于是作者根据自己的使用经验,重新整理出这份文档,以备学习参考。

注:本文使用的 jBPM 版本为 3.1.1环境准备1、安装JDK所有 JAVA 开发第一个需要安装的,没什么好说的。

记得把系统变量 JAVA_HOME 设上。

2、安装AntAnt 是使用 jBPM 必须的一个工具。

jBPM 中的很多操作都要用到 Ant 。

安装方法:( 1 )先下载: /dist/ant/binaries/ ,选一个如: apache-ant-1.6.5-bin.zip 。

( 2 )解压到 D:\ant (当然其他目录也可以)。

( 3 )设置如下系统变量: ANT_HOME=d:\ant 。

( 4 )把 %ANT_HOME%\bin 加入到系统变量 PATH 中。

3、安装EclipseEclipse 不是开发 jBPM 必须的工具,但它是对 jBPM 开发很有帮助的工具,特别是 jBPM 提供了一个 Eclipse 插件用来辅助开发 jBPM 。

关于 Eclipse 的安装不赘述了,本文用的版本是: Eclipse3.24安装 jBPMjBPM 的下载地址: /products/jbpm/downloadsz JBoss jBPM 是 jBPM 的软件包z JBoss jBPM Starters Kit 是一个综合包,它包括了 jBPM 软件包、开发插件、一个配置好了的基于 JBoss 的 jBPM 示例、一些数据库配置文件示例。

jBPM开发入门指南(4)

jBPM开发入门指南(4)

jBPM开发入门指南(4)7 jBPM 的客户端开发有了前面的 HelloWorld 后台流程,我们就要开始客户端程序了。

正如前面提到的,本文不写 JSP ,而改采用 JUnit 的形式,输出则用 System.out.println 。

举一反三,知道在方法中输入及用 println 输出,在 JSP 和 SWING 等 GUI 界面还不是一样嘛。

这个 JUnit 客户端,我们就借用创建项目时自动生成的SimpleProcessTest.java 了,改写后如下:package com.sample;import junit.framework.TestCase;import org.jbpm.JbpmConfiguration;import org.jbpm.JbpmContext;import org.jbpm.context.exe.ContextInstance;import org.jbpm.graph.def.ProcessDefinition;import org.jbpm.graph.exe.ProcessInstance;public class SimpleProcessTest extends TestCase {private JbpmConfiguration config= JbpmConfiguration.getInstance();private JbpmContext ctx = config.createJbpmContext();// helloworld对应于jbpm_processdefinition表的name字段值,也即processdefinition.xml的name// 这个值得取比较耗时,实际项目里最好和“数据库的JDBC连接”一样,让它共享,不要频繁打开关闭。

private ProcessDefinition processDefinition =ctx.getGraphSession().findLatestProcessDefinition("helloworld");public void testNewRequest() {long id = newRequest();System.out.println("id=" + id);checkNewRequest(id);confirmRequest(id);checkconfirmRequest(id);ctx.close();// 关闭jbpm容器}/***创建一个请假单**@return*/private long newRequest() {// 创建一个新流程ProcessInstance pi = processDefinition.createProcessInstance();// 取得流程的数据环境ContextInstance ci = pi.getContextInstance();// 创建一张请假单ci.setVariable("name", "陈刚" );ci.setVariable("day", 2);assertEquals(null, ci.getVariable("note"));// 请假申请结束,转到下一个流程结点pi.signal();return pi.getId();}/***检查请假单的数据**@param id*/private void checkNewRequest(long id) {// 从数据库提取原流程ProcessInstance pi = ctx.loadProcessInstance(id);// 取得流程的数据环境ContextInstance ci = pi.getContextInstance();// 创建一张请假单assertEquals("陈刚" ,ci.getVariable("name"));assertEquals(Integer.valueOf(2), ci.getVariable("day"));assertEquals("我要请假" , ci.getVariable("note"));// 当前是结点为confirmassertEquals(pi.getRootToken().getNode().getName(), "confirm");// 流程还没结束assertFalse(pi.hasEnded());}/***审批陈刚的请假申请**@param id*/private void confirmRequest(long id) {ProcessInstance pi = ctx.loadProcessInstance(id);ContextInstance ci = pi.getContextInstance();// 不通过ci.setVariable("note", "不准请假,继续加班" );// 审批结束,到下一个流程结点pi.signal();}private void checkConfirmRequest(long id) {ProcessInstance pi = ctx.loadProcessInstance(id);ContextInstance ci = pi.getContextInstance();// ConfirmAction类在signal后执行,所以覆盖了经理的审批意见assertEquals("准假" , ci.getVariable("note"));// 当前是结点为endassertEquals(pi.getRootToken().getNode().getName(), "end");// 流程结束了assertTrue(pi.hasEnded());}}这个例子还是很简单,而且关键是缺少用户、组、权限等工作流系统必须的东西,不过没关系。

jbpm开发文档

jbpm开发文档

1 前台页面 (2)1.1前台总览: (2)1.2常用节点图标说明: (2)1.3前台操作: (3)2 后台设计 (4)2.1 Myeclipse配置JBPM4 (4)2.2 Jar包引入: (6)2.3 在项目中加入jbpm的配置文件: (6)2.4 后台接收说明: (6)2.5 后台处理说明: (7)3 Jbpm说明: (8)3.1 Jbpm常用的对象与方法: (8)3.2 流程的发布有以下几种方式: (8)3.3 流程开始: (9)3.4 处理人获得任务列表: (9)3.5 处理人结束任务 (9)4 补充: (10)4.1 用java类来动态指定处理人: (10)4.2 用java类来作判定条件: (11)4.3 流程中的变量 (12)4.3.1 流程实例变量的创建与获取: (12)4.3.2 任务实例变量的创建: (12)4.3.3 变量总结: (13)1 前台页面1.1前台总览:1.2常用节点图标说明:1.开始(start)节点,表示一个流程的开始,name属性作用主要是匹配节点流向。

2.任务(task)节点,表示流程执行的任务处理节点。

task节点属性有name(任务节点的名称),assignee(任务节点的执行人),g(节点坐标)。

其中name属性作用主要是匹配节点的流向;assignee属性有5中表达方式1、none这种表达方式就是不指定任务的执行人,一般会有动态指定,在task中加<assignment-handler class="com.yhte.GetAssignee"></assignment-handler>用class中java类来动态指定执行人。

2、assignee 可以指定特定的一个人,也可以用表达式来指定,表达式一般写作#{name}。

3、candidate-groups 指定了一个组来执行,指定了组中的每个成员都可以来执行此任务节点,但只要其中一个成员完成,那么这个任务节点便结束。

jbmp用户指南

jbmp用户指南

使用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 文件。

程序员开发手册

程序员开发手册

程序员开发手册安全生产信息化管理系统》程序员开发手册1.概述目的:1.方便代码的交流和维护。

2.不影响编码效率,不与大众惯冲突。

3.使代码更美观,阅读更方便。

4.使代码逻辑更清晰,更易于理解。

范围:本手册适用于开发部全体人员,在软件项目开发的代码编写和后期维护阶段起作用。

警示:对于不符合编码规范的代码,必须在限期内修正。

逾期视为工作过失,部门主管或相关负责人视具体情况做出相关处理。

术语定义:1.匈牙利命名法已被禁用。

2.推荐使用帕斯卡(pascal)命名法或骆驼(Camel)命名法。

2.代码格式列宽:1.为了防止在阅读代码时不得不滚动源代码编辑器,每行代码或注释在一般显示频率下不得超过一显示屏,代码列宽控制在110字符左右。

2.系统中部分代码可以不遵循此原则,比如VIWFormItemDetail[]dv=(VIWFormItemDetail[]),sqlParams)。

3.SQL语句拼接、字符串拼接、函数参数名过长、判断语句过长的代码要遵循以上原则。

换行:1.当表达式超出或即将超出规定的列宽,一行被分为几行时,通过将串联运算符放在每一行的末尾而不是开头,清楚地表示没有后面的行是不完整的。

例如:StringquerySql=“SELECTProjectId”+“,ProjectTitle”+“FROM Project”。

2.每一行上放置的语句避免超过一条。

3.当表达式超出或即将超出规定的列宽,遵循以下规则进行换行:1) 在逗号前换行。

2) 在操作符前换行。

3) 规则1优先于规则2.例如:StringBuilder querySql = new StringBuilder();("SELECT。

AS PK ");(",",",");("。

AS ISBNCode");在编写代码时,应该遵守一定的格式规范,以提高代码的可读性和可维护性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Nhomakorabea�
� 2.11.2.、在 eclipse 中安装 GPD 插件.............................................................. 12 � 2.11.3、 配置 jBPM 运行时............................................................................ 13 � 2.11.4.、定义 jBPM 用户库............................................................................ 14 � 2.11.5、在目录中添加 jPDL4 模式................................................................. 15 � 2.11.6. 导入示例............................................................................................ 16 � 2.11.7. 使用 ant 添加部分文件........................................................................ 17 第 3 章 流程设计器(GPD).............................................................................................. 18 � 3.1、创建一个新的流程文件................................................................................ 18 � 3.2、编辑流程文件的源码.................................................................................... 19 第 4 章 部署业务归档......................................................................................................... 21 � 4.1、 部署流程文件和流程资源............................................................................ 21 � 4.2、部署 java 类................................................................................................. 22 第 5 章 服务....................................................................................................................... 24 � 5.1、流程定义,流程实例和执行......................................................................... 24 � 5.2、 ProcessEngine 流程引擎............................................................................... 26 � 5.3、Deploying a process 部署流程........................................................................ 27 � 5.4、 删除流程定义..............................................................................................28 � 5.5、启动一个新的流程实例................................................................................ 28 � 5.5.1、 最新的流程实例................................................................................ 28 � 5.5.2、 指定流程版本.................................................................................... 29 � 5.5.3、 使用 key............................................................................................ 29 � 5.5.4、使用变量............................................................................................ 30 � 5.6、执行等待的流向........................................................................................... 30 � 5.7、 TaskService 任务服务................................................................................... 31 � 5.8、 HistoryService 历史服务............................................................................... 33 � 5.9、ManagementService 管理服务........................................................................ 33
Java 技术交流群: 38615496
jBPM4.3 用户指南
java 技术交流群:38615496
翻译官方文档 2010 年 4 月 16 日
注:本文全部来自互联网,版权归原作者所有
目录
第 1 章 导言......................................................................................................................... 4
1
Java 技术交流群: 38615496
� � 1.1、 许可证与最终用户许可协议.......................................................................... 4 1.2、下载.............................................................................................................. 4
� 1.3、 源码............................................................................................................. 5 � 1.4、什么是 JBPM................................................................................................. 5 � 1.5. 文档内容......................................................................................................... 5 � 1.6、 从 jBPM 3 升级到 jBPM 4.............................................................................. 5 � 1.7. 报告问题......................................................................................................... 5 第 2 章 安装配置.................................................................................................................. 6 � 2.1、发布.............................................................................................................. 6 � 2.2、 必须安装的软件............................................................................................ 6 � 2.3、 快速上手...................................................................................................... 7 � � � � � � � 2.4、 安装脚本...................................................................................................... 8 2.5. 依赖库和配置文件......................................................................................... 10 2.6、 JBoss.......................................................................................................... 10 2.7、Tomcat......................................................................................................... 10 2.8、 Signavio 基于 web 的流程编辑器.................................................................. 10 2.9、用户 web 应用.............................................................................................. 10 2.10、 数据库...................................................................................................... 11 � 2.10.1、 创建或删除表结构........................................................................... 11 � 2.10.2、 更新已存在的数据库........................................................................ 11 2.11、流程设计器(GPD).................................................................................. 12 � 2.11.1、 获得 eclipse......................................................................................12
相关文档
最新文档