大家好,欢迎来到IT知识分享网。
项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
视频地址:https://www.bilibili.com/video/av79774697/
DMN部署: dmn制定了规则之后,还需要部署好才能用
配置规则
这边只是做了一个简单的规则判断,实际业务场景可以设置的更加复杂
这里我们为了简单就是使用first的模式,返回一个数据
部署
public DmnDeployment deploy(DmnModelVo params) {
DmnDeployment deployment = null;
try {
Model model = modelService.getModel(params.getModelId());
//Model转化为jsonNode对象
JsonNode editorJsonNode = objectMapper.readTree(model.getModelEditorJson());
String fileName = URLEncoder.encode(model.getName(), "UTF-8").replaceAll("\\+", "%20") + ".dmn";
//通过jsonNode转化成DmnDefinition对象
DmnDefinition dmnDefinition = dmnJsonConverter.convertToDmn(editorJsonNode, model.getId(), 1, null);
ExtendModel extendModel = extendModelService.getExtendModelByModelKey(model.getKey());
//必须指定文件后缀名否则部署不成功
deployment = dmnRepositoryService.createDeployment().name(fileName).tenantId(extendModel.getSystemSn())
.addDmnModel(model.getKey() + ".dmn", dmnDefinition)
.category(extendModel.getCategoryCode()).deploy();
//修改状态为已发布
extendModel.setStatus(ModelFormStatusEnum.YFB.getStatus());
extendModelService.updateExtendModel(extendModel);
} catch (Exception e) {
e.printStackTrace();
logger.error("部署DMN失败", e);
}
return deployment;
}
使用
Map<String, Object> result = dmnRuleService.createExecuteDecisionBuilder()
.decisionKey("decision1")
.variable("departmentCode", "100001")
.variable("money", "5000")
.executeWithSingleResult();
assertThat(result)
.contains(
entry("applyer", "李四")
);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12528.html