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

  • 相关阅读:
    Linux下查找包含BOM头的文件和清除BOM头命令 2014-08-16 12:30:50
    ecshop lang用法
    php常用Stream函数集介绍
    php实现多任务并发探讨
    ThinkPHP 3.2 版本升级了哪些内容
    免费手机号码归属地API查询接口和PHP使用实例分享
    [SHELL进阶] (转)最牛B的 Linux Shell 命令 (四)
    [SHELL进阶] (转)最牛B的 Linux Shell 命令 (三)
    [SHELL进阶] (转)最牛B的 Linux Shell 命令 (二)
    [SHELL实例] (转)最牛B的 Linux Shell 命令 (一)
  • 原文地址:https://www.cnblogs.com/surge/p/3577737.html
Copyright © 2011-2022 走看看