Skip to content

节点事件

在某些业务场景下,需要在流程到达或离开指定节点时执行特定操作,引擎对此提供了支持。

提示

目前仅支持用户任务类型的节点。

节点配置

节点事件由引擎触发,根据节点配置确定要调用的事件处理器服务。

在流程设计器中双击节点打开节点配置界面,进入“功能设置”区域,在“节点服务”处填写自定义事件处理器的服务名。

node config

服务实现

服务类必须实现 NodeEventHandler 接口,示例如下。

java
@Component
public class SimNodeEventHandler implements NodeEventHandler {
    @Autowired
    FooService fooService; // 根据需要注入其它服务

    @Override
    public void onEnter(NodeEnterData event) {
        System.out.printf("节点进入事件:workflowCode=%s, nodeCode=%s",
                event.getWorkflowCode(), event.getNodeCode()
        );
    }

    @Override
    public void onLeave(NodeLeaveData event) {
        // 暂未实现,忽略
    }
}

NodeEnterData

节点到达事件对象提供以下属性:

名称类型说明
workIdString工作编号
workflowCodeString流程code
nodeCodeString节点编码
bizIdString业务标识
versionNumber流程版本
dealActionNumber上一步办理结果
bizDataObject自定义业务对象

.NET 差异

.NET 中对应的接口为 INodeEventHandler,实现类需要添加 DisplayName 特性声明服务名。

csharp
[Service]
[DisplayName("testNodeEventProc")]
public class TestNodeEventProc : INodeEventHandler
{
    // 省略方法实现
}