aitiviti框架的总结

为什么要使用activiti

  • 目的是为了实现工作流程和业务的分离。activiti的出现就解决了这个问题。
  1. 首先,使用IDEA或者其他软件书写流程图
  2. 需要注意一些流程的过程。 `package com.qf.activiti; /**
  • activiti工作流的开发流程:

  • 1、编写流程图(编写流程图的插件eclipse、idea(编码的问题))

  • 2、根据配置获取流程引擎(后面的一切操作都是基于这个流程引擎的)

  • 3、根据流程引擎部署流程图 - 流程部署对象(每个流程部署对象对应一个流程)

  • 4、根据部署的流程,启动该流程 - 流程实例对象(一个流程可以对应多个流程实例)

  • 5、根据流程图走流程 */ public class Main {

    /**

    • 创建流程引擎 */ public ProcessEngine createProcessEngine(){ //创建流程引擎的配置对象 ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();

      // configuration.setJdbcUrl("jdbc:mysql:///activitidb"); configuration.setJdbcUsername("root"); configuration.setJdbcPassword("root"); configuration.setJdbcDriver("com.mysql.jdbc.Driver"); //配置数据库表是否自动创建 - 自动会创建20+张表 configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

      //根据流程引擎配置获得流程引擎对象 ProcessEngine processEngine = configuration.buildProcessEngine(); return processEngine; }

    /**

    • 根据流程引擎部署流程图 */ @Test public void deployProcess(){ // ProcessEngine processEngine = createProcessEngine();

      //获得部署流程图的服务对象 RepositoryService repositoryService = processEngine.getRepositoryService();

      //部署流程图 - 返回值就是一个流程部署对象 Deployment deploy = repositoryService.createDeployment() .name("请假流程") .addClasspathResource("qingjia.bpmn") .deploy();

      System.out.println("流程部署的id-->" + deploy.getId()); System.out.println("流程部署的名称-->" + deploy.getName()); }

    /**

    • 开启流程 - 有人开始走流程(开始请假) */ @Test public void startProcess(){ // ProcessEngine processEngine = createProcessEngine(); //获得开启流程的服务 RuntimeService runtimeService = processEngine.getRuntimeService();

      //根据key启动一个流程 - 创建流程实例 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");

      System.out.println("流程部署id--->" + processInstance.getDeploymentId()); System.out.println("流程名称--->" + processInstance.getName()); }

    /**

    • 查询节点任务 - 查看当前有哪些任务 */ @Test public void queryTask(){ // ProcessEngine processEngine = createProcessEngine();

      TaskService taskService = processEngine.getTaskService(); List<Task> list = taskService.createTaskQuery() .taskCandidateOrAssigned("小刚") .list(); for (Task task : list) { System.out.println("-------------------"); System.out.println("任务id--->" + task.getId()); System.out.println("流程部署的id--->" + task.getProcessDefinitionId()); System.out.println("流程实例的id--->" + task.getProcessInstanceId()); System.out.println("任务节点名称--->" + task.getName()); } }

    /**

    • 执行任务节点 */ @Test public void exeTask(){ // ProcessEngine processEngine = createProcessEngine(); TaskService taskService = processEngine.getTaskService(); //完成任务 Map map = new HashMap(); map.put("flag", "true"); taskService.complete("15003", map); System.out.println("任务完成"); } } `
  • 具体流程demo如上面代码 需要注意的话,activiti-spring本身依赖的json读取包,存在版本的问题。

转载于:https://my.oschina.net/u/3959732/blog/1942055

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值