DMN Evaluation using versioning

Hi Community,

I have a few asks and wanted to know if it is at all possible

  1. How to invoke/evaluate a separate version of DMN.
  2. In case, i need to chain the evaluation result of various versions of a single DMN then how should i go about it.

Please, provide your insights as I am stuck with this ask.

Hi @jatin.

In case that you are evaluate the DMN via a business rule task, you can define the version of the decision you want to evaluate. Please have a look at the docs: https://docs.camunda.org/manual/7.12/reference/bpmn20/tasks/business-rule-task/#using-camunda-dmn-engine

In order to chain the evaluation of multiple DMNs, you can call them via multiple business rule tasks defining different versions.

Does this help you?

Best regards,
Philipp

Hi @Philipp_Ossler,

Regarding Chaining, I dont want to change my BPMN, but in case of having multiple definitions of DMN, I just want to know how to execute every DMN version separately and compute results.

Is there any REST API, Java API for it?

Regards,
Jatin

You can evaluate the decisions by using the Java API: https://docs.camunda.org/manual/7.12/user-guide/process-engine/decisions/decision-service/#evaluating-a-decision

Or the Rest API: https://docs.camunda.org/manual/7.12/reference/rest/decision-definition/post-evaluate/

@Philipp_Ossler we are using the 7.16 version of the Camunda platform. We would like to use this version feature while evaluating the decision table using the rest call. In our environment decision table is being used by multiple applications and using this version feature it will be easy to migrate all the applications one by one to the latest version. ( Blue-Green Deployment)

Current http://localhost:8080/engine-rest/decision-definition/key/GetInventoryStatus/evaluate

Expected: http://localhost:8080/engine-rest/decision-definition/key/GetInventoryStatus/{version}/evaluate

Do you think it is possible to achieve this? please let us know your thoughts on this.

@kunalspatil there is no API to evaluate a specific version of the decision directly.

You need to pass the key of the decision definition: Evaluate Decision | docs.camunda.org

You can query the decision definition key using: Get Decision Definitions | docs.camunda.org

It should work if you combine both REST calls.