全局流程事件

场景描述

定义全局流程事件,作用于每个流程,不必在每个流程中重复定义

实现思路

定义全局流程事件文件,在其中指定流程动作,及处理方法

操作步骤

定义全局流程事件

全局流程事件文件的后缀为: g.process.trait。例如:在service/main目录下添加一个xx.g.process.trait文件,定义全局流程事件为:在流程回退前执行数据备份。代码如下:

{
    "listeners": [{
        "action": "backProcessQueryAction", 
        "event": "before", 
        "handler": "invokeHttpProcedure", 
        "params": {
            "template": [{
                "method": "POST",
                "url": "${dataUrl}/backup", 
                "headers": { 
                    "Accept": "application/json",
                    "Content-Type": "application/json"
                },
                "body": {
                    "condition": {
                        "key": ["${sData1}"]
                    },
                    "option":{
                        "cascade":true
                    }
                }
            }]
        }
    }]
}

JSON内容说明

  • listeners:定义监听器
    • action:监听流程哪个动作,参考业务流程动作
    • event:before在流程执行动作前执行,after在流程执行动作后执行
    • handler:处理方法,目前均使用invokeHttpProcedure方法
    • params:处理方法的参数
      • template:参数模板,可定义多个,顺序执行
        • url:处理方法的url,例如数据备份的url为:${dataUrl}/backup

处理方法invokeHttpProcedure中可用的变量

  • dataUrl: 流程关联数据的dbrest地址
  • sData1,sData2,sData3,sData4: 业务数据
  • operatorID,operatorCode,operatorName: 当前操作者
  • process,procesLable,activity,activityLabel,action: 当前流程,环节,动作
  • pi: 流程实例标识
  • task: 当前任务标识
  • postscript: 当前审批意见
  • 流程上定义的自定义变量

触发全局流程事件

发布应用,让process.trait起作用,发布后调试运行和正式运行都可以使用(后续会提供界面编辑process.trait文件,以及支持在开发时立即生效)

调试运行或正式运行时执行相应的流程动作时,会触发全局流程事件;

g.process.trait是所有应用都起作用的,如果只要定义全局事件的应用服务起作用,把名字改为s.process.trait

results matching ""

    No results matching ""

    results matching ""

      No results matching ""