Activiti工作流-简单实例

Categories:

Activiti工作流的简单实例


1.绘制流程图

images

2.部署任务

@Test
public void addDeployment() {
    Deployment deployment = processEngine.getRepositoryService() // 与流程定义和部署对象相关的Service
            .createDeployment() // 创建一个部署对象
            .name("把大象放冰箱里分几步") // 设置对应流程的名称
            .addClasspathResource("put.bpmn")
            .deploy(); // 完成部署
}

3.启动任务

@Test
public void startProcess() {
    RuntimeService runtimeService = processEngine.getRuntimeService();
    //key是act_re_procdef中的KEY_,bpmn的id
    runtimeService.startProcessInstanceByKey("putElephant");
}

4.查看任务并提交

@Test
public void queryTask() {
    String assignee = "guanliyuan";
    List<Task> taskList = processEngine.getTaskService()//获取任务service
            .createTaskQuery()//创建查询对象
            .taskAssignee(assignee)//指定查询人
            .list();
    for (Task task : taskList) {
        //提交任务到下一个代理人
        processEngine.getTaskService().complete(task.getId());
    }
}

5.查看执行历史

@Test
public void viewHistory() {
    HistoryService historyService = processEngine.getHistoryService();
    HistoricProcessInstance historicProcessInstance =
            historyService
                    .createHistoricProcessInstanceQuery()
                    .processInstanceId("2501").singleResult();
    System.out.println("开始时间:" + historicProcessInstance.getStartTime());
    System.out.println("结束时间:" + historicProcessInstance.getEndTime());
}