- 浏览: 960095 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (385)
- 搜索引擎学习 (62)
- 算法 (1)
- 数据库 (15)
- web开发 (38)
- solr开发 (17)
- nutch 1.2 系统学习 (8)
- cms (1)
- 系统架构 (11)
- linux 与 unix 编程 (16)
- android (15)
- maven (1)
- 关注物流 (1)
- 网址收集 (1)
- 分布式,集群 (1)
- mysql (5)
- apache (1)
- 资料文档备份 (7)
- 上班有感 (0)
- 工作流 (15)
- javascript (1)
- weblogic (1)
- eclipse 集成 (1)
- JMS (7)
- Hibernate (1)
- 性能测试 (1)
- spring (6)
- 缓存cache (1)
- mongodb (2)
- webservice (1)
- HTML5 COCOS2D-HTML5 (1)
- BrowserQuest (2)
最新评论
-
avi9111:
内陷到android, ios, winphone里面也是随便 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
avi9111:
呵呵,做不下去了吧,没有第二集了吧,游戏是个深坑,谨慎进入,其 ...
【HTML5游戏开发】二次开发 BrowserQuest 第一集 -
excaliburace:
方案3亲测完全可用,顺便解决了我其他方面的一些疑问,非常感谢
spring security 2添加用户验证码 -
yuanliangding:
Spring太强大了。
Spring Data JPA 简单介绍 -
小高你好:
什么是hibernate懒加载?什么时候用懒加载?为什么要用懒加载?
/**
*
*/
package com.zwl.util;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.zip.ZipInputStream;
import org.jbpm.api.Execution;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.ManagementService;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;
import org.jbpm.api.model.OpenExecution;
import org.jbpm.api.task.Participation;
import org.jbpm.api.task.Task;
import org.jbpm.pvm.internal.model.ExecutionImpl;
import org.jbpm.pvm.internal.task.OpenTask;
import org.jbpm.pvm.internal.task.TaskImpl;
/**
* jbpm简单工具类 。
*
* @author lijian
*
*/
public class JbpmUtil {
private ProcessEngine processEngine;
private RepositoryService repositoryService = null;
private ExecutionService executionService = null;
private TaskService taskService = null;
private HistoryService historyService = null;
private ManagementService managementService = null;
public JbpmUtil() {
}
/**
* 通过构造方法,传递流程引擎,实例化相关实体类。
*
* @param processEngine
*/
public JbpmUtil(ProcessEngine processEngine) {
this.processEngine = processEngine;
repositoryService = processEngine.getRepositoryService();
executionService = processEngine.getExecutionService();
taskService = processEngine.getTaskService();
historyService = processEngine.getHistoryService();
managementService = processEngine.getManagementService();
}
// ------------------- 实用方法 --------------------
/**
* 部署新流程定义通过路径。
*
* @param resourceName
* @return
*/
public String newDeployDefinitionByPath(String resourceName) {
return repositoryService.createDeployment().addResourceFromClasspath(
resourceName).deploy();
}
/**
* 部署新流程定义通过zip包
*
* @param resourceZipName
* @return
*/
public String newDeployDefinitionByZip(String resourceZipName) {
ZipInputStream zis = new ZipInputStream(this.getClass()
.getResourceAsStream(resourceZipName));
return repositoryService.createDeployment()
.addResourcesFromZipInputStream(zis).deploy();
}
/**
* 部署新流程定义通过url请求。
*
* @param urlStr
* @return
* @throws MalformedURLException
* 网络异常
*/
public String newDeployDefinitionByUrl(String urlStr)
throws MalformedURLException {
URL url = new URL(urlStr);
return repositoryService.createDeployment().addResourceFromUrl(url)
.deploy();
}
/**
* 开始一个流程实例
*
* @param id
* @param map
* @return
*/
public ProcessInstance startProcessInstanceById(String processDefinitionId,
Map<String, ?> variables) {
return executionService.startProcessInstanceById(processDefinitionId,
variables);
}
/**
* 完成任务
*
* @param taskId
* @param variables
*/
public void completeTask(String taskId, Map<String, ?> variables) {
if (null == variables) {
taskService.completeTask(taskId);
return;
}
taskService.completeTask(taskId, variables);
}
/**
* 完成任务
*
* @param taskId
* @param outcome
*/
public void completeTask(String taskId, String outcome) {
if (null == outcome) {
taskService.completeTask(taskId);
return;
}
taskService.completeTask(taskId, outcome);
}
/**
* 获得所有发布的流程
*
* @return
*/
public List<ProcessDefinition> getAllProcessDefinitionList() {
return repositoryService.createProcessDefinitionQuery().list();
}
/**
* 获得所有的流程实例
*
* @return
*/
public List<ProcessInstance> getAllProcessInstanceList() {
return executionService.createProcessInstanceQuery().list();
}
/**
* 根据流程实例executionId与variableName,获取指定的变量值
*
* @param executionId
* @param variableName
* @return
*/
public Object getVariableByexecutionId(String executionId,
String variableName) {
return executionService.getVariable(executionId, variableName);
}
/**
* 根据任务taskId与变量名variableName,获取指定变量值
*
* @param taskId
* @param variableName
* @return
*/
public Object getVariable(String taskId, String variableName) {
return taskService.getVariable(taskId, variableName);
}
/**
* 设置变量
*
* @param taskId
* @param variables
*/
public void setVariables(String taskId, Map<String, ?> variables) {
taskService.setVariables(taskId, variables);
}
/**
* 获取指定用户Id的任务
*
* @param userId
* @return
*/
public List<Task> findPersonalTasks(String userId) {
return taskService.findPersonalTasks(userId);
}
/**
* 根据任务id获取任务
*
* @param taskId
* @return
*/
public Task getTaskByTaskId(String taskId) {
return taskService.getTask(taskId);
}
/**
* 通过主任务,参与会签者,创建子任务
*
* @param task
* @param users
*/
public void createSubTasks(Task task, List<String> users) {
// OpenTask才有createSubTask方法,Task接口是没有的
OpenTask oTask = (OpenTask) task;
// 这个对象非常重要,没有它,通过子任务无法跟主任务获得联系
Execution execution = executionService.findExecutionById(task
.getExecutionId());
// 获得所有的参与者
for (String userId : users) {
TaskImpl subTask = (TaskImpl) oTask.createSubTask();
subTask.setAssignee(userId);
subTask.setName(task.getName());
subTask.setFormResourceName(task.getFormResourceName());
// 这句话是关键 只有设定同样的实例 子任务才能获得主任务设定的变量
subTask.setExecution((ExecutionImpl) execution);
taskService.addTaskParticipatingUser(task.getId(), userId,
Participation.CLIENT);
}
}
/**
* @param execution
* @return
*/
public Task getByOpenExecution(OpenExecution execution) {
// 获得实例ID
String pid = execution.getProcessInstance().getId();
return taskService.createTaskQuery().processInstanceId(pid)
.activityName(execution.getName()).uniqueResult();
}
/**
* Saves the given task to persistent storage.
*
* @param task
* @return
*/
public String saveTask(Task task) {
return taskService.saveTask(task);
}
/**
* 级联删除流程定义,直接删除该流程定义下的所有实例
*
* @param deploymentId
* 流程定义id
*/
public void deleteDeploymentCascade(String deploymentId) {
if (deploymentId == null) {
return;
}
repositoryService.deleteDeploymentCascade(deploymentId);
}
// setter-getter方法
public ProcessEngine getProcessEngine() {
return processEngine;
}
public void setProcessEngine(ProcessEngine processEngine) {
this.processEngine = processEngine;
System.out.println("processEngine=" + processEngine);
repositoryService = processEngine.getRepositoryService();
executionService = processEngine.getExecutionService();
taskService = processEngine.getTaskService();
historyService = processEngine.getHistoryService();
managementService = processEngine.getManagementService();
}
public RepositoryService getRepositoryService() {
return repositoryService;
}
public void setRepositoryService(RepositoryService repositoryService) {
this.repositoryService = repositoryService;
}
public ExecutionService getExecutionService() {
return executionService;
}
public void setExecutionService(ExecutionService executionService) {
this.executionService = executionService;
}
public TaskService getTaskService() {
return taskService;
}
public void setTaskService(TaskService taskService) {
this.taskService = taskService;
}
public HistoryService getHistoryService() {
return historyService;
}
public void setHistoryService(HistoryService historyService) {
this.historyService = historyService;
}
public ManagementService getManagementService() {
return managementService;
}
public void setManagementService(ManagementService managementService) {
this.managementService = managementService;
}
}
发表评论
-
jbpm4 数据库结构关系图 JBPM数据库分析
2012-02-08 18:29 5422持久化基础知识 ... -
【转】JBPM深入解析之变量设计
2012-02-08 18:21 1054在流程的流转的过程中,很多时候我们需要根据不同的实际情况传入一 ... -
jbpm4.4之待处理任务 【转】
2012-01-17 17:05 2687jbpm4中已有获取待指定用户处理的任务的方法,如下: ... -
【转】jBPM4:ForEach的使用--动态设置参与人数
2012-01-03 21:49 1886流程确定的情况下,有时候完成一个步骤人数不确定,在任务发布 ... -
jbpm4任务列表分页显示【转】
2011-12-29 18:23 1570关键时刻发现我并不会,于是下定决心研究一下,发现jbpm4 ... -
jbpm 4 工作流会签的理解
2011-12-22 16:41 1742理解步骤: 1 用一个任 ... -
解决jbpm4.4和spring多数据源的问题【转】
2011-12-22 14:05 1449采用官方的解决方案,在单数据源下没 ... -
JBPM4.4中的退回和取回的功能实现 【转】
2011-12-22 11:19 3401在JBPM4.4中,退回功能很容易明白,就是执行到当前任务时, ... -
jbpm4.4整合自己的用户体系 【转】
2011-12-20 18:03 1269虽然jbpm4中已经有用户体系,但实际项目中也会有自己的用户体 ... -
工作流之时间管理【转】
2011-12-17 10:39 1194现在我们来看工作流的 ... -
JBPM4.4 撤销任务/回退任务/自由流【转】
2011-12-16 15:53 3234JBPM4.4任务撤销操作/回退操作/自由流 详细操作看注释。 ... -
【转】JBPM TASK
2011-12-15 14:50 1390JBPM TASK ... -
【转】JBPM4 - TaskService
2011-12-13 12:53 1213TaskService的主要目的是 ... -
工作流开始学习
2011-12-01 13:33 1019开始学习。。。 同事给了一个 实例 整合ssh2 + ...
相关推荐
**jbPM4.x使用前的准备工作** jbPM(Java Business Process Management)是一个开源的工作流和业务流程管理系统,它提供了一套完整的解决方案来管理和执行业务流程。在开始使用jbPM4.x之前,理解其核心概念、环境...
jbpm jbpm4.3.jar DDDDDDDD
jBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于实现业务流程自动化。这个资料大全包含了jBPM从3.x到5.x不同版本的相关文档,为开发者提供了全面的学习资源。 首先,我们来看看...
JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...
**其他依赖库**:如log4j.jar(日志记录)、commons-logging.jar(日志接口)、commons-lang.jar(通用语言工具类)、commons-collections.jar(集合操作工具类)等,这些都是Java开发中常用的第三方库,为Jbpm提供...
- **jBPM4工作流应用开发指南:** 表明这是一个专注于jBPM4版本的工作流应用开发的指南,由胡奇编写。 - **胡奇:** 该标签重复提及胡奇,强化了指南作者的身份和该作品的关联性。 ### 部分内容知识点: 由于提供...
jBPM,全称Java Business Process Management,是一个开源的工作流管理系统,主要负责处理业务流程的建模、执行和管理。jBPM 4是该系统的第四个主要版本,它引入了诸多新特性和改进,旨在提供更高效、灵活且可扩展的...
"java 工作流"和"jbpm 工作流"标签进一步明确了主题,这是一份关于使用Java语言和JBPM框架实现工作流的材料。 描述中提到的“jbpm工作流视频文件,B5实战_将复杂业务数据模型关联到流程”表明,这份资料可能是以...
标题中的"Spring 3.1.x + Hibernate 4.2.x + JBPM 5.2 + Ecache例子源码"代表了一个集成开发环境,其中包含了四个关键的技术组件: 1. **Spring 3.1.x**:这是一个开源的应用框架,主要用于简化Java企业级应用的...
JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...
jbpm是一个开源项目,它提供了全面的工作流和业务规则管理功能,使开发人员能够构建灵活且可扩展的业务应用程序。 jbpm-jpdl.jar是jbpm的Job Process Definition Language(JPDL)实现的库文件。JPDL是一种XML方言...
【jbpm-4.4.zip part03】这个压缩文件是关于jbpm 4.4版本的组成部分,jbpm(Java Business Process Management)是一个开源的工作流管理系统,它提供了业务流程建模、部署、执行和监控的功能。jbpm 4.4是该系统的一...
jbpm是一个开源的工作流管理系统,它提供了一套全面的工具和服务,用于设计、部署和执行业务流程。jbpm-4.4.jar包含了jbpm的主要功能,包括流程定义、流程实例管理、任务服务、事件处理以及与数据库交互的持久化层。...
jBPM4 是一个基于 Java 的工作流引擎,它提供了一个灵活的流程管理系统,允许开发者构建、部署和管理复杂的企业流程应用。在本文中,我们将介绍如何安装和配置 jBPM4,包括安装先决条件、下载和解压 jBPM4 软件包、...
【JBoss jBPM——工作流引擎】 工作流引擎是一种软件系统,用于自动化业务流程,它根据预定义的规则和步骤来协调..."jbpm.nh"文件中的具体实践经验和案例分析将进一步加深对jBPM的理解,帮助读者更好地运用这一工具。
jbpm-3.1.2.zip 文件包含了 jBpm 的一个重要版本——jBpm 3.1.2,这是一个开源的工作流管理系统,专为构建灵活且可扩展的业务流程解决方案而设计。jBpm 提供了一种方式,使得开发者能够用简单而强大的语言来表达业务...
JBPM4.chm jbpm4 帮助文档,英文版javaDoc
jboss jbpm4最新开发包 采用了pvm框架
spring-modules-jbpm31.jar