首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >评估Camunda DMN决策时的异常

评估Camunda DMN决策时的异常
EN

Stack Overflow用户
提问于 2022-01-13 14:48:05
回答 2查看 1.5K关注 0票数 0

我正在尝试解析一个示例决策表,但是在异常下面

org.camunda.bpm.dmn.feel.impl.FeelException:感觉/SCALA-01008在计算表达式时出错:未能计算表达式‘Fall’:没有找到名称‘cellInput’的变量

我使用Camunda版本4.12.0及以下版本创建了dmn文件,这是用于解析决策的java代码。

代码语言:javascript
复制
VariableMap variables = Variables
.putValue(“season”, “Spring”);

DmnEngine dmnEngine = DmnEngineConfiguration.createDefaultDmnEngineConfiguration().buildEngine();

InputStream inputStream = DishDecider.class.getResourceAsStream("/dishTest.dmn");

DmnModelInstance dmnModelInstance = Dmn.readModelFromStream(inputStream);

List decisions = dmnEngine.parseDecisions(dmnModelInstance);

DmnDecision decision = decisions.get(0);

DmnDecisionTableResult result = dmnEngine.evaluateDecisionTable(decision, variables);

String desiredDish = result.getSingleResult().getSingleEntry();
System.out.println("Dish Decision:\n\tI would recommend to serve: " + desiredDish);

下面是用4.12.0创建的dmn文件

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/" xmlns:dmndi="https://www.omg.org/spec/DMN/20191111/DMNDI/" xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/" xmlns:camunda="http://camunda.org/schema/1.0/dmn" id="decision" name="Dish" namespace="http://camunda.org/schema/1.0/dmn" exporter="Camunda Modeler" exporterVersion="4.12.0">
    <decision id="Decision_0iitlac" name="Dish">
        <decisionTable id="DecisionTable_0gwyugh" hitPolicy="ANY">
            <input id="Input_1" label="Season" camunda:inputVariable="season">
                <inputExpression id="InputExpression_1" typeRef="string">
                    <text>season</text>
                </inputExpression>
            </input>
            <output id="Output_1" label="Dish" name="desiredDish" typeRef="string" />
            <rule id="DecisionRule_0oq0hav">
                <description>-</description>
                <inputEntry id="UnaryTests_0m9w26w">
                    <text>"Fall"</text>
                </inputEntry>
                <outputEntry id="LiteralExpression_0ii151o">
                    <text>"Spareribs"</text>
                </outputEntry>
            </rule>
            <rule id="DecisionRule_1atwuts">
                <description>-</description>
                <inputEntry id="UnaryTests_1bnxqqw">
                    <text>"Winter"</text>
                </inputEntry>
                <outputEntry id="LiteralExpression_1bzzfsr">
                    <text>"RoastBeer"</text>
                </outputEntry>
            </rule>
            <rule id="DecisionRule_0kf4y0a">
                <inputEntry id="UnaryTests_09pkbsv">
                    <text>"Spring"</text>
                </inputEntry>
                <outputEntry id="LiteralExpression_0fx9hii">
                    <text>"Dry Aged steak"</text>
                </outputEntry>
            </rule>
            <rule id="DecisionRule_020pynb">
                <description>Less Effort</description>
                <inputEntry id="UnaryTests_10ydtir">
                    <text>"Fall","Winter","Spring"</text>
                </inputEntry>
                <outputEntry id="LiteralExpression_0byu0h6">
                    <text>"Stew"</text>
                </outputEntry>
            </rule>
            <rule id="DecisionRule_19jjhib">
                <description>Hey why not</description>
                <inputEntry id="UnaryTests_03eg1qd">
                    <text>"Summer"</text>
                </inputEntry>
                <outputEntry id="LiteralExpression_0cx6p63">
                    <text>"Light Sald"</text>
                </outputEntry>
            </rule>
            <rule id="DecisionRule_1cnr8kg">
                <inputEntry id="UnaryTests_12w0ceb">
                    <text></text>
                </inputEntry>
                <outputEntry id="LiteralExpression_1g1nomo">
                    <text></text>
                </outputEntry>
            </rule>
        </decisionTable>
    </decision>
    <dmndi:DMNDI>
        <dmndi:DMNDiagram>
            <dmndi:DMNShape dmnElementRef="Decision_0iitlac">
                <dc:Bounds height="80" width="180" x="160" y="100" />
            </dmndi:DMNShape>
        </dmndi:DMNDiagram>
    </dmndi:DMNDI>
</definitions>

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2022-01-15 14:21:49

您编写java代码来解析DMN表是有原因的吗?Camunda引擎将为您解析和评估表,作为运行流程的一部分。

尽管如此,您的Java代码似乎并不完整,因为我看不到您在任何变量中输入的位置。我假设您应该提供一个要评估的输入变量cellInput

dg

票数 0
EN

Stack Overflow用户

发布于 2022-01-28 10:39:40

在“季节”列中,您将字段“输入变量”的默认值从cellInput更改为“季节”。从输入变量字段中移除季节,并确保数据季节的值被传入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70698546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档