flowable通过表达式来获取其值
背景:当我们在实际开发项目的情况,有很多场景是需要知道表达式里面的值,比方说我们要预先知道节点的信息(审批人等等)。
如:
那么如何做呢?
1、解析所有的节点信息,这里我就不说了,上面的博客里面已经写过了。
2、解析表达式具体代码
@Service public class ExpressionServiceImpl implements IExpressionService { private static Logger logger = Logger.getLogger(ExpressionServiceImpl.class); @Autowired protected ProcessEngineConfigurationImpl processEngineConfiguration; @Autowired private RuntimeService runtimeService; @Autowired private TypeConverter typeConverter; @Override public Object getValue(String processInstanceId, String exp) { Expression expression = processEngineConfiguration.getExpressionManager().createExpression(exp); ExecutionEntity executionEntity = (ExecutionEntity) runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).includeProcessVariables().singleResult(); return expression.getValue(executionEntity); } @Override public <T> T getValue(String processInstanceId, String exp, Class<T> clazz) { Object value = this.getValue(processInstanceId, exp); return typeConverter.convert(value, clazz); } }
这样我们就可以获得自己的表达式的值了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步