You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Flowable Java API实现BPMN流程集成调用DMN决策表

Flowable BPMN与DMN结合使用Java API操作指南

1. 补充DMN依赖

你当前仅引入了核心流程引擎依赖,要使用DMN能力需要额外添加同版本的DMN引擎依赖:

<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-dmn-engine</artifactId>
    <version>6.7.0</version>
</dependency>

2. 部署关联后的资源文件

注意:必须将关联的BPMN流程文件和DMN决策表放在同一个部署批次中,否则流程执行时会找不到关联的决策表

// 沿用你已有的ProcessEngine初始化逻辑
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();

// 同时加载两个资源完成部署
repositoryService.createDeployment()
    .addClasspathResource("你的业务流程文件路径.bpmn.xml")
    .addClasspathResource("你的决策表文件路径.dmn.xml")
    .deploy();

3. 两种结合使用方式

3.1 BPMN自动触发DMN决策(推荐)

如果你已经在BPMN中配置了绑定DMN的业务规则任务,流程执行到该节点时会自动调用决策表,无需额外编码:

  • 你需要在BPMN业务规则任务中配置implementation为dmn,decisionRef为决策表的id/key,同时指定结果存储的变量名,比如dmnResult
  • 启动流程时传入DMN需要的输入参数即可,示例代码:
RuntimeService runtimeService = processEngine.getRuntimeService();
// 传入DMN所需的输入参数,例如请假天数、员工职级等
Map<String, Object> variables = new HashMap<>();
variables.put("leaveDays", 5);
variables.put("staffLevel", "P3");

// 启动流程实例,走到业务规则节点时会自动执行DMN
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("你的流程key", variables);

// 从流程变量中直接获取DMN执行结果
List<Map<String, Object>> dmnResult = (List<Map<String, Object>>) runtimeService.getVariable(processInstance.getId(), "dmnResult");

3.2 手动调用DMN API执行

如果你需要在流程外部、或者在BPMN的服务任务中自定义调用逻辑,可以直接调用DMN服务API:

// 获取DMN规则服务实例
DmnRuleService dmnRuleService = processEngine.getDmnRuleService();

Map<String, Object> inputParams = new HashMap<>();
inputParams.put("leaveDays", 3);
inputParams.put("staffLevel", "P5");

// 执行指定key的决策表,返回命中的规则结果
List<Map<String, Object>> result = dmnRuleService.createExecuteDecisionBuilder()
    .decisionKey("你的决策表key")
    .variables(inputParams)
    .execute();

4. 结果说明

DMN执行返回的List<Map<String, Object>>中,每一个Map对应一条命中的规则结果,你可以直接作为流程变量传递给后续BPMN节点,或者用于业务逻辑判断。

内容的提问来源于stack exchange,提问作者Samy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 01:30:05