requiredDecision element inside an informationRequirement XML element.
Consider the following simple DMN model:
Documentation Index
Fetch the complete documentation index at: /llms.txt
Use this file to discover all available pages before exploring further.
// read a model from a file
File file = new File("PATH/TO/MODEL.dmn");
DmnModelInstance modelInstance = Dmn.readModelFromFile(file);
// read a model from a stream
InputStream stream = [...]
DmnModelInstance modelInstance = Dmn.readModelFromStream(stream);
// find element instance by ID
DecisionTable decisionTable = modelInstance.getModelElementById("decisionTable1");
// find all elements of the type DecisionTable
ModelElementType decisionTableType = modelInstance.getModel()
.getType(DecisionTable.class);
Collection<ModelElementInstance> decisionTableInstances =
modelInstance.getModelElementsByType(decisionTableType);
DecisionTable decisionTable = modelInstance.getModelElementById("decisionTable1");
// read attributes by helper methods
String outputLabel = decisionTable.getOutputLabel();
Collection<Input> inputs = decisionTable.getInputs();
// edit attributes by helper methods
decisionTable.setOutputLabel("new-label");
// read attributes by generic XML model API (with optional namespace)
String custom1 = decisionTable.getAttributeValue("custom-attribute");
String custom2 = decisionTable.getAttributeValueNs("custom-attribute-2",
"http://camunda.org/custom");
// edit attributes by generic XML model API (with optional namespace)
decisionTable.setAttributeValue("custom-attribute", "new value");
decisionTable.setAttributeValueNs("custom-attribute",
"http://camunda.org/custom", "new value");
requiredDecision element inside an informationRequirement XML element.
Consider the following simple DMN model:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="https://www.omg.org/spec/DMN/20191111/MODEL/"
id="dish" name="Dish" namespace="test-drd-2">
<decision id="dish-decision" name="Dish Decision">
<informationRequirement>
<requiredDecision href="#season" />
</informationRequirement>
<decisionTable id="dishDecisionTable">
<input id="seasonInput" label="Season">
<inputExpression id="seasonInputExpresion" typeRef="string">
<text>season</text>
</inputExpression>
</input>
<output id="output" label="Dish" name="desiredDish" typeRef="string"/>
<rule id="dishRule1">
<inputEntry id="dishInputEntry1">
<text><![CDATA["Spring"]]></text>
</inputEntry>
<outputEntry id="dishOutputEntry1">
<text><![CDATA["Salad"]]></text>
</outputEntry>
</rule>
...
</decisionTable>
</decision>
<decision id="season" name="Season decision">
<decisionTable id="seasonDecisionTable">
<input id="temperatureInput" label="Weather in Celsius">
<inputExpression id="temperatureInputExpression" typeRef="integer">
<text>temperature</text>
</inputExpression>
</input>
<output id="seasonOutput" label="season" name="season" typeRef="string" />
<rule id="seasonRule1">
<inputEntry id="seasonInputEntry1">
<text><![CDATA[<10]]></text>
</inputEntry>
<outputEntry id="seasonOutputEntry1">
<text><![CDATA["Winter"]]></text>
</outputEntry>
</rule>
...
</decisionTable>
</decision>
</definitions>
// read dmn model from file
File file = new File("PATH/TO/MODEL.dmn");
DmnModelInstance modelInstance = Dmn.readModelFromFile(file);
// find the main decision by ID
Decision decision = modelInstance.getModelElementById("dish-decision");
// get the information requirements
Collection<InformationRequirement> informationRequirements =
decision.getInformationRequirements();
// get the input of the required decisions
for (InformationRequirement informationRequirement : informationRequirements) {
Decision requiredDecision = informationRequirement.getRequiredDecision();
DecisionTable decisionTable =
requiredDecision.getUniqueChildElementByType(DecisionTable.class);
Collection<Input> inputs = decisionTable.getInputs();
...
}