zoukankan      html  css  js  c++  java
  • 【JBPM4】任务节点-任务分配candidate-groups

    此分组的意思是,该任务节点为多个人员,当其中之一完成后,流程就进入下一个节点。


    JPDL


    <?xml version="1.0" encoding="UTF-8"?>

    <process key="task" name="task" xmlns="http://jbpm.org/4.4/jpdl">
    <start name="start1" g="243,29,48,48">
    <transition name="提交到任务A" to="任务A" g="-63,-11"/>
    </start>
    <end name="end1" g="243,393,48,48"/>
    <task candidate-groups="mgr" name="任务A" g="224,115,92,52">
    <transition name="提交到任务B" to="任务B" g="-77,-11"/>
    </task>
    <task name="任务B" g="220,221,92,52">
    <transition name="提交到任务C" to="任务C" g="-83,-14"/>
    </task>
    <task name="任务C" g="224,308,92,52">
    <transition name="通过" to="end1" g="-62,-25"/>
    </task>
    </process>

    部署流程

    //创建用户组
    String group = identityService.createGroup("mgr");
    identityService.createUser("a1", "tom", "uu");
    identityService.createUser("a2", "tom2", "uu2");
    identityService.createMembership("a1", group);
    identityService.createMembership("a2", group);

    repositoryService.createDeployment().addResourceFromClasspath("com/tgb/node/task/Candidate/task3.jpdl.xml").deploy();

    创建流程实例

    ProcessInstance processInstance = executionService.startProcessInstanceByKey("task");
    print("流程实例ID",processInstance.getId());

    获取当前节点名称
    String name = executionService.createProcessInstanceQuery().processInstanceId("task.480001").uniqueResult().findActiveActivityNames().toString();
    print("当前节点名词:",name);


    获取任务列表(分配任务后,就可以查询任务数量)

    要想执行该任务,需要事先把任务交给a1处理,然后再完成处理,否则通过findPersonalTasks时拿不到任务的。

    //把任务分配给a1
    taskService.takeTask("480002", "a1");
    List<Task> tasks = taskService.findPersonalTasks("a1");
    print("任务数量",tasks.size());
    print("任务名词",tasks.get(0).getActivityName());
    print("任务ID",tasks.get(0).getId());

    获取任务列表(获取任务组任务列表)

    通过findGroupTasks可以拿到组任务。可以显示在每个收到此任务的人的代办任务列表中。

    List<Task> tasks = taskService.findGroupTasks("a1");
    print("任务数量",tasks.size());
    print("任务名词",tasks.get(0).getActivityName());
    print("任务ID",tasks.get(0).getId());

    完成任务

    taskService.completeTask("390001");

  • 相关阅读:
    Flutter第一个应用--踩坑之路
    今天注册博客园了!
    广深小龙-基于unittest、pytest自动化测试框架之demo来学习啦!!!
    python接口自动化10-excel设计模式实战
    python接口自动化9-ddt数据驱动
    Docker学习4-学会如何让容器开机自启服务【坑】
    pytest-4-分布式运行与自定义顺序执行用例
    Docker学习10-docker-slenium进行web自动化测试
    linux+jenkins生成测试报告及任意IP打开链接能看到allure报告
    MySQL-Python实现-测试/生产环境各个表与字段进行对比的小工具
  • 原文地址:https://www.cnblogs.com/surge/p/3577737.html
Copyright © 2011-2022 走看看