加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Activiti5 ExclusiveGateWay 排他网关(条件判断控件)

(2014-12-31 13:43:52)
标签:

activiti5

exclusivegateway

分类: Activiti5
package com.yunci.day2;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;

public class ExclusiveGateWay {



    // 创建流程引擎 processEngine
    private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
    // 创建仓库服务对象
    private RepositoryService repositoryService=processEngine.getRepositoryService();
    
    

    @Test
    public void deployZip(){
        // 创建发布配置对象
        DeploymentBuilder deploymentBuilder=repositoryService.createDeployment();
        // 添加资源发布文件
        InputStream inBpmn=this.getClass().getResourceAsStream("ExclusiveGateWay.bpmn");  // 文件路劲下去寻找资源 ,需要设置bulid Path默认只读取.java文件
        InputStream inPng=this.getClass().getResourceAsStream("ExclusiveGateWay.png");
        Deployment deployment=(Deployment) repositoryService.createDeployment() // 创建部署对象
                    .name("排他网关") // 添加部署名称
                    .addInputStream("ExclusiveGateWay.bpmn", inBpmn)
                    .addInputStream("ExclusiveGateWay.png", inPng)
                    .deploy(); // 完成部署
        System.out.println("部署ID:"+deployment.getId());
        System.out.println("部署名称:"+deployment.getName());
    //    部署ID:5001
    //    部署名称:连线
                    
        
    }
    
    
    @Test
    public void startProcessInstance(){
        String prodessDefinitionKey="ExclusiveGateway";
        // 创建运行是服务 对象
        RuntimeService runtimeService = processEngine.getRuntimeService();
        ProcessInstance processInstance=runtimeService.startProcessInstanceByKey(prodessDefinitionKey);
        
        System.out.println("流程实例ID:"+processInstance.getId());
        System.out.println("流程定义的ID:"+processInstance.getProcessDefinitionId());
        //流程实例ID:7501
        //流程定义的ID:sequenceFlow:1:5004
    }
    
    // 3. 查询当前人的个人任务
    @Test
    public void queryTask() throws Exception{
          //2.得到任务服务
          TaskService taskService=processEngine.getTaskService();
          //3.使用服务
          // 查询用户的私有任务
          String assignee="张三";
          List  tasks=taskService.createTaskQuery(). // 创建查询对象
                  //查询条件where部分
                  taskAssignee(assignee)// 指定个人任务查询,指定办理人
                  //.taskCandidateUser(arg0) // 组任务的办理人查询
                  //.processDefinitionId(arg0) // 使用流程定义的ID查询
                  //.processInstanceId(arg0) // 使用流程实例的id 查询
                  //.executionId(arg0)  // 使用执行对象的id查询
                 
//                  .orderByTaskCreateTime().active()//  使用创建时间的升序排序
                 
                //  .singleResult() // 返回唯一结果集
                  //.count()// 返回结果集的数量
                  //.listPage(arg0, arg1) // 分页查询
                  .list(); // 返回列表
          for (Task task : tasks) {
              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());
        }
    }
    
    //4 . 办理任务
    @Test
    public void complementTask(){
        // 1.自动去记载classpath下名为 activiti.cfg.xml的配置文件
          ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();     
          Map varibles=new HashMap(); // 这儿map value值需要为object对象
          varibles.put("money", 200);  // 这个参数message是画图 连线时定义的流程变量
          //2. 得到任务
          TaskService taskService=processEngine.getTaskService();
          //3. 使用任务服务完成任务(提交任务)
          String taskId="5004";
          taskService.complete(taskId,varibles);
    }

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有