package com.eway.framework.basecomponent.services.jbpm.services.process.impl;
import junit.framework.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.db.GraphSession;
import org.jbpm.db.TaskMgmtSession;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
import java.util.Map;
import com.eway.framework.basecomponent.services.jbpm.services.process.JbpmProcessInstanceService;
/**
* Created by IntelliJ IDEA.
* Author: xinpeng
* Date: 2008-10-20
* Time: 21:22:29
* To change this template use File | Settings | File Templates.
*/
public class JbpmProcessInstanceServiceImpl implements JbpmProcessInstanceService {
private static final Log log = LogFactory.getLog(JbpmProcessInstanceServiceImpl.class);
/**
* 开始流程
*
* @param userId
* @param processName
*/
public void startProcess(String userId, String processName) {
JbpmContext jbpmContext = null;
try {
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
jbpmContext = jbpmConfiguration.createJbpmContext();
GraphSession graphSession = jbpmContext.getGraphSession();
//加载流程定义
ProcessDefinition processDefinition =
graphSession.findLatestProcessDefinition(processName);
log.info("name = " + processDefinition.getName());
// 创建流程实例:启动流程
ProcessInstance processInstance = new ProcessInstance(processDefinition);
log.info("processInstanceId = " + processInstance.getId());
processInstance.signal();
jbpmContext.save(processInstance);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jbpmContext != null)
jbpmContext.close();
}
}
/**
* 开始流程(流程名称,启动流程的参与者,流程变量MAP)
*
* @param userId
* @param processName
* @param processParameterMap
*/
public void startProcess(String userId, String processName, Map<String, Object> processParameterMap) {
JbpmContext jbpmContext = null;
try {
JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
jbpmContext = jbpmConfiguration.createJbpmContext();
GraphSession graphSession = jbpmContext.getGraphSession();
//加载流程定义
ProcessDefinition processDefinition =
graphSession.findLatestProcessDefinition(processName);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
//设置流程变量
Assert.assertNotNull(processParameterMap);
ContextInstance contextInstance = processInstance.getContextInstance();
for (String key : processParameterMap.keySet()) {
Object value = processParameterMap.get(key);
log.info("key:"+key+",value:"+value);
contextInstance.setVariable(key, value);
}
log.info("expense_money======"+contextInstance.getVariable("expense_money"));
processInstance.signal();
jbpmContext.save(processInstance);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jbpmContext != null)
jbpmContext.close();
}
}
/**
* 已阅
*
* @param taskInstanceId
*/
public void signInTaskInstance(long taskInstanceId) {
JbpmContext jbpmContext = null;
try {
jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession();
TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(taskInstanceId);
taskInstance.start();
jbpmContext.save(taskInstance);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jbpmContext != null)
jbpmContext.close();
}
}
/**
* 完成任务实例
*
* @param taskInstanceId
*/
public void completeTaskInstance(long taskInstanceId) {
JbpmContext jbpmContext = null;
try {
jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession();
TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(taskInstanceId);
taskInstance.end();
jbpmContext.save(taskInstance);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (jbpmContext != null)
jbpmContext.close();
}
}
/**
* 设置变量
*
* @param processInstanceId
* @param name
* @param value
*/
public void setVariable(long processInstanceId, String name, Object value) {
JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
ProcessInstance processInstance = jbpmContext.getProcessInstance(processInstanceId);
ContextInstance contextInstance = processInstance.getContextInstance();
contextInstance.setVariable(name, value);//设置到了rootToken
jbpmContext.save(processInstance);
jbpmContext.close();
}
/**
* @param processInstanceId
* @param variableMap
*/
public void setVariable(long processInstanceId, Map<String, Object> variableMap) {
Assert.assertNotNull(variableMap);
for (String varName : variableMap.keySet()) {
Object varValue = variableMap.get(varName);
setVariable(processInstanceId, varName, varValue);
}
}
/**
* 根据tokenid获取流程实例对象
*
* @param rootTokenId
* @return
*/
public ProcessInstance getProcessInstance(long rootTokenId) {
JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
return jbpmContext.getToken(rootTokenId).getProcessInstance();
}
/**
* 回退
*
* @param completedTaskInstanceId
*/
public void callbackTaskInstance(long completedTaskInstanceId) {
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
jbpm的扩展源代码
共44个文件
java:20个
class:20个
xml:3个
需积分: 9 83 下载量 16 浏览量
2008-12-05
16:39:00
上传
评论
收藏 66KB RAR 举报
温馨提示
jbpm做的扩展的源码,jbpm做的扩展的源码
资源推荐
资源详情
资源评论
收起资源包目录
code.rar (44个子文件)
code
conf
spring
jbpm.bean.xml 1KB
src
test
main
java
com
eway
framework
basecomponent
services
jbpm
services
identity
AbstractIdentityService.java 2KB
IIdentityService.java 2KB
action
decision
LeaveApproveDecisionHandler.java 703B
assign
SelfAssignmentHandler.java 1KB
po
Assignment.java 1KB
DirectorateLeaderOfUserAssignmentHandler.java 2KB
process
JbpmProcessInstanceService.java 2KB
dto
JbpmProcessDefinitionService.java 759B
impl
JbpmProcessInstanceServiceImpl.java 6KB
JbpmProcessDefinitionServiceImpl.java 4KB
DeployJbpmProcessServiceImpl.java 4KB
IDeployJbpmProcessService.java 458B
task
JbpmWorklistQueryService.java 2KB
dto
TaskInstanceDTO.java 3KB
impl
JbpmWorklistQueryServiceImpl.java 6KB
exception
listener
DeployJbpmProcessListener.java 4KB
util
page
Page.java 2KB
db
HibernateUtil.java 3KB
CloseSessionFilter.java 2KB
JbpmBaseJdbcDAO.java 6KB
build
com
eway
framework
basecomponent
services
jbpm
services
identity
IIdentityService.class 733B
AbstractIdentityService.class 1KB
decision
LeaveApproveDecisionHandler.class 703B
assign
DirectorateLeaderOfUserAssignmentHandler.class 2KB
SelfAssignmentHandler.class 1KB
po
Assignment.class 778B
process
JbpmProcessInstanceService.class 719B
IDeployJbpmProcessService.class 214B
JbpmProcessDefinitionService.class 555B
impl
JbpmProcessDefinitionServiceImpl.class 4KB
DeployJbpmProcessServiceImpl.class 3KB
JbpmProcessInstanceServiceImpl.class 4KB
task
dto
TaskInstanceDTO.class 2KB
JbpmWorklistQueryService.class 856B
impl
JbpmWorklistQueryServiceImpl.class 5KB
listener
DeployJbpmProcessListener.class 3KB
util
page
Page.class 1024B
db
CloseSessionFilter.class 2KB
HibernateUtil.class 2KB
JbpmBaseJdbcDAO.class 5KB
spring
jbpm.bean.xml 1KB
jbpm_adapter.jar 27KB
build.xml 2KB
共 44 条
- 1
资源评论
madrocket
- 粉丝: 1
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功