Activiti7工作流入门

1.绘制流程图

开始—>>第一步工作–>>第二步工作–>>…–>>结束

1.1指定流程

assignee:负责人姓名

name:任务节点名称

id:任务节点id

2.部署流程定义–RepositoryService–Deployment

//创建ProcessEngine对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //获取RepositoryService对象
        RepositoryService repositoryService = processEngine.getRepositoryService();
        //进行部署
        Deployment deployment = repositoryService.createDeployment()
                .addClasspathResource("bpmn/leave.bpmn")//根据bpmn文件
                .addClasspathResource("bpmn/leave.png")//根据png文件
                .name("请假流程")//根据name
                .deploy();//部署

2.1 deployment能获取的值

 		//输出部署的一些信息
        System.out.println("流程部署ID:"+deployment.getId());
        System.out.println("流程部署名称:"+deployment.getName());

2.2 操作的表

  • ACT_GE_PROPERTY 引擎属性表–update
  • ACT_RE_PROCDEF 流程定义表–insert
  • ACT_RE_DEPLOYMENT 流程部署表–insert
  • ACT_GE_BYTEARRAY 二进制资源表–insert

3.启动流程–RuntimeService—RuntimeService

//创建ProcessEngine对象
	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
	//获取RuntimeService对象
	RuntimeService runtimeService = processEngine.getRuntimeService();
	//根据流程定义的key启动流程实例,这个key是在定义bpmn的时候设置的--一般是bpmn文件名
	ProcessInstance instance = runtimeService.
								startProcessInstanceByKey("leaveProcess");

3.1 instance获取相关信息

		//获取流程实例的相关信息
	 	System.out.println("流程实例ID::" + processInstance.getProcessInstanceId());
        System.out.println("获取ID::" + processInstance.getId());
        System.out.println("获取部署 ID" + processInstance.getDeploymentId());
        System.out.println("对应的流程定义ID" + processInstance.getProcessDefinitionId());

3.2操作的表

  • ACT_HI_TASKINST 历史任务表–insert
  • ACT_HI_PROCINST 历史流程实例表–insert
  • ACT_HI_ACTINST 历史活动信息表–insert
  • ACT_HI_IDENTITYLINK 历史身份连接表–insert
  • ACT_RU_EXECUTION 运行时执行实例表–insert
  • ACT_RU_TASK 运行时任务表–insert
  • ACT_RU_IDENTITYLINK 运行时身份连接表–insert

4.任务查询–TaskService

	//任务负责人
    String assignee = "李四";
    //创建ProcessEngine对象
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    //获取TaskService
    TaskService taskService = processEngine.getTaskService();
    //获取任务集合
    List<Task> taskList = taskService.createTaskQuery()
            .processDefinitionKey("leaveProcess")//获取流程
            .taskAssignee(assignee)//根据负责人获取任务节点
            .list();

4.1 taskService获取信息

		//遍历list
		System.out.println("流程定义id = " + task.getProcessDefinitionId());
        System.out.println("流程实例id = " + task.getProcessInstanceId());
        System.out.println("任务id = " + task.getId());
        System.out.println("任务名称 = " + task.getName());

4.2操作的表

  • ACT_RU_TASK 运行时任务表
  • ACT_RE_PROCDEF 流程定义表–select

5.任务处理–TaskService

对象方式同任务查询

获取任务对象后可以执行的操作

 //遍历任务列表
    for(Task task:taskList){
        //结束当前任务节点,进入下一步任务,同时当前工作流任务负责人和任务id任务name都改变
        taskService.complete(task.getId());
    }

5.1操作的

  • ACT_GE_PROPERTY 引擎属性表–update
  • ACT_HI_TASKINST 历史任务表–insert
  • ACT_HI_ACTINST 历史活动信息表–insert
  • ACT_HI_IDENTITYLINK 历史身份连接表–insert
  • ACT_RU_TASK 运行时任务表–insert
  • ACT_RU_IDENTITYLINK 运行时身份连接表–insert
  • ACT_RU_EXECUTION 运行时执行实例表–update
  • ACT_HI_TASKINST 历史任务表–update
  • ACT_HI_TASKINST 历史任务表–update
  • ACT_RU_TASK 运行时任务表–delete

6.添加审批意见–TaskService

对象方式同任务查询

获取任务对象后可以执行的操作

		//在任务执行之前任务添加批注信息--参数:任务id,工作流实例id,任务名称,审批意见
        taskService.addComment(task.getId(),task.getProcessInstanceId(),task.getName()+"审批通过");
		//完成当前任务节点	
        taskService.complete(task.getId());

6.1更新的表–同任务处理

7.查看历史审批–taskService

//获取taskService
//代码同上

//获取historyService
    HistoryService historyService = processEngine.getHistoryService();
//获取历史审核信息
    List<HistoricActivityInstance> list = historyService
            .createHistoricActivityInstanceQuery()
            .activityType("userTask")//只获取用户任务
            .processInstanceId(processInstanceId)//工作流实例id
            .taskAssignee(taskAssignee)//任务负责人
            .finished()
            .list();

7.1可以获取的信息

		System.out.println("任务名称:"+instance.getActivityName());
        System.out.println("任务开始时间:"+instance.getStartTime());
        System.out.println("任务结束时间:"+instance.getEndTime());
        System.out.println("任务耗时:"+instance.getDurationInMillis());
        //获取审核批注信息--有则获取,没有则没有
        List<Comment> taskComments = taskService.getTaskComments(instance.getTaskId());
        if(taskComments.size()>0){
            System.out.println("审批批注:"+taskComments.get(0).getFullMessage());
        }
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值