droolsdmnkogitoredhat-decision-manager

Call one of the two decision table from parent decision table in Drools DMN


I have a decision table that takes Age as an Input and returns OLD or YOUNG if Age >50 & Age <50. Based on this I need to call one of the two decision table (One for old and one of Young). How can I achieve this in Drools DMN / Kogito ?

I tried using decision table as represented in diagram. And I want this in DMN only

diagram


Solution

  • The diagram looks like a if/then which is definitely a design smell in the context of DMN, and more a BPMN thing.

    You can achieve however analogous result in several ways.

    One option, is.

    Considering old vs young is a simple 1-inpudata related choice, you could just have your decision in a single table like so: [single decision table1

    Another option is.

    You transform your OldSpecific and YoungSpecific into BKM nodes. Then, you have a Decision node with the following expression:

    if DecideYoungOrOld = "YOUNG" then YoungSpecific(...) else OldSpecific(...)
    

    but this is not very idiomatic DMN.

    A more idiomatic way would be to transform the expression in another simple decision table:

    decision table instead of if/then/else

    Hope this helps. Don't forget to accept answer if helpful