Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-5329

Decision History should not thrown an exception if the input/outputs where fetch but are empty

    Details

    • Type: Bug Report
    • Status: Closed
    • Priority: L3 - Default
    • Resolution: Added to backlog
    • Affects Version/s: None
    • Fix Version/s: 7.5.0, 7.4.x, 7.5.0-alpha3
    • Component/s: engine
    • Labels:

      Description

      Scenario

      • A decision table is evaluated but it has not input or output values, (for example see attached DMN file)

      Problem

      • If you query for the historic decision instances including input and outputs like:
      List<HistoricDecisionInstance> decisions = BpmPlatform.getDefaultProcessEngine().getHistoryService().createHistoricDecisionInstanceQuery()
        .decisionDefinitionKey(decisionDefinitionKey)
        .includeOutputs()          
        .list();
      

      and then try to access the outputs or inputs there will be an exception

      for (HistoricDecisionInstance decision : decisions) {
        List<HistoricDecisionOutputInstance> outputs = decision.getOutputs();
        ...
      }
      
      Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-03061 The output instances for the historic decision instance are not fetched. You must call 'includeOutputs()' on the query to enable fetching.
      

      AT

      • if the input/outputs are fetch during the query but are empty an empty list will be returned by getInputs and getOutputs instead of an exception
      1. empty.dmn11.xml
        0.5 kB
        Sebastian Menski

        Issue Links

          Activity

          Hide
          thorben.lindhauer Thorben Lindhauer added a comment -

          The modeler cannot open the attached dmn xml. Given that this is a valid DMN file, is there already a bug report for the modeler?

          Show
          thorben.lindhauer Thorben Lindhauer added a comment - The modeler cannot open the attached dmn xml. Given that this is a valid DMN file, is there already a bug report for the modeler?
          Hide
          sebastian.menski Sebastian Menski added a comment -

          The modeler disallows to have no input nor output column (CAM-4306). So not sure if this is a Bug as it isn't a common use case to have no inputs/outputs. Feel free to create a ticket.

          Show
          sebastian.menski Sebastian Menski added a comment - The modeler disallows to have no input nor output column ( CAM-4306 ). So not sure if this is a Bug as it isn't a common use case to have no inputs/outputs. Feel free to create a ticket.
          Hide
          thorben.lindhauer Thorben Lindhauer added a comment -

          Sure, will do that. At least the error message should be better which is "Cannot read property 'inputExpression' of undefined" right now.

          Show
          thorben.lindhauer Thorben Lindhauer added a comment - Sure, will do that. At least the error message should be better which is "Cannot read property 'inputExpression' of undefined" right now.
          Hide
          sebastian.menski Sebastian Menski added a comment -

          I totally agree with that.

          Show
          sebastian.menski Sebastian Menski added a comment - I totally agree with that.
          Hide
          thorben.lindhauer Thorben Lindhauer added a comment -

          Shouldn't the attached dmn table always return the single output. DMN spec page 82 says: "By definition, a DecisionRule element that has no conditions is always applicable."

          Show
          thorben.lindhauer Thorben Lindhauer added a comment - Shouldn't the attached dmn table always return the single output. DMN spec page 82 says: "By definition, a DecisionRule element that has no conditions is always applicable."
          Hide
          sebastian.menski Sebastian Menski added a comment -

          The DMN Engine returns a result with a single entry which is an empty list. As the table has a single output without a value. Is that not correct?

          Show
          sebastian.menski Sebastian Menski added a comment - The DMN Engine returns a result with a single entry which is an empty list. As the table has a single output without a value. Is that not correct?
          Hide
          thorben.lindhauer Thorben Lindhauer added a comment -

          I am not sure what the best behavior would be. I would have expected that there is actually an output named "Result" with an empty result (e.g. represented by null or with an additional flag if null would be ambiguous). The way it currently is, the historic output instances table is empty, yet a rule matched. In consequence, we cannot tell which rule matched.

          Show
          thorben.lindhauer Thorben Lindhauer added a comment - I am not sure what the best behavior would be. I would have expected that there is actually an output named "Result" with an empty result (e.g. represented by null or with an additional flag if null would be ambiguous). The way it currently is, the historic output instances table is empty, yet a rule matched. In consequence, we cannot tell which rule matched.

            People

            • Assignee:
              sebastian.menski Sebastian Menski
              Reporter:
              sebastian.menski Sebastian Menski
            • Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development