创建HelloWorld.bpmn
开始节点
结束节点
任务节点
连线
选择出工作台
myEclipse–>window–>Show View–>Properties
可以查看节点属性,填写节点属性
id————为流程ID
name——–为流程名称
点击节点后出现
id ——————节点ID
name—————节点名称
Main config
Assignee ——————–单个人审批
Candidate use…ma separated ————多个人
Candidate gro…ma separated ————多个组织
开始开发
1、写部署流程定义
创建service
ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
/**
* 部署流程定义
*/
@Test
public void deploymentProcessDefinition(){
Deployment deployment=processEngine.getRepositoryService()//与流程定义和部署对象 相关的Service
.createDeployment()//创建一个部署对象
.name("helloworld入门")//添加部署的名称
.addClasspathResource("win/mimang/diagrma/HelloWorld.bpmn") //从classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("win/mimang/diagrma/HelloWorld.png")
.deploy();//部署完成
System.out.println(deployment.getId());
System.out.println(deployment.getName());
}
创建完成一个流程
在act_re_deployment表中
2、启动流程实例
/**
* 启动流程实例
*/
@Test
public void startProcessInstance(){
//流程定义的KEY
String processDefinitionKey="helloword";
ProcessInstance pi= processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的service
// .startProcessInstanceById("1");//对应数据库中的ID
.startProcessInstanceByKey(processDefinitionKey); //使用流程定义的KEY启动流程实例,key对应HelloWorld.bpmn中的id属性 helloword 可以在 act_re_procdef 表中查看KEY_字段值,默认是最新版本的流程定义启动
System.out.println("流程实例ID:"+pi.getId()); //101
System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID helloword:1:4
}
101为 act_ru_execution 表中ID
helloword:1:4 为 act_re_procdef 表中ID
3、查询当前人的个人任务
/**
* 查询当前人的个人任务
*/
@Test
public void findMyPersonalTask(){
String assignee="王五";
List<Task> list=processEngine.getTaskService()//与正在执行的 任务管理相关的Sercice
.createTaskQuery()//创建任务查询 对象
.taskAssignee(assignee)//制定个人任务查询,指定办理人
.list();
if(list!=null&&list.size()>0){
for (Task task : list) {
System.out.println("任务ID:"+task.getId());
System.out.println("任务名称:"+task.getName());
System.out.println("任务的创建时间:"+task.getCreateTime());
System.out.println("任务的办理人:"+task.getAssignee());
System.out.println("流程实例ID:"+task.getProcessInstanceId());
System.out.println("执行对象ID:"+task.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
}
}
}
//只能查出指定的人的自己信息
任务ID:302
任务名称:审批【总经理】
任务的创建时间:Mon May 16 21:15:07 CST 2016
任务的办理人:王五
流程实例ID:101
执行对象ID:101
流程定义ID:helloword:1:4
4、完成我的任务,流程下一步
/**
* 完成我的任务,流程下一步
*/
@Test
public void completeMyPersonalTask(){
String taskId="302";//任务ID
processEngine.getTaskService()//与正在执行的 任务管理相关的Sercice
.complete(taskId);//流程下一步
System.out.println("完成任务:任务:"+200);
}
完成任务:任务:200
完成流程之后,所以数据都可以在历史数据中查询,流程之中业务数据就靠自己去写了