06 flowable DMN部署单独使用

06 flowable DMN部署单独使用项目地址:https://gitee.com/lwj/flowable.git分支flowable-base视频地址:https://www.bilibili.com/video/av79774697/DMN部署:dmn制定了规则之后,还需要部署好才能用DMN部署,独立使用配置规则部署使用配置规则这边只是做了一个简单的规则判断,实际业务场景可以设置的更加复杂这里我们为了简单就是使用first的模式,返回一个数据部署publicDmnDeploymentdeploy(DmnModel

大家好,欢迎来到IT知识分享网。

项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base
视频地址:https://www.bilibili.com/video/av79774697/
DMN部署: 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

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信