DMN Decision not properly reading output from a provider Decision when the output type is explicitly set

Camunda Modeler: 5.50.1

Camunda Run: 8.9.9

Reference files:

BusinessRules.bpmn (3.0 KB) (business process that just invokes the Decision)

DiscountCalculation_New.dmn (9.0 KB)

Test input for the Business process:

{
  "InputAccountCableTenure" : 4,
  "InputAccountStreamingTenure" : 2,
  "InputPurchaseAmount" : 1800
}

Decision model:

The data type for decision Account Level is not explicitly set; as there is no assignment, the displayed type defaults to “Any”.

This Decision returns 2 values.

Account Level is stored in accountLevel

Account Grade is stored in accountGrade

The top level Decision uses only accountLevel:

With this setup everything works fine and the expected account level is passed to the dependent Decision:

But if I explicitly set the return type of the Account Level decision to Any, what generates a “variable” element in the XML representation of the decision:

  <decision id="Decision_0ihwrs3" name="Account Level">
    <variable id="InformationItem_0a08w3d" name="Account Level" typeRef="Any" />

And run the process again:

The value of accountLevel is not read by the decision “Discount Calculation” despite the fact that the decision “Account Level” generated the output as expected:

If I go to the XML representation of the decision “Account Level” and remove the element

    <variable id="InformationItem_0a08w3d" name="Account Level" typeRef="Any" />

Everything works fine again.

Sorry for the long topic but as I don’t have an enterprise account I can raise defects so I thought it would be better to include as much information as possible here.

This looks like an issue related to how the typeRef="Any" variable element affects output resolution in dependent decisions. I found the following relevant resources:

Does this help? If not, can anyone from the community jump in? :waving_hand:


:light_bulb: Hints: Use the Ask AI feature in Camunda’s documentation to chat with AI and get fast help. Report bugs and features in Camuda’s GitHub issue tracker. Trust the process. :robot:

None of those links helped. I’m pretty sure it’s a defect so it would be nice if someone from Camunda could take a look. I can think of workarounds for it (e.g. not use Decisions that return more than one result) but it still likely needs a fix.

@claudio_rio thank you for raising this issue and providing all details. :heart_hands:

Indeed, this is a bug in the new Camunda Modeler version. I created the issue: DMN variable is not compatible with the Camunda DMN engine · Issue #6136 · camunda/camunda-modeler · GitHub

The `variable` XML element causes a problem with the Camunda DMN engine if a decision depends on another decision. The result of the dependent decision should be available under the decision ID. However, with the `variable` element, the decision result is available under the decision name.

As a workaround, you can remove the `variable` element.