实现动态设置办理人首先要设置全局监听,然后通过监听相关的步骤来进行相应的操作。
废话少说,先看东西!
1:配置全局监听配置类:
@Configuration
public class FlowableGlobalListenerConfig implements ApplicationListener<ContextRefreshedEvent> {
@Autowired
private SpringProcessEngineConfiguration configuration;
@Autowired
private GlobalTaskListener globalTaskListener;
@Override
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
FlowableEventDispatcher dispatcher = configuration.getEventDispatcher();
//任务创建全局监听
dispatcher.addEventListener(globalTaskListener, FlowableEngineEventType.TASK_CREATED);
//流程创建监听
dispatcher.addEventListener(globalTaskListener, FlowableEngineEventType.PROCESS_CREATED);
//流程启动监听
dispatcher.addEventListener(globalTaskListener, FlowableEngineEventType.PROCESS_STARTED);
}
}
其中globalTaskListener是自定义的具体监听类;FlowableEngineEventType是监听的具体类型;
package org.flowable.common.engine.api.delegate.event;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.flowable.common.engine.api.FlowableIllegalArgumentException;
/**
* Enumeration containing all possible types of {@link FlowableEvent}s.
*
* @author Frederik Heremans
*
*/
public enum FlowableEngineEventType implements FlowableEventType {
/**
* New entity is created.
*/
ENTITY_CREATED,
/**
* New entity has been created and all properties have been set.
*/
ENTITY_INITIALIZED,
/**
* Existing entity us updated.
*/
ENTITY_UPDATED,
/**
* Existing entity is deleted.
*/
ENTITY_DELETED,
/**
* Existing entity has been suspended.
*/
ENTITY_SUSPENDED,
已上只是FlowableEngineEventType
一部分,有兴趣的同学可以打开这个枚举类详细查看;
2:具体的监听类
@Comp