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");

  • 相关阅读:
    联赛模拟26_Lesson5!(拓扑+最长路径树)
    联赛模拟27_地理课
    联考day7_树和森林(lct.cpp)
    CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths —dsu on tree
    O(m^1.5)寻找三元环
    未对参数做非空校验,我的服务被搞得内存溢出了!
    想法随写:推动与拉动 and 百思得解 and 学会扭转被动局面
    http code:502 Bad Gateway
    java.lang.reflect.Filed.class中setInt与set的区别
    dubbo提供者停止服务后zookeeper注册中心节点仍然存在
  • 原文地址:https://www.cnblogs.com/surge/p/3577737.html
Copyright © 2011-2022 走看看