activiti使用

 

1:配置文件方式加载数据库配置
activiti.cfg.xml

    
    
        
        
        
        
        
        
        
    

 
@BeforeClass
public static void createActivitiEngineByConfig() {
    /**2. 通过加载 activiti.cfg.xml 获取 流程引擎 和自动创建数据库及表*/
    ProcessEngineConfiguration engineConfiguration =
            ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
    //从类加载路径中查找资源  activiti.cfg.xm文件名可以自定义
    processEngine = engineConfiguration.buildProcessEngine();
    System.out.println("使用配置文件Activiti.cfg.xml获取流程引擎");
}

2:流程定义

2.1:eclipse 流程小插件

https://www.cnblogs.com/shanheyongmu/p/8417272.html

 

3:表定义

table 备注
act_re_procdef

流程定义表

存放流程定义的属性信息,部署每个新的流程定义都会在这张表中增加一条记录。
注意:当流程定义的key相同的情况下,使用的是版本升级

act_re_deployment 部署对象表
存放流程定义的显示名和部署时间,每部署一次增加一条记录
ACT_RU_EXECUTION  

 

4:发布流程

    @Test
    public void deploy() {
        //获取仓库服务 :管理流程定义
        RepositoryService repositoryService = processEngine.getRepositoryService();
        Deployment deploy = repositoryService.createDeployment()//创建一个部署的构建器
                .addClasspathResource("processes/first.bpmn")//从类路径中添加资源,一次只能添加一个资源
                .name("请假单流程")//设置部署的名称
                .category("办公类别")//设置部署的类别
                .deploy();
        System.out.println("部署的id" + deploy.getId());
        System.out.println("部署的名称" + deploy.getName());
        System.out.println("部署的key" + deploy.getKey());

//        ProcessDefinition definition = repositoryService.createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult();
//        System.out.println("部署的key" + definition.getKey());
    }

5:执行流程

    @Test
    public void startProcess() {
        String processDefiKey = "first_act";
        //取运行时服务
        RuntimeService runtimeService = processEngine.getRuntimeService();
//        ProcessDefinition defi = processEngine.createProcessDefinitionQuery().deploymentId(de.getId()).singleResult();
//        ProcessInstance pi = runtimeService.startProcessInstanceByKey(defi.getKey());
        //取得流程实例
        ProcessInstance pi = runtimeService.startProcessInstanceByKey(processDefiKey, "test");//通过流程定义的key 来执行流程
        System.out.println("流程实例id:" + pi.getId());//流程实例id
        System.out.println("流程定义id:" + pi.getProcessDefinitionId());//输出流程定义的id
    }

 

你可能感兴趣的:(java)