三阶段---Activiti初体验

关于工作流的案例

image

Activiti7是啥?

他是一个java工作流框架--可以专门帮我做审批流程

怎么玩?

我先在资源中建一个bpmn目录然后在里面画一个bpmn图
image
image

操作activiti引擎的方法

1.初始化引擎--为了连接数据库 创建activiti需要的表 拿到流程引擎

@Test
    public void init() {
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        System.out.println(processEngine);
    }

2.部署流程---把我画的bpmn图上传到activiti上 让他认识一下我画的图

  //部署
    @Test
    public void testDeploy() {
        //获取流程引擎对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //获取仓库
        RepositoryService repositoryService = processEngine.getRepositoryService();
        //完成部署
        //调用activiti中的api来实先部署
        Deployment deployment = repositoryService.createDeployment()
                .addClasspathResource("bpmn/leaveProcess.bpmn20.xml")
                .addClasspathResource("bpmn/leaveProcess.png")
                .deploy();
        //部署对象只能获取到部署id和部署时间
        System.out.println("部署id:" + deployment.getId());
        System.out.println("部署时间" + deployment.getDeploymentTime());
//        System.out.println("名称(获取不到)" + deployment.getName());
//        System.out.println("key(获取不到)" + deployment.getKey());


    }

3.启动流程--可以理解为我点了我要请假的按钮

发一次请假申请生成一次流程实例

    //启动流程
    @Test

    public void testStartProcess() {
        //获取引擎对象
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        //获取运行时
        RuntimeService runtimeService = processEngine.getRuntimeService();
        //调用activiti的api来启动流程
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("leaveProcess");
        System.out.println("流程实例id: " + processInstance.getId());
        System.out.println("流程实例id: " + processInstance.getProcessInstanceId());
        System.out.println("流程实例id: " + processInstance.getProcessDefinitionId());
        System.out.println("流程实例id: " + processInstance.getProcessDefinitionKey());
//实例找定义 通过定义找部署
        System.out.println("流程实例id: " + processInstance.getDeploymentId());

    }

4.查询代办任务--审批人要看自己要审批啥

5.添加审批意见就是他是同意还是不同意

6.历史记录是为了查询记录

几个id的关系

Deployment(部署 ID)
↓ 上传了
Process Definition(流程定义 ID = 模板)
↓ 有人提交请假
Process Instance(流程实例 ID = 某张单据)
↓ 每一步审批
Task(任务 ID = 待办事项)

三个网关的区别

排他网关:选一个做
并行网关:同时做
包容网关:看条件满足条件的都做

posted on 2026-03-13 23:51  Zyy_32opr  阅读(19)  评论(0)    收藏  举报

导航