项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
视频地址:https://www.bilibili.com/video/av/
DMN部署: dmn制定了规则之后,还需要部署好才能用
DMN部署,独立使用
配置规则
部署
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", "") .variable("money", "5000") .executeWithSingleResult(); assertThat(result) .contains( entry("applyer", "李四") );
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213373.html原文链接:https://javaforall.net
