节点事件
在某些业务场景下,需要在流程到达或离开指定节点时执行特定操作,引擎对此提供了支持。
提示
目前仅支持用户任务类型的节点。
节点配置
节点事件由引擎触发,根据节点配置确定要调用的事件处理器服务。
在流程设计器中双击节点打开节点配置界面,进入“功能设置”区域,在“节点服务”处填写自定义事件处理器的服务名。

服务实现
服务类必须实现 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
节点到达事件对象提供以下属性:
| 名称 | 类型 | 说明 |
|---|---|---|
| workId | String | 工作编号 |
| workflowCode | String | 流程code |
| nodeCode | String | 节点编码 |
| bizId | String | 业务标识 |
| version | Number | 流程版本 |
| dealAction | Number | 上一步办理结果 |
| bizData | Object | 自定义业务对象 |
.NET 差异
.NET 中对应的接口为 INodeEventHandler,实现类需要添加 DisplayName 特性声明服务名。
csharp
[Service]
[DisplayName("testNodeEventProc")]
public class TestNodeEventProc : INodeEventHandler
{
// 省略方法实现
}