DMN 1.3 RTF Avatar
  1. OMG Issue

DMN13 — Decision Service output value in the case of single output Decision

  • Key: DMN13-163
  • Status: closed  
  • Source: Red Hat ( Matteo Mortari)
  • Summary:

    Executive summary

    The proposal targets the case of a Decision Service having a single output decision(s), for the result to be simply the value result of such single decision, instead of a context with 1 only entry, name of the single output decision, and value of that decision

    Rationale and details

    with reference to figure from the spec Figure 11.7: Routing Decision Service, the use of the decision service in a literal expression would currently require to write something like:

    if Routing Decision Service( ..., ... ).Routing = "ACCEPT" then true else false
    

    please notice specify the .Routing would sound redundant and arguably some may say user-unfriendly in the scenario of a Decision Service with a single output decision.

    In the case of a Decision Service with a single output decision, we could more friendly have:

    if Routing Decision Service( ..., ... ) = "ACCEPT" then true else false
    

    In other words, the result of invoking the "Routing Decision Service" accordingly to this proposal would be:

    Routing Decision Service :  "ACCEPT"
    

    and not:

    Routing Decision Service :  { Routing : "ACCEPT" }
    

    as of today.

    Naturally when a Decision Service contains multiple output DecisionS, then is always the context, for instance taking example from DMN Spec Figure 11.6: Bureau Strategy Decision Service the result will continue to be:

    Bureau Strategy Decision Service :  { Strategy : ..., Bureau call type: ... }
    

    Proposal specification change

    With reference to document formal/19-01-05, chapter "10.4 Execution Semantics of Decision Services", page 151
    Replace the following:

    The execution semantics of S is FEEL(F): a function that when invoked with values from the FEEL semantic domain
    bound to the parameters representing input data and input decisions, returns a context consisting of all the output
    decisions' output values.

    with:

    The execution semantics of S is FEEL(F): a function that when invoked with values from the FEEL semantic domain
    bound to the parameters representing input data and input decisions, returns:

    • in the case of a single output decision(s), the single decision's output value.
    • in the case of multiple output decisions, a context consisting of all the output decisions' output values.
  • Reported: DMN 1.2 — Mon, 20 May 2019 15:30 GMT
  • Disposition: Resolved — DMN 1.3
  • Disposition Summary:

    clarify that single output decision service does not result in context but rather the single output value

    Executive summary

    The proposal targets the case of a Decision Service having a single output decision(s), for the result to be simply the value result of such single decision, instead of a context with 1 only entry, name of the single output decision, and value of that decision

    Rationale and details

    with reference to figure from the spec Figure 11.7: Routing Decision Service, the use of the decision service in a literal expression would currently require to write something like:

    if Routing Decision Service( ..., ... ).Routing = "ACCEPT" then true else false
    

    please notice specify the .Routing would sound redundant and arguably some may say user-unfriendly in the scenario of a Decision Service with a single output decision.

    In the case of a Decision Service with a single output decision, we could more friendly have:

    if Routing Decision Service( ..., ... ) = "ACCEPT" then true else false
    

    In other words, the result of invoking the "Routing Decision Service" accordingly to this proposal would be:

    Routing Decision Service :  "ACCEPT"
    

    and not:

    Routing Decision Service :  { Routing : "ACCEPT" }
    

    as of today.

    Naturally when a Decision Service contains multiple output DecisionS, then is always the context, for instance taking example from DMN Spec Figure 11.6: Bureau Strategy Decision Service the result will continue to be:

    Bureau Strategy Decision Service :  { Strategy : ..., Bureau call type: ... }
    
  • Updated: Mon, 30 Mar 2020 19:50 GMT