zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    hdu 4644 BWT (kmp)
    《一炮走红的国家》:发展中国家与发达国家,每个国家都有独特之处,家家有本难念的经 五星推荐
    《南非的启示》:种族隔离政策与城乡二元体制有许多相似之处
    《小趋势:中国经济的关键变数》:经济学家社论文集,不适合非财经专业读者阅读
    《城市化转型与土地陷阱》:土地涨价要归公,五星推荐
    《中国经济怎么了》:经济时评文集,深度不够,时效性太差
    《变革中国》:熟悉又陌生的30年以来的经济政策变化史及其背后的决策者的权衡
    转贴:怎样避免婴儿突然死亡综合症?
    《网飞传奇》:出品纸牌屋的公司作为小公司打败行业巨头的经过。巨头只有两次还手机会。创新者的窘境的又一个案例。
    转贴:为什么带复方甘草片入境美国会被遣返?
  • 原文地址:https://www.cnblogs.com/maocs/p/5009879.html
Copyright © 2011-2022 走看看