- 浏览: 253084 次
- 性别:
- 来自: 湖南
文章分类
- 全部博客 (194)
- java (23)
- 数据结构和算法 (5)
- oracle (7)
- sql server (1)
- mysql (5)
- Ajax (5)
- JSTL (7)
- jsp (20)
- 组件 (11)
- C++可视化 (0)
- javascript (14)
- c/c++ (0)
- XML (6)
- 只是扩宽 (0)
- 设计模式 (3)
- 正则表达式 (3)
- 心情和感悟 (4)
- ACM (3)
- HTML/css (9)
- 软件破解 (2)
- spring (1)
- struts (15)
- hibernate (10)
- Servlet (2)
- sql (2)
- 面试题 (1)
- struts2 (22)
- Unix/Linux (0)
- javamail (1)
- svn (1)
- 异常 (3)
- EJB (3)
- jquery (2)
- android (1)
最新评论
-
lianlupengUestc:
From my testing (Struts2 versio ...
struts2 注解 -
yulongxiang:
非常感谢!!!!!!!
使用动态ActionForm(转)
理解JBPM(java Business Process Management)的基本概念:
jPDL - JBPM Process Definition Language
JBPM简要过程:
1、定义流程(利用JPDL)
2、部署流程(部署到数据库)
3、创建公文并与流程实例绑定
4、可通过JBPM的接口,触发流程向下流动
5、可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表)
6、可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动)
7、如此,直到结束
----------------------------------------------
测试:
1、安装JBPM
- 引入Hibernate依赖包
- 引入JBPM依赖包
* bsh.jar
* jcr-1.0.jar
* jbpm-identity.jar
* jbpm-jpdl.jar
- 引入数据库驱动
* mysql-connector-java-3.1.13-bin.jar
2、定义相关配置文件
- Hibernate配置文件
* 提供hibernate配置文件(可以从config/目录下拷贝,并修改其中的数据库连接设置即可)
3、假设现在有一个公文,需要经过:张三、李四、王五的审批之后才能结束
4、我们定义一个Document对象,及其hibernate映射,并将修改hibernate配置文件,将映射添加到其配置中(以便创建相应的数据库表)
5、现在让我们来测试一下:
- 创建数据库表: JbpmConfiguration.getInstance().createSchema();
- 定义流程: 参考process.xml
- 部署流程:
* JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象
* ProcessDefinition.parseXmlResource(String); - 读取流程定义文件,创建processdefinition对象
* jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象
* context.deployProcessDefinition(definition); - 部署流程到数据库
* context.close(); - 关闭context对象
- 创建公文
- 将公文与流程绑定(即需要创建流程实例)
* JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象
* jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象
* context.setSessionFactory(sessionFactory),将JBPM与程序中的session绑定
* context.getGraphSession().findLatestProcessDefinition("流程名称");
* new ProcessInstance(definition); - 创建流程实例
* context.save(processInstance); - 存储流程实例
* 在Document中添加Long processInstanceId 属性
* context.getSession().load 操作,加载Document对象
* document.setProcessInstanceId - 绑定流程实例到公文
* processInstance.getContextInstance.createVariable("document",document.getId()) - 绑定公文到流程实例
- 公文创建者提交公文
* (Document)context.getSession().load(Document.class, 1); - 加载公文信息
* context.getProcessInstance(从公文中获取的流程实例ID); - 即根据流程实例ID加载流程实例
* processInstance.getRootToken().signal(); - 触发流程往下走(即到达第一个节点)
- 这时候,我们可以测试一下,看看流程当前所处的节点
* processInstance.getRootToken().getNode().getName()
- 第一个节点对应的用户登录,应该能够查询到其当前的任务(有公文等待其审批)
* List tasks = context.getTaskMgmtSession().findTaskInstances("张三"); - 查找张三的任务列表
* 列表元素是TaskInstance实例
* 通过:taskInstance.getProcessInstance().getContextInstance().getVariable("document"); 可以找到其绑定的公文ID
- 查找到当前的任务对应的公文之后,即可对其审批,并继续往下走
* taskInstance.end();
- 如此,直到结束
* processInstance.hasEnded() - 如果流程已经到达终点,本调用将返回true
jPDL - JBPM Process Definition Language
JBPM简要过程:
1、定义流程(利用JPDL)
2、部署流程(部署到数据库)
3、创建公文并与流程实例绑定
4、可通过JBPM的接口,触发流程向下流动
5、可通过JBPM的接口,获得流动到某个用户那里的文档(即待处理任务列表)
6、可通过JBPM的接口,结束某个用户的任务(这将触发流程继续向下流动)
7、如此,直到结束
----------------------------------------------
测试:
1、安装JBPM
- 引入Hibernate依赖包
- 引入JBPM依赖包
* bsh.jar
* jcr-1.0.jar
* jbpm-identity.jar
* jbpm-jpdl.jar
- 引入数据库驱动
* mysql-connector-java-3.1.13-bin.jar
2、定义相关配置文件
- Hibernate配置文件
* 提供hibernate配置文件(可以从config/目录下拷贝,并修改其中的数据库连接设置即可)
3、假设现在有一个公文,需要经过:张三、李四、王五的审批之后才能结束
4、我们定义一个Document对象,及其hibernate映射,并将修改hibernate配置文件,将映射添加到其配置中(以便创建相应的数据库表)
5、现在让我们来测试一下:
- 创建数据库表: JbpmConfiguration.getInstance().createSchema();
- 定义流程: 参考process.xml
- 部署流程:
* JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象
* ProcessDefinition.parseXmlResource(String); - 读取流程定义文件,创建processdefinition对象
* jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象
* context.deployProcessDefinition(definition); - 部署流程到数据库
* context.close(); - 关闭context对象
- 创建公文
- 将公文与流程绑定(即需要创建流程实例)
* JbpmConfiguration.getInstance() - 创建jbpmConfiguration对象
* jbpmConfiguration.createJbpmContext(); - 创建jbpmContext对象
* context.setSessionFactory(sessionFactory),将JBPM与程序中的session绑定
* context.getGraphSession().findLatestProcessDefinition("流程名称");
* new ProcessInstance(definition); - 创建流程实例
* context.save(processInstance); - 存储流程实例
* 在Document中添加Long processInstanceId 属性
* context.getSession().load 操作,加载Document对象
* document.setProcessInstanceId - 绑定流程实例到公文
* processInstance.getContextInstance.createVariable("document",document.getId()) - 绑定公文到流程实例
- 公文创建者提交公文
* (Document)context.getSession().load(Document.class, 1); - 加载公文信息
* context.getProcessInstance(从公文中获取的流程实例ID); - 即根据流程实例ID加载流程实例
* processInstance.getRootToken().signal(); - 触发流程往下走(即到达第一个节点)
- 这时候,我们可以测试一下,看看流程当前所处的节点
* processInstance.getRootToken().getNode().getName()
- 第一个节点对应的用户登录,应该能够查询到其当前的任务(有公文等待其审批)
* List tasks = context.getTaskMgmtSession().findTaskInstances("张三"); - 查找张三的任务列表
* 列表元素是TaskInstance实例
* 通过:taskInstance.getProcessInstance().getContextInstance().getVariable("document"); 可以找到其绑定的公文ID
- 查找到当前的任务对应的公文之后,即可对其审批,并继续往下走
* taskInstance.end();
- 如此,直到结束
* processInstance.hasEnded() - 如果流程已经到达终点,本调用将返回true
发表评论
-
LTS 轻量级分布式任务调度框架(Light Task Schedule)
2015-03-07 09:53 8696LTS 轻量级分布式任务调度框架(Light Task Sch ... -
LTS 轻量级分布式任务调度框架(Light Task Schedule)
2015-03-07 09:52 0<div class="iteye-blog- ... -
Struts2.1 处理未知Action 和访问不存在的页面
2011-10-18 12:13 1369你可以配置个默认action,当请求的action不存在时,他 ... -
getRequestDispatcher()与sendRedirect()的区别
2011-09-28 00:49 1086getRequestDispatcher()与sendRedi ... -
java单例模式的几种写法
2011-07-05 19:52 1469private static final UserSe ... -
图片中文路径 不能显示处理
2011-04-09 22:33 1588在html页面中,引用了带汉字的图片,形如<img sr ... -
带html标签的中英文字符串截取之完整性
2011-04-05 23:50 1762需求一: 数据库中存储有一段带html标签的文字,如: & ... -
java清除html格式
2011-04-05 23:42 905s = s.replaceAll("(\\<\ ... -
内部类
2010-09-20 13:21 958package InnerClass; //内部类可以继 ... -
Java的特点
2010-09-19 22:08 813Java是一种简单、动态、 ... -
初识JUnit
2010-09-19 00:09 1073package com.hugui.juint4; ... -
PropertiesEditor插件
2010-09-16 15:20 1337PropertiesEditor插件是一个资源文件编码转换插件 ... -
java对国际化的支持
2010-09-01 00:17 10481.缺省的Locale是由操作系统决定的 2.Locale是由 ... -
java中hashcode()和equals()的详解【转】
2010-08-31 18:30 8011. 首先equals()和hashcode() ... -
关于SimpleDateFormat
2010-08-30 23:39 803首先说明一下关键的参数 G 年代标志符 y 年 M ... -
Java中精确计算的一个类用BigDecimal
2010-08-30 23:38 1033/* * * 如果需要精确计算,非要用St ... -
如何去掉JFrame上的最大化最小化和关闭按钮 【转】
2010-08-30 23:36 1305关键字: 去掉jframe上的 ... -
InvocationTargetException
2010-08-30 23:32 2916InvocationTargetException 是一种包装 ... -
Class.forName()
2010-08-30 23:30 856在Java开发特别是数据库开发中,经常会用到Class.for ... -
字符码转换(一个小程序)
2010-08-30 23:29 996package test; public cla ...
相关推荐
### JBPM4开发步骤详解与服务接口功能解析 JBPM4是JBPM系列的一个版本,专注于提供一个轻量级的工作流引擎,适用于企业级应用的流程自动化。它以简单直观的方式设计,使得开发者能够轻松地定义、部署和执行业务流程...
jbpm开发步骤主要涵盖了几大关键环节,包括环境配置、数据库准备、jBPM的安装、Eclipse插件安装以及项目配置与初始化。以下是对这些步骤的详细解释: 1. **环境配置**: - **JDK安装**:首先需要安装JDK 1.7或以上...
"jbpm安装步骤及示例开发步骤.txt"文件应当详细说明了每一步的操作,包括如何下载和安装jbpm runtime,如何配置jbpm的工作目录,以及如何启动和测试示例。这个文档是安装和运行示例的关键,务必仔细阅读并按照步骤...
### J2EE OA框架JBPM开发步骤详解 JBPM(Java Business Process Management)是一个开源的工作流引擎,基于Java语言开发,适用于J2EE环境下的办公自动化(OA)系统设计与实现。JBPM提供了完整的业务流程管理功能,...
这通常包括以下步骤: 1. **Java环境**:jbPM 3.2基于Java平台,因此首先确保安装了JDK,并设置好`JAVA_HOME`环境变量。 2. **Maven或Ant**:jbPM 3.2的构建工具可以是Maven或Ant,选择其中一种进行安装并配置。 ...
"JBPM3.1Help(中文).chm"可能包含了关于jbpm3的安装步骤、API使用、工作流设计等方面的中文帮助文档,这对于初学者了解jbpm3的基础操作和核心概念非常有帮助。 "jbpm开发指南.pdf"可能是对jbpm4或更高版本的开发者...
eclipse 下安装jbpm-4.4 的安装步骤
JBPM(Java Business Process Management)是一款开源的工作流管理系统,它提供了强大的业务流程建模、执行和监控能力。本文将深入探讨JBPM的工作原理、表结构及其在实际操作中的应用。 1. **JBPM特色** - **灵活...
例如,保险公司可以利用 BPM 来自动化处理保险理赔的各个步骤。 BPM 解决方案通常包括三个主要组成部分:一个执行流程定义的引擎、允许引擎与外部世界交互的服务以及帮助流程开发和监控的工具。虽然“工作流”和 ...
通过以上步骤,你已经在MyEclipse 10中成功配置了JBPM开发环境,可以开始你的业务流程管理应用的开发之旅了。记得在开发过程中不断学习和熟悉JBPM的相关概念和技术,如工作流定义、任务节点、事件处理等,以提升你的...
这里以jbpm 3.1.4版本和SSH的特定版本(Struts 1.2、Spring 2.0、Hibernate 3.1)为例,具体步骤如下: 1. **jbpm-starters-kit**:下载jbpm-starters-kit-3.1.4,这个工具包包含了所有必要的工具和jar包,用于快速...
在压缩包中,"jbpm修改数据库.pdf"应该详细解释了上述步骤,而"postgresql.rar"可能包含了PostgreSQL驱动程序或其他相关资源。通过阅读文档和利用提供的资源,您应该能够顺利地将JBPM6从H2迁移到MySQL或PostgreSQL。...
整合SSH和JBPM4.3的过程主要涉及以下几个步骤: 1. **配置Spring**:在Spring配置文件中,需要添加对JBPM的依赖,包括数据源、session工厂、流程引擎等。Spring的事务管理器可以协调各个服务间的事务一致性。 2. *...
**jbPM4工作流示例jbpmDemo**是一款基于jBPM4的工作流管理系统实例,旨在帮助用户深入了解和掌握jBPM4工作流引擎的使用方法。jBPM4是一款强大的开源工作流管理系统,它提供了流程建模、执行以及监控等功能,广泛应用...
jPDL允许开发者定义流程中的各个步骤、任务间的流转规则以及处理异常情况的策略。流程定义描述通常包含流程的开始和结束条件,以及中间的活动和分支。程序接口则提供了与流程交互的API,例如启动流程实例、查询流程...
接下来,我们来详细阐述JBPM4.4的环境搭建步骤: 1. **安装Java运行环境**:JBPM是基于Java开发的,因此首先确保你的计算机上已经安装了JDK 1.6或更高版本,并且设置了相应的`JAVA_HOME`环境变量。 2. **下载JBPM...