JBPM具体流程设计代码基础篇
来源:互联网 发布:ios10越狱 还原网络 编辑:程序博客网 时间:2024/04/30 12:13
启动流程引擎:
ProcessEngine processEngine=Configuration.getProcessEngine();//直接从默认的配置文件'jbpm.cfg.xml'里得到流程引擎。
ProcessEngine processEngine =new Configuration() .buildProcessEngine();//创建流程引擎,默认是根据的配置文件同上。
ProcessEngine processEngine =new Configuration() .setResource("my-own-configuration-file.xml") .buildProcessEngine();//指定其他位置的配置文件。
可以根据流程引擎得到下面的服务:
RepositoryService repositoryService = processEngine.getRepositoryService();
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService();
HistoryService historyService = processEngine.getHistoryService();
ManagementService managementService = processEngine.getManagementService();
****************************************************************************************
****************************************************************************************
RepositoryService
包含了用来管理发布资源的所有方法,
例子:
import org.jbpm.api.*;
import junit.framework.TestCase;
import java.util.*;
public class HelloTest extends TestCase {
ProcessEngine processEngine;
public HelloTest()
{
processEngine=Configuration.getProcessEngine();
}
public void testdeploy()
{
RepositoryService repositoryService=processEngine.getRepositoryService();
String deploymentId=repositoryService.createDeployment().addResourceFromClasspath("helloword.jpdl.xml").deploy();
System.out.print("!!!!!!!!!!!!!!"+deploymentId);//1
List<ProcessDefinition> list=repositoryService.createProcessDefinitionQuery().list();
for(ProcessDefinition pd:list){
System.out.println("ID"+pd.getId()); //helloword-1
System.out.println("DeploymentId"+pd.getDeploymentId());//1
System.out.println("Key"+pd.getKey());//helloword
System.out.println("Name"+pd.getName());//helloword
System.out.println("Version"+pd.getVersion());//1
}
repositoryService.deleteDeploymentCascade(deploymentId);//级联删除
}
}
****************************************************************************************
****************************************************************************************
ExecutionService
流程实例
ExecutionService executionService=processEngine.getExecutionService();
创建流程实例方法:
(1)ProcessInstance pi=executionService.startProcessInstanceByKey("helloword");
(2)ProcessInstance pi = executionService.startProcessInstanceById("helloword-1");
携带变量:
Map<String,Object> variables = new HashMap<String,Object>();
variables.put("customer", "John Doe");
variables.put("type", "Accident");
variables.put("amount", new Float(763.74));
ProcessInstance processInstance =executionService.startProcessInstanceByKey("helloword ", variables);
例子:
import junit.framework.TestCase;
import org.jbpm.api.*;
import java.util.*;
public class ProcessInstanceTest extends TestCase {
ProcessEngine processEngine;
public ProcessInstanceTest()
{
processEngine=Configuration.getProcessEngine();
}
protected void setUp()
{
processEngine.getRepositoryService().createDeployment().addResourceFromClasspath("helloword.jpdl.xml").deploy();
}
public void testProcessInstance()
{
ExecutionService executionService=processEngine.getExecutionService();
ProcessInstance pi=executionService.startProcessInstanceByKey("helloword");
System.out.println(pi);
System.out.println(pi.isEnded());//false没结束,等待
pi=executionService.signalExecutionById(pi.getId());//继续执行,使其结束
System.out.println(pi.isEnded());//true结束流程
}
public void testProcessInstanceEnd()
{
ExecutionService executionService=processEngine.getExecutionService();
ProcessInstance pi=executionService.startProcessInstanceByKey("helloword");
executionService.endProcessInstance(pi.getId(), "cancel");//将流程实例终结掉
}
public void testProcessInstanceDelete()
{
ExecutionService executionService=processEngine.getExecutionService();
ProcessInstance pi=executionService.startProcessInstanceByKey("helloword");
executionService.deleteProcessInstanceCascade(pi.getId());//将流程级联删除
}
public void testProcessInstanceList()
{
ExecutionService executionService=processEngine.getExecutionService();
ProcessInstance pi=executionService.startProcessInstanceByKey("helloword");
ProcessInstance pi2=executionService.startProcessInstanceByKey("helloword");
List<ProcessInstance> list=executionService.createProcessInstanceQuery().list();
for(ProcessInstance processInstance:list)
{
System.out.println(processInstance.getId());
}
}
}
****************************************************************************************
****************************************************************************************
TaskService
待办任务
TaskService taskService = processEngine.getTaskService();//流程任务
List<Task> taskList = taskService.findPersonalTasks(userid);//查询该用户的任务列表
携带变量
Map<String,Object> map = new HashMap<String,Object>();
map.put("addall", addall);
map.put("student", stu_id);
taskService.completeTask(taskId, map);
- JBPM具体流程设计代码基础篇
- JBPM4基础篇04-设计请假流程,JBPM集成到Web Project
- JBPM4基础篇04-设计请假流程,JBPM集成到Web Project
- JBPM4基础篇04-设计请假流程,JBPM集成到Web Project
- jBPM Web Designer(jBPM Web 设计器、jBPM 流程设计器、工作流程设计器)
- JBPM具体应用之流程变量与任务变量
- jBPM-Side流程设计器架构说明
- JBPM 流程定义版本升级设计
- JBPM学习(4):设计请假流程
- jbpm流程设计之fork、join
- JBPM流程设计系列—入门简介
- JBPM—web流程设计器
- jbpm 通用流程设计,请假大家
- jBPM开发企业流程应用之安装流程设计器
- jbpm designer流程设计器保存流程特慢问题解决
- jbpm流程设计器-oryx设计器操作教程
- jbpm流程设计器-oryx设计器-20120525 BUG修正
- 揭秘jbpm流程引擎内核设计思想及构架
- 理解TestCase类(转)
- 基础SPFA算法模板
- 通过视图修改数据时所应掌握的基本准则
- c语言标准库低通的qsort函数不适宜所有排序任务的原因
- Tomcat发布网站知识集锦(修改端口、修改默认发布目录、多域名绑定)(
- JBPM具体流程设计代码基础篇
- 如何获取JS变量类型
- 直接调用类成员函数地址(转载自http://blog.csdn.net/shamozhihuzhubohu/archive/2010/07/30/5776979.aspx)
- 优秀文章预览
- Eclipse CDT中增加SNMP++ libary
- Using Database Features in Visual Studio
- Servlet总结
- IP地址批量查询
- labview编程技巧----labview与INI文件