Invoke decision table from deicision literal expression

I am trying to implement https://methodandstyle.com/how-to-do-iteration-in-dmn/
I came to know that BKM is not supported in camunda DMN, any workaround?

I am invoking dmn engine from java code. I cannot use BPMN & sub-process/multi-instances, I can change input object format if needed.

usecase: validate employee trip request
input object:

{
  requester: {
    Level: "L2",
    Dept: "sales"
  },
  flights: [
    { src: "BLR", dst: "DXB", class: "BUSINESS", cost: 1000 },
    { src: "DXB", dst: "BLR", class: "ECONOMY", cost: 500 }
  ]
}

I want to have validation rules

  • requester.level != L4 && flight.class=“BUSINESS”
  • requester.level = L2 && flight.cost > 800
  • requester.level = L2 && sum(flight.cost) < 200
  • all employees total trip cost < 5000

note: there can be more objects like hotels/cabs etc. and their validations

Hi @gibsosmat,

this is an interesting request.

Currently, the Camunda DMN doesn’t support BKMs or invoking of other decisions. One workaround is to define a Java function that is called in the decision and invokes the other decision via Java code.

Starting with Camunda 7.13.0 (or the alpha2 release), the DMN engine uses the FEEL-Scala engine that has a different custom function API than before. Have a look at https://docs.camunda.org/manual/develop/user-guide/dmn-engine/feel/custom-functions/.

Related topics:

Best regards,
Philipp