Camunda identification of the ROW/RULE

Can we know which row/rule of the DMN table is actually executed? Is there any way that DMN API’s return the information dynamically?
We are trying to include the row/rule number in logs, so that it will be easy to triage issues in future?

Hi @HARISH ,

I assume that you’re using Camudna Platform 7. In the history API, you can query the history of the decision evaluation (i.e. decision instance). The history contains also the id of the matched rule. See Get Historic Decision Instance | docs.camunda.org

Does this help you?

Best regards,
Philipp

1 Like

We are not using any REST Apis, we have local DMN file and we are parsing that as below and executing rules.

private DmnDecision loadDmn(DmnEngine dmnEngine, String filePath, String decisionId) {
try (FileInputStream inputStream = new FileInputStream(filePath)) {

		return dmnEngine.parseDecision(decisionId, inputStream);

	} catch (Exception ex) {
		ex.printStackTrace();
	}
	return null;
}

Calling DMN table with inputs
DmnDecisionTableResult dmnOutput = dmnEngine.evaluateDecisionTable(dmnDecision, inputToDmn);

Do we have any method in dmnEngine to identify ? and we are using 7.15 version.

Have a look at the listeners here: Embedding the DMN Engine | docs.camunda.org

The history in Camunda is built using these listeners.

Hi, I would include an additional output column to the DMN with it’s corresponding Rule Identifier/Description. This will then be available in the response.