• Activiti学习笔记3 — 流程定义


    一、创建流程引擎对象

    private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

    二、发布一个流程

     1 /**
     2      * 2、发布一个流程 会在三张表中产生数据 
     3      *         act_ge_bytearray: 新增两条记录,保存规则定义文件,二进制文件 
     4      *         act_re_deployment: 新增一条记录 
     5      *         act_re_procdef: 新增一条记录
     6      */
     7     @Test
     8     public void testDeployProcess() {
     9         // 获取RepositoryService实例
    10         RepositoryService repositoryService = processEngine.getRepositoryService();
    11         // 创建发布对象
    12         DeploymentBuilder builder = repositoryService.createDeployment();
    13         // 加载发布资源
    14         builder.name("请假流程测试") // 设置流程显示别名
    15                 .addClasspathResource("leave.bpmn") // 设置流程规则文件
    16                 .addClasspathResource("leave.png"); // 设置流程规则的图片
    17         // 发布流程
    18         builder.deploy();
    19     }
    View Code

    三、查看流程定义

     1 /**
     2      * 3、查看流程定义 ID生成规则: {Key} + {Version} + {随机数}
     3      */
     4     @Test
     5     public void testQueryProcessDifination() {
     6         // 创建仓库服务实例
     7         RepositoryService repositoryService = processEngine.getRepositoryService();
     8         // 查询
     9         ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
    10         String key = "leaveflow";
    11         String category = "com.mcs.Flow.Leave";
    12         List<ProcessDefinition> list = query // 过滤条件
    13                 .processDefinitionKey(key).processDefinitionCategory(category)
    14                 // 排序条件
    15                 .orderByProcessDefinitionVersion().asc()
    16                 // 分页显示
    17                 // .listPage(0, 10)
    18                 // 返回结果
    19                 .list();
    20         long count = query.count();
    21 
    22         logger.info("Count:" + count);
    23 
    24         for (ProcessDefinition definition : list) {
    25             logger.info("Id:" + definition.getId());
    26             logger.info("Name:" + definition.getName());
    27             logger.info("Category:" + definition.getCategory());
    28             logger.info("Key:" + definition.getKey());
    29             logger.info("ResourceName:" + definition.getResourceName());
    30             logger.info("Version:" + definition.getVersion());
    31         }
    32 
    33     }
    View Code

    四、流程定义删除

     1 /**
     2      * 4、流程定义删除
     3      */
     4     @Test
     5     public void testDeleteProcessDifination() {
     6         // 创建仓库服务实例
     7         RepositoryService repositoryService = processEngine.getRepositoryService();
     8 
     9         String deploymentId = "5001";
    10         // 普通删除,只能删除没有任何关联关系的的流程规则,若当前有流程在执行,则删除失败
    11         repositoryService.deleteDeployment(deploymentId);
    12         // 级联删除,删除与之相关的所有信息,包括正在执行的流程与历史信息
    13         // repositoryService.deleteDeployment(deploymentId, true);
    14     }
    View Code

    五、查看流程图

     1 /**
     2      * 5、查看流程图
     3      * @throws IOException 
     4      */
     5     @Test
     6     public void testQueryProcessDifinationImage() throws IOException {
     7         // 创建仓库服务实例
     8         RepositoryService repositoryService = processEngine.getRepositoryService();
     9 
    10         // 通过部署ID获取所有资源信息
    11         String deploymentId = "10001";
    12         String resourceName = "";
    13         List<String> names = repositoryService.getDeploymentResourceNames(deploymentId);
    14         for (String name : names) {
    15             if (name.indexOf(".png") >= 0) {
    16                 resourceName = name;
    17                 logger.info(name);
    18             }
    19         }
    20 
    21         if (resourceName != "") {
    22             InputStream image = repositoryService.getResourceAsStream(deploymentId, resourceName);
    23 
    24             FileUtils.copyInputStreamToFile(image,new File("d:/test.png"));
    25         }
    26 
    27     }
    View Code
  • 相关阅读:
    构造函数与析构函数2
    构造函数与析构函数(其中有两点值得学习)
    构造函数含有含默认值的参数
    A simple stack
    指针与const
    构造函数与析构函数
    构造函数的创建
    类的定义
    程序的堆与栈(转载)
    OpenStack 安装:glance 安装
  • 原文地址:https://www.cnblogs.com/maocs/p/5009879.html
Copyright © 2020-2023  润新知