页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 2 当前 »

“用户任务”节点可以设置监听器。

监听器分类

监听器分为执行监听器(execution listener)和任务监听器(task listener)。

执行监听器(execution listener)可以在流程执行中发生特定的事件时,执行外部Java代码或计算表达式。Smartbi流程允许在用户任务节点上配置执行监听器。

执行监听器包含下列属性:

  • 事件类型(必填):触发执行监听器的事件类型。可用的事件有:

    • 开始:当流程流转到当前节点后触发执行监听器

    • 结束:当流程离开当前节点后触发执行监听器。

  • 监听器类型(必填):执行监听器实现类型,支持的类型有:
    • Java类 在扩展包中实现一个Java类,实现smartbilibs.org.camunda.bpm.engine.delegate.ExecutionListener接口,重写notify方法,实现自定义代码逻辑。
    • 表达式 可执行特定的EL表达式,比如${ myBean.doSomethings() }
    • 代理表达式 由表达式返回特定的代理类,同Java类,具体逻辑在返回的代理类中实现,比如${ myBean.createDelegateClass() }
    • 脚本 支持使用Groovy脚本实现外部代码逻辑。比如:

                        def bar = "BAR"; // 局部变量                       

                        foo = "FOO";// 将变量放入执行上下文                        

                        execution.setVariable("var1", "test"); // 设置执行实例变量

流程引擎提供了一些内部上下文变量,可用于表达式和脚本中。

变量Java类型语境
executionDelegateExecution在BPMN执行上下文中可用,例如服务任务,执行侦听器或序列流。
taskDelegateTask在任务上下文(如任务侦听器)中可用。

流程引擎提供了一些内部上下文功能,可用于表达式和脚本中。

功能返回类型描述
currentUser()String返回当前已认证用户的用户标识,或者当前null没有用户通过认证。
now()Date以Java Date对象的形式返回当前日期。
dateTime()DateTime返回当前日期的Joda-Time DateTime对象。 有关所有可用功能,请参阅 Joda-Time文档。

任务监听器(task listener)用于在特定的任务相关事件发生时,执行自定义的Java逻辑或表达式。任务监听器只能在流程定义中作为用户任务的子元素。在Smartbi流程中,任务可以理解为待办。

任务监听器包含下列属性:

  • 事件类型(必填):触发任务监听器的任务事件类型。可用的事件有:

    • 创建:当任务已经创建,并且所有任务参数都已经设置时触发。

    • 分配:当任务已经指派给某人时触发。请注意:当流程执行到达用户任务时,在触发create事件之前,会首先触发assignment事件。这顺序看起来不太自然,但是有实际原因的:当收到create事件时,我们通常希望能看到任务的所有参数,包括办理人。

    • 完成:当任务已经完成,从运行时数据中删除前触发。

    • 删除:在任务即将被删除前触发。请注意任务由completeTask正常完成时也会触发。

  • 监听器类型(必填):同执行监听器。

参考资料:

监听器应用-Java类

执行监听器

  • 扩展包中编写执行监听器类,实现ExecutionListener接口。

  • 在流程定义中配置执行监听器类,其中【Java类】中需要填写执行监听器的类全限定名。

任务监听器

  • 扩展包中编写执行监听器类,实现TaskListener接口。
  • 在流程定义中配置任务监听器类,其中【Java类】中需要填写任务监听器的类全限定名。

扩展包示例

  • 注意事项:extension.xml中的扩展包优先级数值必须大于100。

  



  • 无标签