We also needed this functionality, and have successfully integrated solution “b” in our codebase, based in the code on github https://github.com/camunda-consulting/code/tree/master/snippets/dmn-decision-chaining/dmn-decision-chaining-plugin/src/main/java/com/camunda/consulting. So we can use the expression
dmn('dish', variableContext) the invoke another dmn.
We do have the following question: at this point the called DMN is expected to have a single matching rule, and a single column, whose value is used as return value to the “dmn” function. How can this be extended to 1) multiple matching rules and 2) multiple columns (and a combination of those two). Now, in the implementation of the “dmn” function, we have full access to the DmnDecisionTableResult instance, so all the data is available. The question then becomes how the result can be used in multiple columns of the calling dmn, without actually invoking the dmn function twice.
Is that question somewhat clear?