返回介绍

354.流程监听

发布于 2020-09-14 22:20:46 字数 6096 浏览 1223 评论 0 收藏 0

<h6>---以下内容为公司内部流程小白测试笔记,非官方正式文档---</h6>

流程监听

按监听类型分为:执行监听任务监听

执行监听使用的java类需要实现接口org.activiti.engine.delegate.ExecutionListener 任务监听使用的java类需要实现接口org.activiti.engine.delegate.TaskListener


执行监听用于配置在全局、节点间连线上 任务监听用于配置在节点上


流程设计 配置全局监听 配置节点2的监听 配置节点间连线监听

对应监听配置如下:

对应java代码如下:

public class OverAllStartListener implements ExecutionListener {

    @Override
    public void notify(DelegateExecution execution) throws Exception {

        System.out.println(&quot;=============流程开始监听执行了============&quot;);
        System.out.println(execution.getProcessInstanceId());
        System.out.println(execution.getVariable(&quot;applyUserId&quot;));
        System.out.println(execution.getVariable(&quot;CREATE_BY&quot;));
    }
}
public class OverAllEndListener implements ExecutionListener {

    @Override
    public void notify(DelegateExecution execution) throws Exception {

        System.out.println(&quot;=============流程结束监听执行了============&quot;);
        System.out.println(execution.getProcessInstanceId());
        System.out.println(execution.getVariable(&quot;applyUserId&quot;));
        System.out.println(execution.getVariable(&quot;CREATE_BY&quot;));
    }
}
public class NodeLineListener implements ExecutionListener {

    @Override
    public void notify(DelegateExecution execution) throws Exception {

        System.out.println(&quot;=============流程连线监听执行了============&quot;);
        System.out.println(execution.getProcessInstanceId());
        System.out.println(execution.getVariable(&quot;applyUserId&quot;));
        System.out.println(execution.getVariable(&quot;CREATE_BY&quot;));

    }
}
public class NodeListener implements TaskListener {

    @Override
    public void notify(DelegateTask delegateTask) {

        System.out.println(&quot;=============流程节点监听执行了============&quot;);
        System.out.println(delegateTask.getProcessInstanceId());
        System.out.println(delegateTask.getVariable(&quot;applyUserId&quot;));
        System.out.println(delegateTask.getVariable(&quot;CREATE_BY&quot;));


    }
}

配置表单,发布流程,测试,控制台打印如下:

=============流程开始监听执行了============
140092
admin
admin

=============流程连线监听执行了============
140092
admin
admin
=============流程节点监听执行了============
140092
admin
admin

=============流程结束监听执行了============
140092
admin
admin

任务监听 事件类型支持的类型有:

  • create: 任务被创建,并且所有的属性都被设置好后。
  • assignment: 任务被委派给某人后。注意: 当流程执行到达一个userTask时,会先触发一个assignment事件,再触发create事件。
  • complete:在任务完成后,且被从运行时数据(runtime data)中删除前触发。

如果节点是需要签收的节点,则先触发create事件,这块报了一个错,签收不通过!暂放

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文