This is an automated email from the ASF dual-hosted git repository.

gitgabrio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git


The following commit(s) were added to refs/heads/main by this push:
     new fc7c5a07e8 [Incubator kie issues#2226] DMN - missing evaluationHitIds 
in evaluated Conditional Expressions inside BKM (#6568)
fc7c5a07e8 is described below

commit fc7c5a07e8c2c4de5f4e76ee55e06ddc4ad65d3a
Author: AthiraHari77 <[email protected]>
AuthorDate: Thu Jan 29 19:56:54 2026 +0530

    [Incubator kie issues#2226] DMN - missing evaluationHitIds in evaluated 
Conditional Expressions inside BKM (#6568)
    
    * [incubator-kie-issues#2226] Fix evaluationhitIds in conditional expression
    
    * [incubator-kie-issues#2226] Fix evaluationhitIds in conditional expression
    
    * [incubator-kie-issues#2226] code cleanup
    
    * [incubator-kie-issues#2226] code cleanup
    
    * [incubator-kie-issues#2226] update tests
    
    * [incubator-kie-issues#2226] code fix
    
    * [incubator-kie-issues#2226] code fix
    
    ---------
    
    Co-authored-by: athira <[email protected]>
---
 .../kie/dmn/core/ast/DMNConditionalEvaluator.java  |   4 +-
 .../java/org/kie/dmn/core/DMNInputRuntimeTest.java | 110 ++++++++
 .../core/impl/DMNRuntimeEventManagerUtilsTest.java |  47 ++++
 .../valid_models/DMNv1_6/ConditionalIf.dmn         | 301 +++++++++++++++++++++
 4 files changed, 461 insertions(+), 1 deletion(-)

diff --git 
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNConditionalEvaluator.java
 
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNConditionalEvaluator.java
index 71da86c4c8..c4a705d234 100644
--- 
a/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNConditionalEvaluator.java
+++ 
b/kie-dmn/kie-dmn-core/src/main/java/org/kie/dmn/core/ast/DMNConditionalEvaluator.java
@@ -176,7 +176,9 @@ public class DMNConditionalEvaluator implements 
DMNExpressionEvaluator {
         DMNExpressionEvaluator evaluatorToUse = booleanResult != null && 
booleanResult ? thenEvaluator : elseEvaluator;
         EvaluatorResult toReturn = evaluatorToUse.evaluate(eventManager, 
result);
         String executedId = evaluatorToUse.equals(thenEvaluator) ? 
thenEvaluatorIdentifier.id : elseEvaluatorIdentifier.id;
-        
DMNRuntimeEventManagerUtils.fireAfterConditionalEvaluation(eventManager, name, 
rootElementName, toReturn, executedId);
+        String decisionName = (eventManager.getCurrentEvaluatingDecisionName() 
== null || eventManager.getCurrentEvaluatingDecisionName().isEmpty()) ?
+                rootElementName : 
eventManager.getCurrentEvaluatingDecisionName();
+        
DMNRuntimeEventManagerUtils.fireAfterConditionalEvaluation(eventManager, name, 
decisionName, toReturn, executedId);
         return toReturn;
     }
 
diff --git 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNInputRuntimeTest.java 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNInputRuntimeTest.java
index e2177056fb..8c7735580f 100644
--- 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNInputRuntimeTest.java
+++ 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/DMNInputRuntimeTest.java
@@ -882,4 +882,114 @@ public class DMNInputRuntimeTest extends 
BaseInterpretedVsCompiledTest {
         nullResults.forEach(nullResult -> 
assertThat(dmnResult.getDecisionResultById(nullResult).getResult()).isNull());
         
assertThat(dmnResult.getDecisionResultById(succeedResult).getResult()).isNotNull();
     }
+
+    @ParameterizedTest
+    @MethodSource("params")
+    void conditionalEvaluationEvents(boolean useExecModelCompiler) {
+        init(useExecModelCompiler);
+        final DMNRuntime runtime = 
DMNRuntimeUtil.createRuntime("valid_models/DMNv1_6/ConditionalIf.dmn", 
this.getClass());
+        final DMNModel dmnModel = 
runtime.getModel("https://kie.org/dmn/_2693E3CA-A0F2-4861-9726-EBD251F2F549";, 
"DMN_1D502349-17ED-4CF7-9B6C-C107AC85FC2D");
+        assertThat(dmnModel).isNotNull();
+        
assertThat(dmnModel.hasErrors()).as(DMNRuntimeUtil.formatMessages(dmnModel.getMessages())).isFalse();
+        
+        final List<AfterEvaluateConditionalEvent> ifEvents = new ArrayList<>();
+        final List<AfterConditionalEvaluationEvent> thenElseEvents = new 
ArrayList<>();
+        
+        DefaultDMNRuntimeEventListener listener = new 
DefaultDMNRuntimeEventListener() {
+            @Override
+            public void afterEvaluateConditional(AfterEvaluateConditionalEvent 
event) {
+                ifEvents.add(event);
+            }
+            
+            @Override
+            public void 
afterConditionalEvaluation(AfterConditionalEvaluationEvent event) {
+                thenElseEvents.add(event);
+            }
+        };
+        
+        runtime.addListener(listener);
+        
+        try {
+            // Test with positive input (condition true: p-1 > 0)
+            ifEvents.clear();
+            thenElseEvents.clear();
+            DMNContext context = DMNFactory.newContext();
+            context.set("Input", 5);
+            DMNResult results = runtime.evaluateAll(dmnModel, context);
+            
assertThat(results.hasErrors()).as(DMNRuntimeUtil.formatMessages(results.getMessages())).isFalse();
+            
assertThat(results.getDecisionResultByName("D1").getResult()).isEqualTo(new 
BigDecimal("15"));
+            
+            // Verify IF evaluation event was fired (3 times: D1, D2, D3 each 
call Logic IF BKM)
+            assertThat(ifEvents).hasSize(3);
+            AfterEvaluateConditionalEvent ifEvent = ifEvents.get(0);
+            assertThat(ifEvent).isNotNull();
+            assertThat(ifEvent.getEvaluatorResultResult()).isNotNull();
+            
assertThat(ifEvent.getEvaluatorResultResult().getResult()).isEqualTo(true);
+            
assertThat(ifEvent.getExecutedId()).isEqualTo("_63C5E174-D55D-4C52-95A1-8ED3FACF44FA");
+            
+            // Verify THEN branch evaluation event was fired
+            assertThat(thenElseEvents).hasSize(3);
+            AfterConditionalEvaluationEvent thenEvent = thenElseEvents.get(0);
+            assertThat(thenEvent).isNotNull();
+            assertThat(thenEvent.getNodeName()).isEqualTo("Logic IF");
+            assertThat(thenEvent.getDecisionName()).isEqualTo("D1");
+            assertThat(thenEvent.getEvaluatorResultResult()).isNotNull();
+            
assertThat(thenEvent.getEvaluatorResultResult().getResult()).isEqualTo(new 
BigDecimal("5"));
+            
assertThat(thenEvent.getExecutedId()).isEqualTo("_1B74D6B2-C69A-4A50-A94A-DD55CC188EC4");
+            
+            // Test with negative input (condition false: p-1 <= 0)
+            ifEvents.clear();
+            thenElseEvents.clear();
+            context = DMNFactory.newContext();
+            context.set("Input", -3);
+            results = runtime.evaluateAll(dmnModel, context);
+            
assertThat(results.hasErrors()).as(DMNRuntimeUtil.formatMessages(results.getMessages())).isFalse();
+            
assertThat(results.getDecisionResultByName("D1").getResult()).isEqualTo(new 
BigDecimal("9"));
+            
+            // Verify IF evaluation event was fired
+            assertThat(ifEvents).hasSize(3);
+            ifEvent = ifEvents.get(0);
+            assertThat(ifEvent).isNotNull();
+            
assertThat(ifEvent.getEvaluatorResultResult().getResult()).isEqualTo(false);
+            
assertThat(ifEvent.getExecutedId()).isEqualTo("_63C5E174-D55D-4C52-95A1-8ED3FACF44FA");
+            
+            // Verify ELSE branch evaluation event was fired
+            assertThat(thenElseEvents).hasSize(3);
+            AfterConditionalEvaluationEvent elseEvent = thenElseEvents.get(0);
+            assertThat(elseEvent).isNotNull();
+            assertThat(elseEvent.getNodeName()).isEqualTo("Logic IF");
+            assertThat(elseEvent.getDecisionName()).isEqualTo("D1");
+            assertThat(elseEvent.getEvaluatorResultResult()).isNotNull();
+            
assertThat(elseEvent.getEvaluatorResultResult().getResult()).isEqualTo(new 
BigDecimal("3"));
+            
assertThat(elseEvent.getExecutedId()).isEqualTo("_E1106C9B-F0ED-45C8-8A28-A06C54BE652F");
+            
+            // Test with zero input (condition false: 0 <= 0)
+            ifEvents.clear();
+            thenElseEvents.clear();
+            context = DMNFactory.newContext();
+            context.set("Input", 0);
+            results = runtime.evaluateAll(dmnModel, context);
+            
assertThat(results.hasErrors()).as(DMNRuntimeUtil.formatMessages(results.getMessages())).isFalse();
+            
assertThat(results.getDecisionResultByName("D1").getResult()).isEqualTo(new 
BigDecimal("0"));
+            
+            // Verify IF evaluation event was fired
+            assertThat(ifEvents).hasSize(3);
+            ifEvent = ifEvents.get(0);
+            assertThat(ifEvent).isNotNull();
+            
assertThat(ifEvent.getEvaluatorResultResult().getResult()).isEqualTo(false);
+            
assertThat(ifEvent.getExecutedId()).isEqualTo("_63C5E174-D55D-4C52-95A1-8ED3FACF44FA");
 // IF id
+            
+            assertThat(thenElseEvents).hasSize(3);
+            elseEvent = thenElseEvents.get(0);
+            assertThat(elseEvent).isNotNull();
+            assertThat(elseEvent.getNodeName()).isEqualTo("Logic IF");
+            assertThat(elseEvent.getDecisionName()).isEqualTo("D1");
+            assertThat(elseEvent.getEvaluatorResultResult()).isNotNull();
+            
assertThat(elseEvent.getEvaluatorResultResult().getResult()).isEqualTo(new 
BigDecimal("0"));
+            
assertThat(elseEvent.getExecutedId()).isEqualTo("_E1106C9B-F0ED-45C8-8A28-A06C54BE652F");
+            
+        } finally {
+            runtime.removeListener(listener);
+        }
+    }
 }
diff --git 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/impl/DMNRuntimeEventManagerUtilsTest.java
 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/impl/DMNRuntimeEventManagerUtilsTest.java
index 762711f02a..f4962edd0e 100644
--- 
a/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/impl/DMNRuntimeEventManagerUtilsTest.java
+++ 
b/kie-dmn/kie-dmn-core/src/test/java/org/kie/dmn/core/impl/DMNRuntimeEventManagerUtilsTest.java
@@ -18,6 +18,7 @@
  */
 package org.kie.dmn.core.impl;
 
+import java.math.BigDecimal;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -262,4 +263,50 @@ class DMNRuntimeEventManagerUtilsTest {
         mappedThreadValues.forEach((i, threadValue) -> 
assertThat(threadValue.get()).isEqualTo("New Decision " + i));
     }
 
+    @Test
+    void testEvaluateConditionalEvent() {
+        String decisionName = "D1";
+        String ifId = "_63C5E174-D55D-4C52-95A1-8ED3FACF44FA";
+        String thenId = "_1B74D6B2-C69A-4A50-A94A-DD55CC188EC4";
+        Resource resource = 
ResourceFactory.newClassPathResource("valid_models/DMNv1_6/ConditionalIf.dmn");
+        DMNRuntime dmnRuntime = DMNRuntimeBuilder.fromDefaults()
+                .buildConfiguration()
+                .fromResources(Collections.singletonList(resource))
+                .getOrElseThrow(RuntimeException::new);
+        dmnRuntime.addListener(spiedListener);
+        assertThat(dmnRuntime).isNotNull();
+        String nameSpace = 
"https://kie.org/dmn/_2693E3CA-A0F2-4861-9726-EBD251F2F549";;
+
+        final DMNModel dmnModel = dmnRuntime.getModel(nameSpace, 
"DMN_1D502349-17ED-4CF7-9B6C-C107AC85FC2D");
+        assertThat(dmnModel).isNotNull();
+        DMNContext context = DMNFactory.newContext();
+        context.set("Input", 2);
+        DMNResult dmnResult = dmnRuntime.evaluateAll(dmnModel, context);
+        
assertThat(dmnResult.getDecisionResultByName(decisionName)).isNotNull();
+        
assertThat(dmnResult.getDecisionResultByName(decisionName).getResult()).isEqualTo(BigDecimal.valueOf(6));
+
+        ArgumentCaptor<AfterEvaluateConditionalEvent> 
evaluateConditionalEventCaptor = 
ArgumentCaptor.forClass(AfterEvaluateConditionalEvent.class);
+        verify(spiedListener, 
times(3)).afterEvaluateConditional(evaluateConditionalEventCaptor.capture());
+
+        AfterEvaluateConditionalEvent evaluateConditionalEvent = 
evaluateConditionalEventCaptor.getAllValues().get(0);
+
+        assertThat(evaluateConditionalEvent).isNotNull();
+        assertThat(evaluateConditionalEvent.getExecutedId()).isEqualTo(ifId);
+        
assertThat(evaluateConditionalEvent.getEvaluatorResultResult().getResult()).isEqualTo(true);
+
+        ArgumentCaptor<AfterConditionalEvaluationEvent> 
conditionalEvaluationEventCaptor = 
ArgumentCaptor.forClass(AfterConditionalEvaluationEvent.class);
+        verify(spiedListener, 
times(3)).afterConditionalEvaluation(conditionalEvaluationEventCaptor.capture());
+
+        AfterConditionalEvaluationEvent conditionalEvaluationEvent = 
conditionalEvaluationEventCaptor.getAllValues().stream()
+                .filter(event -> decisionName.equals(event.getDecisionName()))
+                .findFirst()
+                .orElseThrow(() -> new IllegalArgumentException("No 
conditional evaluation event found for decision: " + decisionName));
+
+        assertThat(conditionalEvaluationEvent).isNotNull();
+        
assertThat(conditionalEvaluationEvent.getDecisionName()).isEqualTo(decisionName);
+        assertThat(conditionalEvaluationEvent.getNodeName()).isEqualTo("Logic 
IF");
+        
assertThat(conditionalEvaluationEvent.getExecutedId()).isEqualTo(thenId);
+        
assertThat(conditionalEvaluationEvent.getEvaluatorResultResult().getResult()).isEqualTo(BigDecimal.valueOf(2));
+    }
+
 }
\ No newline at end of file
diff --git 
a/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_6/ConditionalIf.dmn
 
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_6/ConditionalIf.dmn
new file mode 100644
index 0000000000..5a0d38b96b
--- /dev/null
+++ 
b/kie-dmn/kie-dmn-test-resources/src/test/resources/valid_models/DMNv1_6/ConditionalIf.dmn
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  -->
+<definitions xmlns="https://www.omg.org/spec/DMN/20240513/MODEL/"; 
expressionLanguage="https://www.omg.org/spec/DMN/20240513/FEEL/"; 
namespace="https://kie.org/dmn/_2693E3CA-A0F2-4861-9726-EBD251F2F549"; 
id="_A87F673B-7FF3-4786-A6CD-C77D745A2F8A" 
name="DMN_1D502349-17ED-4CF7-9B6C-C107AC85FC2D" 
xmlns:dmndi="https://www.omg.org/spec/DMN/20230324/DMNDI/"; 
xmlns:dc="http://www.omg.org/spec/DMN/20180521/DC/"; 
xmlns:di="http://www.omg.org/spec/DMN/20180521/DI/"; 
xmlns:kie="https://kie.org/dmn/extens [...]
+  <decision name="D1" id="_963C762D-55B1-4D5A-ACB3-8A4D2DCAB6A1">
+    <variable name="D1" id="_B12CC89C-0825-46EC-8C35-1E4FB026B916" 
typeRef="number" />
+    <informationRequirement id="_2A1C4FE3-BB75-4305-B7E6-BA155A6523E2">
+      <requiredInput href="#_8FFB5301-0A39-4AF3-94F1-055F08D4A646" />
+    </informationRequirement>
+    <knowledgeRequirement id="_B56F65A9-4E7E-47E2-9B3F-DD6437EB1426">
+      <requiredKnowledge href="#_47997B43-336B-4871-AE1D-B48B8E2792B0" />
+    </knowledgeRequirement>
+    <knowledgeRequirement id="_0F9F164B-6C5F-4D5C-B86F-D45AF3A10112">
+      <requiredKnowledge href="#_70D9D873-7620-41A3-84DF-E2BED8C363B5" />
+    </knowledgeRequirement>
+    <knowledgeRequirement id="_9370DC6A-DF95-4B28-8E30-F71273519301">
+      <requiredKnowledge href="#_ED2BB075-4CBE-4DC1-B111-4670548C77B2" />
+    </knowledgeRequirement>
+    <literalExpression id="_056A3FA6-F491-4B98-9677-C860B000621F" 
typeRef="number" label="D1">
+      <text>Logic DT(Input) + Logic IF(Input) + Logic CTX(Input)</text>
+    </literalExpression>
+  </decision>
+  <decision name="D2" id="_6C213125-1A4E-41AE-A6B8-A6F52C36B2C1">
+    <variable name="D2" id="_149ED3DE-18EE-409A-9479-8C7BF559F0C9" 
typeRef="number" />
+    <informationRequirement id="_84E6F1B3-4533-485B-A39D-CA68FD649386">
+      <requiredInput href="#_8FFB5301-0A39-4AF3-94F1-055F08D4A646" />
+    </informationRequirement>
+    <knowledgeRequirement id="_B9556D7D-325D-46E3-9BC5-2016E6485CC8">
+      <requiredKnowledge href="#_47997B43-336B-4871-AE1D-B48B8E2792B0" />
+    </knowledgeRequirement>
+    <knowledgeRequirement id="_D6102224-0638-41CD-A4EC-8E8B6F948DCD">
+      <requiredKnowledge href="#_70D9D873-7620-41A3-84DF-E2BED8C363B5" />
+    </knowledgeRequirement>
+    <knowledgeRequirement id="_F5906C3E-0F1D-4D6D-A825-1FD053A607A7">
+      <requiredKnowledge href="#_ED2BB075-4CBE-4DC1-B111-4670548C77B2" />
+    </knowledgeRequirement>
+    <literalExpression id="_D2CDB22B-FFB1-4E8D-8322-286E241C99A0" 
typeRef="number" label="D2">
+      <text>Logic DT(Input) + Logic IF(Input) + Logic CTX(Input)</text>
+    </literalExpression>
+  </decision>
+  <decision name="D3" id="_04D9B617-28E2-44B5-9D8E-8E31862BC1CE">
+    <variable name="D3" id="_621FB3EB-E182-426E-8AAA-80828EFA0959" 
typeRef="number" />
+    <informationRequirement id="_255581A2-0AF4-4FCF-9DBA-F4504A697535">
+      <requiredInput href="#_8FFB5301-0A39-4AF3-94F1-055F08D4A646" />
+    </informationRequirement>
+    <knowledgeRequirement id="_3D44B41B-FFDB-4BB3-A08F-90870A831768">
+      <requiredKnowledge href="#_47997B43-336B-4871-AE1D-B48B8E2792B0" />
+    </knowledgeRequirement>
+    <knowledgeRequirement id="_0458A77C-D80E-4967-9D14-BCCE34C4008C">
+      <requiredKnowledge href="#_70D9D873-7620-41A3-84DF-E2BED8C363B5" />
+    </knowledgeRequirement>
+    <knowledgeRequirement id="_693B6D4E-BE14-45AE-BE40-8BD45CE45627">
+      <requiredKnowledge href="#_ED2BB075-4CBE-4DC1-B111-4670548C77B2" />
+    </knowledgeRequirement>
+    <literalExpression id="_519246C8-2676-487C-84B2-2D3CCD524096" 
typeRef="number" label="D3">
+      <text>Logic DT(Input) + Logic IF(Input) + Logic CTX(Input)</text>
+    </literalExpression>
+  </decision>
+  <businessKnowledgeModel name="Logic DT" 
id="_ED2BB075-4CBE-4DC1-B111-4670548C77B2">
+    <variable name="Logic DT" id="_613DA2CA-14FF-4427-96E9-8301766790E5" 
typeRef="number" />
+    <encapsulatedLogic label="Logic DT" typeRef="number" 
id="_54E7E5D4-9CB2-4019-8594-41D74AD259BB" kind="FEEL">
+      <formalParameter id="_3692B13B-E7FE-4981-9E12-8448904F57FA" name="p-1" 
typeRef="number" />
+      <decisionTable id="_BA4487E0-CF00-40FB-93F3-AF220762FE66" 
typeRef="number" hitPolicy="UNIQUE" label="Return">
+        <input id="_E882E0FB-63E0-4F2F-AED8-11730BF5EF82">
+          <inputExpression id="_6BC584F5-65A0-4385-8D30-B4FE55E86DCE" 
typeRef="number">
+            <text>p-1</text>
+          </inputExpression>
+        </input>
+        <output id="_2F3F4B2A-C365-40EA-A1CF-D3BE0046F148" />
+        <annotation name="Annotations" />
+        <rule id="_24230D62-93D3-416F-A5D1-D9782A3D451B">
+          <inputEntry id="_CA27D46A-7C47-467E-B60A-86D4333B926D">
+            <text>&gt; 0</text>
+          </inputEntry>
+          <outputEntry id="_84AE6179-A5C1-473A-B6AB-C771FC21A94F">
+            <text>p-1</text>
+          </outputEntry>
+          <annotationEntry>
+            <text>// Your annotations here</text>
+          </annotationEntry>
+        </rule>
+        <rule id="_CA61F006-53F8-40EC-8964-559E888C646C">
+          <inputEntry id="_10F8214F-5CD3-45CF-822C-A1CC8819D4F5">
+            <text>&lt;= 0</text>
+          </inputEntry>
+          <outputEntry id="_4CDEA6D2-56C0-4C03-A6FA-F19303DCC6F8">
+            <text>-(p-1)</text>
+          </outputEntry>
+          <annotationEntry>
+            <text></text>
+          </annotationEntry>
+        </rule>
+      </decisionTable>
+    </encapsulatedLogic>
+  </businessKnowledgeModel>
+  <businessKnowledgeModel name="Logic IF" 
id="_70D9D873-7620-41A3-84DF-E2BED8C363B5">
+    <variable name="Logic IF" id="_41A7107C-B7AD-4B90-9AD7-3363A1C70256" 
typeRef="number" />
+    <encapsulatedLogic label="Logic IF" typeRef="number" 
id="_5B03D9DC-F0DB-4DDC-90FD-830F685A8864" kind="FEEL">
+      <formalParameter id="_FD9942DB-1616-4142-BA6D-44360651A87A" name="p-1" 
typeRef="number" />
+      <conditional id="_76CFBE20-D376-49D6-A817-1ACF7E6CF381" typeRef="number" 
label="Return">
+        <if id="_63C5E174-D55D-4C52-95A1-8ED3FACF44FA">
+          <literalExpression id="_AE452860-6302-4771-92B3-16DF0CCF2ACE" 
label="Expression Name">
+            <text>p-1 &gt; 0</text>
+          </literalExpression>
+        </if>
+        <then id="_1B74D6B2-C69A-4A50-A94A-DD55CC188EC4">
+          <literalExpression id="_9A56CE74-1F48-4039-BE8F-464362CB4B21" 
label="Expression Name">
+            <text>p-1</text>
+          </literalExpression>
+        </then>
+        <else id="_E1106C9B-F0ED-45C8-8A28-A06C54BE652F">
+          <literalExpression id="_8EA94EC2-9E7D-456F-959E-3DB65AFD8026" 
label="Expression Name">
+            <text>-(p-1)</text>
+          </literalExpression>
+        </else>
+      </conditional>
+    </encapsulatedLogic>
+  </businessKnowledgeModel>
+  <businessKnowledgeModel name="Logic CTX" 
id="_47997B43-336B-4871-AE1D-B48B8E2792B0">
+    <variable name="Logic CTX" id="_86F5B851-F00B-4AC5-AD8A-160BD3877027" 
typeRef="number" />
+    <encapsulatedLogic label="Logic CTX" typeRef="number" 
id="_4DB83999-352B-4C86-B555-269ED5FEFD14" kind="FEEL">
+      <formalParameter id="_9E22F34B-C0A2-48D2-B565-3A681F56812E" name="p-1" 
typeRef="number" />
+      <context id="_39AE8F93-DB18-47AD-9992-1869728931A4" typeRef="number" 
label="Return">
+        <contextEntry id="_8A107908-9A3F-42A6-B1DD-BFF01DD27B86">
+          <variable id="_AEDDC9DA-5CF0-4937-9A24-1199A690650D" name="p-1 f" 
typeRef="number" />
+          <functionDefinition id="_9271B46F-9358-412D-8652-94F4FD367355" 
typeRef="number" kind="FEEL" label="p-1 f">
+            <formalParameter id="_A0DCA073-E0B1-4357-B79D-9A1DAF0199C3" 
name="a" typeRef="number" />
+            <decisionTable id="_31A83A71-346E-4DC3-A1DD-576B8FD5A098" 
typeRef="number" hitPolicy="UNIQUE" label="Return">
+              <input id="_E81654E4-0E51-4CF9-AA2A-B086BB19F4EE">
+                <inputExpression id="_A8DF0512-7896-45A2-B3EB-AEDCB7CE8648" 
typeRef="number">
+                  <text>a</text>
+                </inputExpression>
+              </input>
+              <output id="_73373724-9DB8-4E60-87BE-19682021D688" />
+              <annotation name="Annotations" />
+              <rule id="_E49CC540-0132-4A13-A725-444AC28F017A">
+                <inputEntry id="_C31BA442-ED5C-4D72-AF8D-46006557FDE5">
+                  <text>&gt; 0</text>
+                </inputEntry>
+                <outputEntry id="_2C0B7309-88B2-4601-B77B-C4DF0252B9F6">
+                  <text>a</text>
+                </outputEntry>
+                <annotationEntry>
+                  <text>// Your annotations here</text>
+                </annotationEntry>
+              </rule>
+              <rule id="_489F66A1-5100-40B2-BA64-D2CCF61F7C52">
+                <inputEntry id="_3F02078A-431E-4923-BDF6-849648FDFEE9">
+                  <text>&lt;= 0</text>
+                </inputEntry>
+                <outputEntry id="_13895C05-8065-407F-B6AB-281FA03D9743">
+                  <text>-a</text>
+                </outputEntry>
+                <annotationEntry>
+                  <text></text>
+                </annotationEntry>
+              </rule>
+            </decisionTable>
+          </functionDefinition>
+        </contextEntry>
+        <contextEntry id="_E7C679BF-D358-4BB8-9BE8-8C8BC749BA48">
+          <literalExpression id="_88285B90-E584-4EE7-AF1E-2757CDBFCC80" 
typeRef="number" label="Return">
+            <text>p-1 f(p-1)</text>
+          </literalExpression>
+        </contextEntry>
+      </context>
+    </encapsulatedLogic>
+  </businessKnowledgeModel>
+  <inputData name="Input" id="_8FFB5301-0A39-4AF3-94F1-055F08D4A646">
+    <variable name="Input" id="_E21F9BF2-0D66-49D1-B9BF-FF1156A5402A" 
typeRef="number" />
+  </inputData>
+  <dmndi:DMNDI>
+    <dmndi:DMNDiagram id="_513F732C-BA2B-4859-BB25-DEA14DE438E0" name="Default 
DRD" useAlternativeInputDataShape="false">
+      <di:extension>
+        <kie:ComponentsWidthsExtension>
+          <kie:ComponentWidths 
dmnElementRef="_056A3FA6-F491-4B98-9677-C860B000621F">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_D2CDB22B-FFB1-4E8D-8322-286E241C99A0">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_519246C8-2676-487C-84B2-2D3CCD524096">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_BA4487E0-CF00-40FB-93F3-AF220762FE66">
+            <kie:width>60</kie:width>
+            <kie:width>118</kie:width>
+            <kie:width>118</kie:width>
+            <kie:width>240</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_AE452860-6302-4771-92B3-16DF0CCF2ACE">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_9A56CE74-1F48-4039-BE8F-464362CB4B21">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_8EA94EC2-9E7D-456F-959E-3DB65AFD8026">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_39AE8F93-DB18-47AD-9992-1869728931A4">
+            <kie:width>120</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_88285B90-E584-4EE7-AF1E-2757CDBFCC80">
+            <kie:width>190</kie:width>
+          </kie:ComponentWidths>
+          <kie:ComponentWidths 
dmnElementRef="_31A83A71-346E-4DC3-A1DD-576B8FD5A098">
+            <kie:width>60</kie:width>
+            <kie:width>118</kie:width>
+            <kie:width>118</kie:width>
+            <kie:width>240</kie:width>
+          </kie:ComponentWidths>
+        </kie:ComponentsWidthsExtension>
+      </di:extension>
+      <dmndi:DMNShape id="_24E0E64F-F598-4B47-B406-70F553C25687" 
dmnElementRef="_963C762D-55B1-4D5A-ACB3-8A4D2DCAB6A1" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="500" y="40" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="_3293B037-AEAB-406F-890D-610DEE17AB47" 
dmnElementRef="_6C213125-1A4E-41AE-A6B8-A6F52C36B2C1" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="500" y="160" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="_BD4A547A-DB87-4AD9-BA1D-7916906BB0A3" 
dmnElementRef="_04D9B617-28E2-44B5-9D8E-8E31862BC1CE" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="500" y="280" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="_C98DCCC7-F2B5-47B2-A1F2-405620354BF5" 
dmnElementRef="_8FFB5301-0A39-4AF3-94F1-055F08D4A646" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="280" y="160" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="_8BA40B22-ECEE-4E06-8140-B7B69B955C9C" 
dmnElementRef="_ED2BB075-4CBE-4DC1-B111-4670548C77B2" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="780" y="40" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="_25DEB101-C99F-434C-A649-A5688F678213" 
dmnElementRef="_70D9D873-7620-41A3-84DF-E2BED8C363B5" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="780" y="160" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNShape id="_29EEEFFE-B4B6-49F8-9532-9658C89D7B8D" 
dmnElementRef="_47997B43-336B-4871-AE1D-B48B8E2792B0" isCollapsed="false" 
isListedInputData="false">
+        <dc:Bounds x="780" y="280" width="160" height="80" />
+      </dmndi:DMNShape>
+      <dmndi:DMNEdge id="_0F99A7AE-1D9C-4D26-BB6D-ADA89A34E587" 
dmnElementRef="_2A1C4FE3-BB75-4305-B7E6-BA155A6523E2" 
sourceElement="_C98DCCC7-F2B5-47B2-A1F2-405620354BF5" 
targetElement="_24E0E64F-F598-4B47-B406-70F553C25687">
+        <di:waypoint x="360" y="200" />
+        <di:waypoint x="580" y="80" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_C84BDF88-64D8-4067-BDF2-9854B950C310" 
dmnElementRef="_84E6F1B3-4533-485B-A39D-CA68FD649386" 
sourceElement="_C98DCCC7-F2B5-47B2-A1F2-405620354BF5" 
targetElement="_3293B037-AEAB-406F-890D-610DEE17AB47">
+        <di:waypoint x="360" y="200" />
+        <di:waypoint x="580" y="200" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_7B5D1F18-4EF9-4D6B-B07E-DEA9A0B6D02B" 
dmnElementRef="_255581A2-0AF4-4FCF-9DBA-F4504A697535" 
sourceElement="_C98DCCC7-F2B5-47B2-A1F2-405620354BF5" 
targetElement="_BD4A547A-DB87-4AD9-BA1D-7916906BB0A3">
+        <di:waypoint x="360" y="200" />
+        <di:waypoint x="580" y="320" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_01E8DB33-FB66-40D3-885A-56F54E3A1CD3" 
dmnElementRef="_3D44B41B-FFDB-4BB3-A08F-90870A831768" 
sourceElement="_29EEEFFE-B4B6-49F8-9532-9658C89D7B8D" 
targetElement="_BD4A547A-DB87-4AD9-BA1D-7916906BB0A3">
+        <di:waypoint x="860" y="320" />
+        <di:waypoint x="580" y="320" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_FEEA1EDD-D0EF-4CCB-B3B8-3FE7D7C116FE" 
dmnElementRef="_B9556D7D-325D-46E3-9BC5-2016E6485CC8" 
sourceElement="_29EEEFFE-B4B6-49F8-9532-9658C89D7B8D" 
targetElement="_3293B037-AEAB-406F-890D-610DEE17AB47">
+        <di:waypoint x="860" y="320" />
+        <di:waypoint x="580" y="200" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_9C11CE62-5E86-413F-815D-E4098CA1234A" 
dmnElementRef="_B56F65A9-4E7E-47E2-9B3F-DD6437EB1426" 
sourceElement="_29EEEFFE-B4B6-49F8-9532-9658C89D7B8D" 
targetElement="_24E0E64F-F598-4B47-B406-70F553C25687">
+        <di:waypoint x="860" y="320" />
+        <di:waypoint x="580" y="80" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_01FF9B47-0671-4724-8368-FEE30F905DCB" 
dmnElementRef="_0458A77C-D80E-4967-9D14-BCCE34C4008C" 
sourceElement="_25DEB101-C99F-434C-A649-A5688F678213" 
targetElement="_BD4A547A-DB87-4AD9-BA1D-7916906BB0A3">
+        <di:waypoint x="860" y="200" />
+        <di:waypoint x="580" y="320" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_E918753D-0BCA-461D-BBC3-6D261316978C" 
dmnElementRef="_693B6D4E-BE14-45AE-BE40-8BD45CE45627" 
sourceElement="_8BA40B22-ECEE-4E06-8140-B7B69B955C9C" 
targetElement="_BD4A547A-DB87-4AD9-BA1D-7916906BB0A3">
+        <di:waypoint x="860" y="80" />
+        <di:waypoint x="580" y="320" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_C16284E5-8DF1-49BC-9D93-85538C3D0FC0" 
dmnElementRef="_0F9F164B-6C5F-4D5C-B86F-D45AF3A10112" 
sourceElement="_25DEB101-C99F-434C-A649-A5688F678213" 
targetElement="_24E0E64F-F598-4B47-B406-70F553C25687">
+        <di:waypoint x="860" y="200" />
+        <di:waypoint x="580" y="80" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_2805DFC3-E004-401D-BECD-0430BE10D94E" 
dmnElementRef="_D6102224-0638-41CD-A4EC-8E8B6F948DCD" 
sourceElement="_25DEB101-C99F-434C-A649-A5688F678213" 
targetElement="_3293B037-AEAB-406F-890D-610DEE17AB47">
+        <di:waypoint x="860" y="200" />
+        <di:waypoint x="580" y="200" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_0A2EBE2F-0C80-45F2-9294-F00B73CED441" 
dmnElementRef="_9370DC6A-DF95-4B28-8E30-F71273519301" 
sourceElement="_8BA40B22-ECEE-4E06-8140-B7B69B955C9C" 
targetElement="_24E0E64F-F598-4B47-B406-70F553C25687">
+        <di:waypoint x="860" y="80" />
+        <di:waypoint x="580" y="80" />
+      </dmndi:DMNEdge>
+      <dmndi:DMNEdge id="_2EA04680-C061-4381-A02D-C0B683195CA0" 
dmnElementRef="_F5906C3E-0F1D-4D6D-A825-1FD053A607A7" 
sourceElement="_8BA40B22-ECEE-4E06-8140-B7B69B955C9C" 
targetElement="_3293B037-AEAB-406F-890D-610DEE17AB47">
+        <di:waypoint x="860" y="80" />
+        <di:waypoint x="580" y="200" />
+      </dmndi:DMNEdge>
+    </dmndi:DMNDiagram>
+  </dmndi:DMNDI>
+</definitions>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to