question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Improve DMN modeling UX for Camunda Cloud

See original GitHub issue

Is your feature request related to a problem? Please describe.

In Camunda Cloud ~1.3.0~ 1.4.0, we will support evaluating DMN decisions in Zeebe. Since Zeebe will use a different DMN engine than Camunda Platform and doesn’t support all features from the Platform, we should remove some properties to improve the modeling UX.

Describe the solution you’d like

In order to improve the DMN UX for Zeebe and the new DMN engine, we should adjust the following parts:

  • decisions (in DRG view):
    • remove the property Version Tag - not supported by Zeebe
    • remove the property History Time to Live - not supported by Zeebe
    • remove the description of the Id property (similar to the Id property of processes) - in Zeebe the ID will be serialized as decisionId (in Zeebe, keys are the identifiers of the record entity)
    • tracked via https://github.com/bpmn-io/dmn-js-properties-panel/issues/29
  • decision table:
    • remove the property to select the Expression Language on inputs (i.e. input expressions), input entries, and output entries - Zeebe supports only FEEL
    • remove the property Input Variable on inputs - in FEEL, the input value can be accessed by using ? if needed
    • remove the options integer + long + double in favor of a new option number on selecting the Type of inputs and outputs - in FEEL, there is only a number type (represented as BigDecimal)
    • add the options time + dateTime + dayTimeDuration + yearMonthDuration + Any on selecting the Type of inputs and outputs - in order to cover the most common types of FEEL
  • literal expression:
    • remove the property to select the expression language - Zeebe supports only FEEL
    • remove the options integer + long + double in favor of a new option number on selecting the Variable Type - in FEEL, there is only a number type
    • add the options time + dateTime + dayTimeDuration + yearMonthDuration + Any on selecting the Variable Type of inputs and outputs - in order to cover the most common types of FEEL

Describe alternatives you’ve considered

No changes. It should be possible to deploy a DMN with the current modeler if no unsupported features are used. Otherwise, the deployment with the DMN is rejected.

Additional context

None.

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:7 (7 by maintainers)

github_iconTop GitHub Comments

3reactions
andreasgeiercommented, Feb 21, 2022

we should be able to model DMN as we want but get a warning if it’s not supported by the engine.

That approach would follow the principles that we defined for validation and linting:

  1. Direct validation only for entries that would break the diagram in the modeler. Behavior: we ignore the input, refuse to change the XML, and as result keep the previous (valid) state.
  2. Everything else is part of the linting scope. No additional direct validation in the properties panel.

However, so far there is no DMN linting in place. So, doing things differently here is not preferred but is an option.

2reactions
saig0commented, Feb 16, 2022

@barmac we should plan a few more adjustments to improve the UX:

Restricting the naming/usage of the decision ID

  • currently, the decisionId must be a valid QName
  • but in a DMN for Camunda Cloud, the decisionID may be referenced in a dependent decision (i.e. to access the decision result/output of a required decision)
  • the FEEL engine has the limitation that a variable should not contain any special characters or symbols (e.g. whitespace, dashes, etc.), except the variable name is escaped
  • if the decisionId has a special character (e.g. my-decision) and it is used in an input expression then the FEEL expression can’t be parsed and the DMN is rejected by Zeebe
  • it works for Camunda Platform 7 because their DMN engine uses the output names instead of the decisionId (but this behavior is not correct according to the DMN specs)
  • we have the same issue for output name (i.e. the name of a decision table output) and variable name of decision literal expressions

Suggestion/idea:

  • add a new validation for the decisionId (and the other properties) and limit the value to alphanumeric names

Avoiding differences of the decision ID and the output name

  • a decision table can have one or more outputs and each output has an output name
  • currently, the output name can be named independently from the decisionId
  • but in a DMN for Camunda Cloud, the output name is not used if the decision table has only one output
  • instead, the DMN engine uses the decisionId. It uses the output names only if the decision table has more than one output.
  • if the output name is different from the decisionId and the output name is used in an input expression then the FEEL expression/the DMN decision may fail or return an unexpected result
  • it works for Camunda Platform 7 because their DMN engine uses always the output name instead of the decisionId (but this behavior is not correct according to the DMN specs)

Suggestion/idea:

  • the output name is not editable if the decision table has only one output

cc: @nikku

Read more comments on GitHub >

github_iconTop Results From Across the Web

BPMN and DMN Modeler for Atlassian Confluence - Camunda
Document business processes with the BPMN and DMN Modeler for Confluence - two plugins available for free on the Atlassian Marketplace.
Read more >
DMN Tutorial - Camunda
In DMN, decisions can be modeled and executed using the same language. Business analysts can model the rules that lead to a decision...
Read more >
Page 12 | Camunda
With Camunda, business users collaborate with developers to model and automate end-to-end processes using BPMN-powered flowcharts, along with DMN decision ...
Read more >
Camunda Platform 8.0 Released - What's New
If you are using Camunda Cloud today, the update process has not changed and is ... we've redesigned the UX to be more...
Read more >
Camunda Cloud 1.1.0 Released
Improved user experience and instant upgrade to the Camunda Cloud Professional Plan with a self-service credit-card purchase option – no need to ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found