FEEL Expression in Output Entry

1,106 views
Skip to first unread message

Bernd Rücker

unread,
Mar 9, 2016, 4:39:56 AM3/9/16
to camunda-...@googlegroups.com

Hey guys.

 

It is currently not possible to use FEEL to easily create a list of results in one output entry – correct (see example below – results in the exception shown below). It sounds that it SHOULD be possible according to the FEEL specification – or what do you think? In this case it is a feature request?

 

Thanks

Bernd

 

 

    <decision id="test" name="Test">

        <decisionTable id="decisionTable">

            <input id="input1" label="True">

                <inputExpression id="inputExpression1" typeRef="boolean">

                    <text>test.isTrue()</text>

                </inputExpression>

            </input>

            <output id="output1" label="Answer" name="answer" />

            <rule id="row-305433060-1">

                <inputEntry id="UnaryTests_0yemjku">

                    <text>true</text>

                </inputEntry>

                <outputEntry id="LiteralExpression_1ae1hqv"

                    expressionLanguage="feel">

                    <text><![CDATA["x", "y"]]></text>

                </outputEntry>

            </rule>

        </decisionTable>

    </decision>

 

Caused by: java.lang.UnsupportedOperationException: FEEL-01016 Simple Expression not supported by FEEL engine

    at org.camunda.bpm.dmn.feel.impl.juel.FeelEngineLogger.simpleExpressionNotSupported(FeelEngineLogger.java:157) ~[camunda-engine-feel-juel-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.feel.impl.juel.FeelEngineImpl.evaluateSimpleExpression(FeelEngineImpl.java:41) ~[camunda-engine-feel-juel-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext.evaluateFeelSimpleExpression(DefaultDmnDecisionContext.java:276) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext.evaluateOutputEntry(DefaultDmnDecisionContext.java:266) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext.evaluateOutputEntries(DefaultDmnDecisionContext.java:245) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext.evaluateMatchingRule(DefaultDmnDecisionContext.java:164) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext.setEvaluationOutput(DefaultDmnDecisionContext.java:156) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnDecisionContext.evaluateDecisionTable(DefaultDmnDecisionContext.java:103) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.dmn.engine.impl.DefaultDmnEngine.evaluateDecisionTable(DefaultDmnEngine.java:95) ~[camunda-engine-dmn-7.4.0.jar:7.4.0]

    at org.camunda.bpm.engine.impl.dmn.invocation.DecisionTableInvocation.invoke(DecisionTableInvocation.java:52) ~[camunda-engine-7.4.0.jar:7.4.0]

    at org.camunda.bpm.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:54) ~[camunda-engine-7.4.0.jar:7.4.0]

    at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocationInContext(DefaultDelegateInterceptor.java:86) ~[camunda-engine-7.4.0.jar:7.4.0]

    at org.camunda.bpm.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:58) ~[camunda-engine-7.4.0.jar:7.4.0]

    at org.camunda.bpm.engine.impl.util.DecisionTableUtil.invoke(DecisionTableUtil.java:86) ~[camunda-engine-7.4.0.jar:7.4.0]

    at org.camunda.bpm.engine.impl.util.DecisionTableUtil.evaluateDecisionTable(DecisionTableUtil.java:81) ~[camunda-engine-7.4.0.jar:7.4.0]

 

Bernd Rücker

unread,
Mar 9, 2016, 4:41:11 AM3/9/16
to camunda-...@googlegroups.com

Attached the DMN Table

--
You received this message because you are subscribed to the Google Groups "camunda BPM users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-us...@googlegroups.com.
To post to this group, send email to camunda-...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/camunda-bpm-users/DB5PR06MB0966B7852823C88511D60DC3E8B30%40DB5PR06MB0966.eurprd06.prod.outlook.com.
For more options, visit https://groups.google.com/d/optout.

test.dmn

Sebastian Menski

unread,
Mar 9, 2016, 4:44:26 AM3/9/16
to camunda BPM users
Hi Bernd,

as you can read in the documentation [1] Camunda only supports FEEL for input entries. So the feature request would be to support FEEL also for other expressions.

Cheers,
Sebastian

Bernd Rücker

unread,
Mar 9, 2016, 4:47:26 AM3/9/16
to camunda-...@googlegroups.com

But what I have just sent as an example would be valid DMN 1.1 – correct?

 

And it would be a nice addition to mention this limitation also here: https://docs.camunda.org/manual/7.4/reference/dmn11/decision-table/rule/#expression-language-of-an-output-entry

--

You received this message because you are subscribed to the Google Groups "camunda BPM users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-us...@googlegroups.com.
To post to this group, send email to camunda-...@googlegroups.com.

Sebastian Menski

unread,
Mar 9, 2016, 5:08:15 AM3/9/16
to camunda BPM users
Hi Bernd,

actually if I look at the FEEL grammar I don't think that you can create a list. In 9.4.3 we have: "Each output entry SHALL be a simple expression (grammar rule 5)."

And rule 5 states: "simple expression = arithmetic expression | simple value | comparison ; "
And a simple value is: "19 simple value = qualified name | simple literal ;"
And s simple literal is: "33 simple literal = numeric literal | string literal | Boolean literal | date time literal ;"

So no lists so far. Why do you think that list are valid? Sorry if I overlooked something. I not quite sure what is possible with FEEL in output entries.

Cheers,
Sebastian

Sebastian Menski

unread,
Mar 9, 2016, 5:26:31 AM3/9/16
to camunda BPM users
Hi Bernd,

my last post seems to only be valid for S-FEEL. For real FEEL we found the sentence "An output entry is an expression." on page 135. And an expression can be a boxed expression. And a boxed expression can be a list.
So yes you are right your example seems to be valid. Sorry.

Cheers,
Sebastian

Bernd Rücker

unread,
Mar 9, 2016, 10:10:19 AM3/9/16
to camunda-...@googlegroups.com

Hi Sebastian.

 

Thanks for looking into that in detail! I was indeed unsure if possible, but tended to believe it IS possible (but I am actually not “the grammer guy” ;-)). I put it on the DMN backlog.

 

Cheers

Bernd

 

Von: camunda-...@googlegroups.com [mailto:camunda-...@googlegroups.com] Im Auftrag von Sebastian Menski


Gesendet: Mittwoch, 9. März 2016 11:27
An: camunda BPM users <camunda-...@googlegroups.com>

--

You received this message because you are subscribed to the Google Groups "camunda BPM users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-us...@googlegroups.com.
To post to this group, send email to camunda-...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages