[jboss-jira] [JBoss JIRA] (DROOLS-4724) [DMN Designer] Do not default to a LiteralExpression when no expression is defined

Matteo Mortari (Jira) issues at jboss.org
Fri Nov 22 12:12:00 EST 2019


    [ https://issues.jboss.org/browse/DROOLS-4724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13816815#comment-13816815 ] 

Matteo Mortari commented on DROOLS-4724:
----------------------------------------

Thank you for the analysis [~jomarko].

Hi [~manstis] I believe the proper answer is to follow the expectation of the XSD, to avoid saving something which would fail at being a valid xml.

Meaning for ContextEntry for the XSD we must provide an Expression, hence the NPE in the marshaller implementation:
!screenshot-1.png|thumbnail! 

While for Decision node that is optional, hence this work:
 !screenshot-2.png|thumbnail! 

Being expression optional also applies to functionDefinition's body and businessKnowledgeModel nodes' expression.

That said, I believe we can reasonably act on the ContextEntry behaving different on the basis of the DMN specification itself. 

Additionally, I believe is confusing to drop-in just an empty LiteralExpression with no content whatsoever, as that appears to be one of the source of confusion for new-users, as reported for instance by [~mfusco] during the last sanity checks.

Hence I would conclude by proposing the following:
* the current behaviour appears to be working fine AND valid for most of the elements, proving it's okay
* for contextEntry, if missing an expression during the save, we should drop-in a LiteralExpression with {{null}} as its content, so to make it more explicit that was caused by the user saving without having filled that field. We can even have it as:

{code:java}
null // auto-filled on save by the editor to avoid missing empty expression for entry
{code}

this is my perspective, let me know if the second bulletpoint in your view can be implemented WB side or your view is for it to be filled by the -backend marshaller.

/cc [~tirelli]

> [DMN Designer] Do not default to a LiteralExpression when no expression is defined
> ----------------------------------------------------------------------------------
>
>                 Key: DROOLS-4724
>                 URL: https://issues.jboss.org/browse/DROOLS-4724
>             Project: Drools
>          Issue Type: Enhancement
>          Components: DMN Editor
>            Reporter: Matteo Mortari
>            Assignee: Michael Anstis
>            Priority: Major
>              Labels: drools-tools
>         Attachments: error.log, image-2019-11-04-19-39-01-113.png, image-2019-11-04-19-40-27-201.png, save-context.webm, screenshot-1.png, screenshot-2.png
>
>
> Currently, the DMN Editor will default to a blank LiteralExpression on Save if the user did not provide an expression for an element.
> However Error message is reported anyway to the user:
>  !image-2019-11-04-19-39-01-113.png|thumbnail! 
> This also as the (imho undesired) side-effect that if the user was to re-open later that file, instead of a empty element, it would be a blank LiteralExpression
>  !image-2019-11-04-19-40-27-201.png|thumbnail! 
> so the current behavior is not consistent across re-open of the editor.
> Let's revert this default.
> The DMN Editor on save should +not+ default to a blank LiteralExpression if the user did not provide an expression for the element.
> Once this change is applied from the f/e side, I am happy to be involved in order to assess which of the messages reported by the Validator or the Compiler are causing issue to the WB (if any).
> Currently, the DMN Compiler will throw 1 Warning.
> Currently, the DMN Validator will throw 1 Error (I can align this to be a Warn too).
> Currently, the DMN Validator schema check is not reporting any XSD violation.
> h2. Manual acceptance test
> Try to save default / empty
> h3. Business Central
> - Decision node (/)
> - BKM node (/)
> - Cleared Function (/)
> - Context entry (x)   [^error.log]   [^save-context.webm] 
> - Invocation (/)
> h3. Kogito
> - Decision node (/)
> - BKM node (/)
> - Cleared Function (/)
> - Context entry (/)
> - Invocation (/)



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list