(二)工作流Activiti7流程部署和启动

前置工作

使用Idea创建bpmn.xml文件并定义流程:
在这里插入图片描述
在这里插入图片描述
这里我定义了一个请假流程,流程定义文件保存在resource资源目录下的**/bpmn/leave.bpmn20.xml**
在这里插入图片描述
开始部署流程:

    @Test
    public void testActiviti(){
        //创建ProcessEngineConfiguration
        ProcessEngineConfiguration configuration =
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        //通过ProcessEngineConfiguration创建ProcessEngine,此时会创建数据库
        ProcessEngine processEngine = configuration.buildProcessEngine();
        // 使用RepositoryService进行部署
        Deployment deployment = processEngine.getRepositoryService().createDeployment()
                .addClasspathResource("bpmn/leave.bpmn20.xml")
                .name("请假流程")
                .deploy();

        // 4、输出部署信息
        System.out.println("流程部署id:" + deployment.getId());
        System.out.println("流程部署名称:" + deployment.getName());

    }

执行上面的代码后Activitri会自动帮我们把定义好的流程以及其他的信息一起保存在数据库,我们可以在数据库中查看到流程的部署信息:
ACT_RE_DEPLOYMENT
在这里插入图片描述
保存流程文件的ACT_GE_BYTEARRAY
在这里插入图片描述
到这里流程已经部署完成了,可以开始启动流程实例了。比如请假流程,每一个请假流程都会启动一个请假流程实例,就好比类和对象的关系,流程就是类,启动一个流程就好比创建一个对象。每个人的请假流程都是独立的且互不干扰。

     /**
       * 启动一个流程实例
       */
    @Test
    public void startInstance(){
        //创建ProcessEngineConfiguration
        ProcessEngineConfiguration configuration =
                ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
        //通过ProcessEngineConfiguration创建ProcessEngine,此时会创建数据库
        ProcessEngine processEngine = configuration.buildProcessEngine();
        // 启动一个请假实例,开始请假流程
        ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceById("leave:2:5003");
        // 输出内容
        System.out.println("流程定义id:"+processInstance.getProcessDefinitionId());
        System.out.println("流程实例id:"+processInstance.getId());
        System.out.println("活动编号"+processInstance.getActivityId());
    }

启动一个实例后就开始startEvent了,Activiti就帮我们定义好了每个人的任务在数据库中:
ACT_RU_TASK表:
在这里插入图片描述
每当一个任务完成后就会从系统中删除,而在历史表中更新END_TIME字段,比如说请假流程xx科长审批完成,系统就会在task表中删除xx科长的任务信息添加xx部长的审批任务,历史任务表中的xx科长就会更新完成时间,新增xx部长的任务信息。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Activiti工作流的课件整体、讲师: 刘洋 内容如下: 1:工作流的概念 1 2:工作流的执行过程 1 3:Activiti介绍 1 3.1:工作流引擎 2 3.2:BPMN 2 3.3:数据库(先学后看) 2 3.4:activiti.cfg.xml(activiti的配置文件) 4 3.5:logging.properties(日志处理) 5 4:准备环境 6 4.1:activiti5 软件环境 6 4.2:相关资源下载 6 4.3:安装流程设计器(eclipse插件) 6 4.4:对流程设计器的使用说明 10 4.5:准备Activiti5开发环境 11 5:核心API 12 5.1:ProcessEngine 13 5.2:RepositoryService 13 5.3:RuntimeService 14 5.4:TaskService 14 5.5:HistoryService 14 5.6:ProcessDefinition 14 5.7:ProcessInstance 14 5.8:Execution 14 6:HelloWorld程序(模拟流程的执行) 16 6.1:流程图: 16 6.2:部署流程定义 16 6.3:启动流程实例 17 6.4:查看我的个人任务 17 6.5:完成我的个人任务 17 7:管理流程定义 18 7.1:设计流程定义文档 18 7.2:部署流程定义(classpath路径加载文件) 19 7.3:部署流程定义(zip格式文件) 20 7.4:查看流程定义 21 7.5:删除流程定义 22 7.6:获取流程定义文档的资源(查看流程图附件) 22 7.7:附加功能:查询最新版本的流程定义 23 7.8:附加功能:删除流程定义(删除key相同的所有不同版本的流程定义) 23 7.9:总结 24 8:流程实例、任务的执行 25 8.1:流程图 25 8.2:部署流程定义 26 8.3:启动流程实例 26 8.4:查询我的个人任务 26 8.5:办理任务 27 8.6:查询流程状态(判断流程正在执行,还是结束) 28 8.7:附加功能:查询历史任务(后面讲) 28 8.8:附加功能:查询历史流程实例(后面讲) 29 8.9:总结 29 9:流程变量 30 9.1:流程图 30 9.2:部署流程定义 31 9.3:启动流程实例 32 9.4:设置流程变量 32 9.5:获取流程变量 33 9.6:模拟流程变量的设置和获取的场景 34 9.7:查询历史的流程变量 35 9.8:流程变量的支持的类型 35 9.9:总结 35 10:流程执行历史记录 36 10.1:查询历史流程实例 36 10.2:查询历史活动 37 10.3:查询历史任务 37 10.4:查询历史流程变量 37 10.5:总结 38 11:连线 38 11.1:流程图 38 11.2:部署流程定义+启动流程实例 39 11.3:查询我的个人任务 40 11.4:完成任务 40 11.5:总结 40 12:排他网关(ExclusiveGateWay) 41 12.1:流程图 41 12.2:部署流程定义+启动流程实例 42 12.3:查询我的个人任务 42 12.4:完成我的个人任务 43 13:并行网关(parallelGateWay) 44 13.1:流程图 44 13.2:部署流程定义+启动流程实例 45 13.3:查询我的个人任务 45 13.4:完成我的个人任务 45 14:开始活动节点 46 14.1:流程图 46 14.2:部署流程定义+启动流程实例+查询流程实例+查询历史流程实例 47 14.3:总结 47 15:接收活动(receiveTask,即等待活动) 47 15.1:流程图 48 15.2:部署流程定义+启动流程实例 48 16:用户任务(userTask,即用户操作的任务) 50 16.1:个人任务 50 16.2:组任务 56 16.3:工作流定义的角色组(了解) 68

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值