Decision Model and Notation Avatar
  1. OMG Specification

Decision Model and Notation — Open Issues

  • Acronym: DMN
  • Issues Count: 7
  • Description: Issues not resolved
Open Closed All
Issues not resolved

Issues Descriptions

date() conversion function should return null for invalid dates

  • Key: DMN17-67
  • Status: open   Implementation work Blocked
  • Source: Camunda Services GmbH ( Mr. Philipp Ossler)
  • Summary:

    The description of the date() conversion function doesn't specify the expected result if the function is invoked with an invalid date.

    Examples:

    date("2023-02-29") 
    // expected: null (2023 is not a leap year)
    
    date("2023-06-31")
    // expected: null (June has only 30 days)
    

    I expect that the function should return null because an invalid date is outside of the parameter domain of a "valid date".

    From a user perspective, it would also be useful to return null to identify/detect invalid dates.

    Goal: clarify the expected behavior and adjust the description in the specification.

  • Reported: DMN 1.5b1 — Wed, 26 Jun 2024 06:56 GMT
  • Updated: Mon, 1 Jul 2024 15:21 GMT

Wrong placement of useAlternativeInputDataShape attribute in the DMN specification document

  • Key: DMN17-66
  • Status: open  
  • Source: International Business Machines ( Mr. Tibor Zimanyi)
  • Summary:

    There is a bug in the specification document (1) around the attribute useAlternativeInputDataShape. Looking into the approved proposal, that added the attribute here (2), it is approved to be added to DMNDiagram. In the XSD it is correctly in the DMNDiagram. However, when you check the document, it is part of the DMNShape definition (see 13.4.5 DMNShape [Class]).

    (1) https://www.omg.org/spec/DMN/1.5/Beta1/PDF
    (2) https://issues.omg.org/browse/DMN15-117

  • Reported: DMN 1.5b1 — Mon, 20 May 2024 11:24 GMT
  • Updated: Fri, 21 Jun 2024 17:56 GMT

Frequently changing Namespace URIs cause market fragmentation

  • Key: DMN17-65
  • Status: open  
  • Source: Camunda Services GmbH ( Mr. Falko Menge)
  • Summary:

    Currently, the version of DMN used in an DMN XML file is identified by the XML namespace URI, which is therefore changed with every revision. However, frequently changing namespace URIs cause market fragmentation across supported specification versions, as it cannot be assumed that all vendors update to the latest version of the spec at the same time, if at all.

    This forces users to do unnecessary version migrations, or their models would be rejected by a tool as invalid or outdated even though language features used in the model may be perfectly supported by the tool. This issue has also been recognized by Specification Common Elements (SCE) in SCE-117.

    With DMN shipping bugfixes on a yearly pace, the fragmentation of the tool market increases, while the actual number of changes to the XML schema decreases. In fact, DMN 1.6 has zero changes to the XML schema at all but if it would follow the "tradition", it would again declare itself totally incompatible with DMN 1.5 and all prior versions.

    DMN 1.x revisions have been following the backwards compatibility guidelines for machine-readable files and XML schemas as defined in the OMG Policy for Versioning of Specification URIs, File URIs, and XML Namespaces (smsc/2018-08-01). Therefore, DMN 1.x revisions should not change the namespace URL until a version 2.0 introduces breaking changes, which is not planned at the moment.

    The "tradition" to always change the namespace has somewhat accidentally grown:

  • Reported: DMN 1.5b1 — Mon, 22 Apr 2024 19:36 GMT
  • Updated: Fri, 21 Jun 2024 17:56 GMT

XML serialization is not human friendly

  • Key: DMN17-61
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    DMN models are serialized in the XML format. XML notation is not user-friendly.

    I suggest adopting an equivalent textual notation that is user-friendly similar to the HUTN notation for UML https://www.omg.org/spec/HUTN/1.0/PDF

  • Reported: DMN 1.5b1 — Tue, 5 Dec 2023 11:28 GMT
  • Updated: Fri, 21 Jun 2024 17:56 GMT

Relation conforms to and equivalent do not cover functions with variable arguments

  • Key: DMN17-58
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    Sections 10.3.2.9.1 Type Equivalence and 10.3.2.9.2 Type Conformance define relations between types.

    The definitions do not contain specification for existing builtin functions with variable arguments (e.g. sum).

    The issue was discovered in TCK when testing function invocations.

  • Reported: DMN 1.5b1 — Tue, 4 Jul 2023 07:57 GMT
  • Updated: Fri, 21 Jun 2024 17:56 GMT

Clarification on the FEEL sort function with the precedes function

  • Key: DMN17-63
  • Status: open  
  • Source: Trisotech ( Mr. Simon Ringuette)
  • Summary:

    In section 10.3.4.9 of the DMN 1.5 specification (page 153, PDF 161) the sort function is defined with the possibility to use a precedes boolean function to compare list elements.

    Text should be added after table 80 to clarify how the precedes function deal with equal parameters.

    I would propose that precedes return false when both parameters are equals.

    This new paragraph should also establish the stability expectation of the sort FEEL function (equal elements keep the order of the original list).

    I would propose that the FEEL sort function does not guarantee stability. Guaranteeing stability could impact certain sort performances.

  • Reported: DMN 1.5b1 — Thu, 21 Mar 2024 19:28 GMT
  • Updated: Fri, 21 Jun 2024 17:56 GMT

Duplicated names and labels

  • Key: DMN17-60
  • Status: open  
  • Source: Goldman Sachs ( Dr. Octavian Patrascoiu)
  • Summary:

    According to 6.3.1 DMN Element metamodel and 6.3.5 DRG Element metamodel, DRGElements have name and label attributes.

    They also have a variable property that has a name. The DMNDI model also has a label property.

    Possible solution:

    • deprecate the attributes (e.g. DMNElement.label)
    • add a constraint (e.g. DRGElement.name == DRGElement.variable.name)
  • Reported: DMN 1.5b1 — Mon, 27 Nov 2023 10:49 GMT
  • Updated: Fri, 21 Jun 2024 17:56 GMT