• 【JBPM4】任务节点-任务分配assignment-Handler



    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 name="任务A" g="224,115,92,52">
    <assignment-handler class="com.tgb.node.task.handler.AssignTask">
    </assignment-handler>
    <transition name="提交到任务B" to="任务B" g="-77,-11"/>
    </task>
    <task name="任务B" g="220,221,92,52">
    <assignment-handler class="com.tgb.node.task.handler.AssignTaskB">
    </assignment-handler>
    <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>


    JAVA监听类

    以AssignTask为例,实现AssignmentHandler接口,即可在JPDL里应用监听

    public class AssignTask implements AssignmentHandler {

    private static final long serialVersionUID = 1L;

    @Override
    public void assign(Assignable assignable, OpenExecution execution)
    throws Exception {
    //设置流程处理(受理)人
    assignable.setAssignee("userA");
    }

    }


    流程操作代码与前一章相同

    部署流程

    repositoryService.createDeployment().addResourceFromClasspath("com/tgb/node/task/task.jpdl.xml").deploy();
    创建流程实例

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

    获取当前节点
    //流程实例ID
    String name = executionService.createProcessInstanceQuery().processInstanceId("task.290001").uniqueResult().findActiveActivityNames().toString();
    print("当前节点名词:",name);

    获得任务列表
    List<Task> tasks = taskService.findPersonalTasks("A");
    print("任务数量",tasks.size());
    print("任务名词",tasks.get(0).getActivityName());
    print("任务ID",tasks.get(0).getId());

    完成任务
    //任务ID
    taskService.completeTask("290002");

  • 相关阅读:
    隔离的级别?
    集中式与进程内负载均衡的区别是什么?
    静态变量和实例变量的区别?
    什么是SolrCloud
    页面编码和被请求的资源编码如果不一致如何处理?
    SQL笔试题:下面是学生表(student)的结构说明
    笔记本加装SSD并装系统
    vs2015 MSB600 "inf2cat.ext"已退出,代码为2
    $time $stime $realtime
    python网站(持续更新)
  • 原文地址:https://www.cnblogs.com/surge/p/3577730.html
Copyright © 2020-2023  润新知