package com.iailab.module.bpm.framework.flowable.core.listener.demo.exection; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.flowable.bpmn.model.FieldExtension; import org.flowable.engine.delegate.DelegateExecution; import org.flowable.engine.delegate.JavaDelegate; import org.springframework.stereotype.Component; import java.util.List; /** * 类型为 delegateExpression 的 ExecutionListener 监听器示例 * * 和 {@link DemoDelegateClassExecutionListener} 的差异是,需要注册到 Spring 中 */ @Component @Slf4j public class DemoDelegateExpressionExecutionListener implements JavaDelegate { @Override public void execute(DelegateExecution execution) { log.info("[execute][execution({}) 执行监听器(委托表达式被调用)!变量有:{}]", execution.getId(), execution.getCurrentFlowableListener().getFieldExtensions()); List fieldExtensions = execution.getCurrentFlowableListener().getFieldExtensions(); if(ObjectUtils.isNotEmpty(fieldExtensions)) { fieldExtensions.stream().forEach(fieldExtension -> { System.out.println(fieldExtension.getFieldName()); System.out.println(fieldExtension.getStringValue()); }); } } }