zoukankan      html  css  js  c++  java
  • Activiti 常见操作(一)

    流程的部署

    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    RepositoryService repositoryService = processEngine.getRepositoryService();
    Deployment deployment = repositoryService.createDeployment()
          .addClasspathResource("approval.bpmn20.xml")
          .name("我的流程部署")
          .deploy();
    

    1、ACT_RE_DEPLOYMENT多出一条记录。
    2、ACT_RE_PROCDEF多出一条记录。
    3、ACT_GE_BYTEARRAY多出几条信息,图片资源啥的。

    流程的启动

    RuntimeService runtimeService = processEngine.getRuntimeService();
    Map<String, Object> map = Maps.newHashMap();
    map.put("name", "zhangxingr");
    map.put("sex", "man");
    map.put("age", "21");
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("my-process", map);
    

    1、ACT_HI_ACTINST增加了流程启动的信息。
    2、ACT_HI_PROCINST增加了流程信息。
    3、ACT_HI_IDENTITYLINK增加了记录。
    4、ACT_HI_TASKINST增加了记录。
    5、ACT_RU_EXECUTION增加了记录。
    6、ACT_RU_IDENTITYLINK增加了记录。
    7、ACT_RU_TASK增加了记录。

    任务的查询

    List<Task> list = processEngine.getTaskService()
        .createTaskQuery()
        .taskAssignee("王五")
        .list();
    

    任务的处理

    processEngine.getTaskService()
          .complete("7502");  //任务ID
    

    1、ACT_HI_ACTINST增加了一条记录。
    2、ACT_RU_IDENTITYLINK多了一条参与者记录。
    3、ACT_HI_TASKINST增加了记录。
    4、ACT_RU_EXECUTION增加了记录。
    5、ACT_RU_TASK增加了记录,减少了一条记录。

    流程定义查询

    List<ProcessDefinition> list = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
        .createProcessDefinitionQuery().list();
    

    流程状态查询

    ProcessInstance pi = processEngine.getRuntimeService() // 获取运行时Service
        .createProcessInstanceQuery() // 创建流程实例查询
        .processInstanceId("2501") // 用流程实例id查询
        .singleResult();
    

    流程定义删除

    processEngine.getRepositoryService()
          .deleteDeployment("deploymentId", true);
    

    流程资源查看

    /**将生成图片放到文件夹下*/
    String deploymentId = "801";
    //获取图片资源名称
    List<String> list = processEngine.getRepositoryService()//
        .getDeploymentResourceNames(deploymentId);
    //定义图片资源的名称
    String resourceName = "";
    if(list!=null && list.size()>0){
        for(String name:list){
              if(name.indexOf(".png")>=0){
                    resourceName = name;
              }
        }
    }
    //获取图片的输入流
    InputStream in = processEngine.getRepositoryService()//
          .getResourceAsStream(deploymentId, resourceName);
    //将图片生成到D盘的目录下
    File file = new File("D:/"+resourceName);
    //将输入流的图片写到D盘下
    FileUtils.copyInputStreamToFile(in, file);
    

    查询出流程定义文档。主要查的是图片,用于显示流程用。deploymentId为流程部署ID,resourceName为act_ge_bytearray表中NAME_列的值,使用repositoryService的getDeploymentResourceNames方法可以获取指定部署下得所有文件的名称,使用repositoryService的getResourceAsStream方法传入部署ID和资源图片名称可以获取部署下指定名称文件的输入流,最后的有关IO流的操作,使用FileUtils工具的copyInputStreamToFile方法完成流程流程到文件的拷贝,将资源文件以流的形式输出到指定文件夹下。

    历史活动查询(包含流程的开始和结束)

    List<HistoricActivityInstance>  list = processEngine.getHistoryService()
        .createHistoricActivityInstanceQuery() // 创建历史活动实例查询
        .processInstanceId("2501") // 执行流程实例id
        .list();
    

    历史任务查询(只包含任务)

    List<HistoricTaskInstance> list = processEngine.getHistoryService() // 历史相关Service
        .createHistoricTaskInstanceQuery() // 创建历史任务实例查询
        .processInstanceId("2501") // 用流程实例id查询
        .list(); 
    

    流程的挂起

    RepositoryService repositoryService = processEngine.getRepositoryService();
    String processDefinitionKey ="purchasingflow";
    //根据流程定义的key暂停一个流程定义,并且级联挂起该流程定义下的流程实例
    repositoryService.suspendProcessDefinitionByKey(processDefinitionKey, true, null);
    

    单个流程实例的挂起

    RuntimeService runtimeService = engine.getRuntimeService();
    String processInstanceId="1801";
    //根据一个流程实例的id挂起该流程实例
    runtimeService.suspendProcessInstanceById(processInstanceId);
    
  • 相关阅读:
    Python Scrapy框架
    Python Mongo数据库
    Python Selenium框架
    Python BeautifulSoup库使用
    Python 存入三大文件
    Python Xpath的解析,应用
    Python Requests 高级
    错误码:2003 不能连接到 MySQL 服务器在 (10061)
    MySQL连接本地数据库时报1045错误的解决方法
    iWebShop安装教程
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/13222045.html
Copyright © 2011-2022 走看看