Skip to content

Commit 7c4d8c3

Browse files
committed
Fix #257: no longer require checks to have a parameters input
Checks with no caller-supplied parameters now omit the tParameters type, parameters inputData element, and parameters key from the OpenAPI spec. Also makes checkResult default to null (not false) when situation fields are absent.
1 parent ce6735e commit 7c4d8c3

24 files changed

Lines changed: 383 additions & 95 deletions

File tree

.claude/commands/new-dmn-check.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ If either is missing, ask the user for:
1717
1. **Check name** — PascalCase, globally unique (e.g. `PersonMinIncome`). Derive the file name by converting to kebab-case (e.g. `person-min-income.dmn`) and the service name by appending `Service` (e.g. `PersonMinIncomeService`).
1818
2. **Category** — existing (`age`, `enrollment`) or a new category name.
1919
3. **Description** — one sentence describing what eligibility condition is checked.
20-
4. **Parameters** beyond `situation` — for each: name, FEEL type (`string`, `number`, `date`, `boolean`), and purpose.
20+
4. **Parameters** beyond `situation` — for each: name, FEEL type (`string`, `number`, `date`, `boolean`), and purpose. If there are none, the `parameters` input will be omitted entirely from the DMN model.
2121
5. **FEEL logic** — either a FEEL expression or a plain-English description. Describe which `situation` fields are used (e.g. `situation.people`, `situation.enrollments`, `situation.simpleChecks.*`).
2222
6. **Does the logic need intermediate values?** — Yes → context-chain pattern; No → simple literal expression pattern.
2323

@@ -51,7 +51,7 @@ If a match is found, warn the user and stop. The name must be globally unique.
5151
- Decision Service name: exactly `{CheckName}Service`.
5252
- Decision Service output type: `BDT.tCheckResponse`.
5353
- The output decision must be named `checkResult` with `typeRef="boolean"`.
54-
- `tParameters` item definition includes all check-specific parameters.
54+
- **Parameters**: if the check needs caller-supplied values, define a `tParameters` item definition and include the `parameters` inputData node, its `dmn:informationRequirement`, and its DMNDI shape/edge. If the check has no parameters, omit all of these entirely — no `tParameters` type, no `parameters` inputData element. This way the generated OpenAPI schema accurately reflects that the endpoint takes only `situation`.
5555
- `tSituation` item definition includes only the fields the check actually reads (keep it minimal — don't copy BDT's full tSituation).
5656
- If a `tSituation` field is itself a complex type (e.g. `simpleChecks`), define a **local** version of that nested type containing only the specific properties this check uses. Reference the local type, not the BDT one. Example: if the check reads only `situation.simpleChecks.ownerOccupant`, define a local `tSimpleChecks` with just `ownerOccupant: boolean`, and use `typeRef="tSimpleChecks"` in `tSituation` (not `BDT.tSimpleChecks`).
5757

@@ -105,6 +105,7 @@ Based on `person-enrolled-in-benefit.dmn`:
105105
locationURI="{Category}.dmn"
106106
importType="http://www.omg.org/spec/DMN/20180521/MODEL/"/>
107107

108+
<!-- OMIT the tParameters block entirely if the check has no parameters -->
108109
<dmn:itemDefinition id="_{TPARAMS_UUID}" name="tParameters" isCollection="false">
109110
<!-- One dmn:itemComponent per parameter -->
110111
<dmn:itemComponent id="_{PARAM1_UUID}" name="{paramName}" isCollection="false">
@@ -125,6 +126,7 @@ Based on `person-enrolled-in-benefit.dmn`:
125126
<dmn:variable id="_{DS_VAR_UUID}" name="{CheckName}Service" typeRef="BDT.tCheckResponse"/>
126127
<dmn:outputDecision href="#{DECISION_UUID}"/>
127128
<dmn:inputData href="#{SITUATION_INPUT_UUID}"/>
129+
<!-- OMIT the next line if the check has no parameters -->
128130
<dmn:inputData href="#{PARAMS_INPUT_UUID}"/>
129131
</dmn:decisionService>
130132

@@ -134,6 +136,7 @@ Based on `person-enrolled-in-benefit.dmn`:
134136
<dmn:informationRequirement id="_{IR1_UUID}">
135137
<dmn:requiredInput href="#{SITUATION_INPUT_UUID}"/>
136138
</dmn:informationRequirement>
139+
<!-- OMIT the next informationRequirement if the check has no parameters -->
137140
<dmn:informationRequirement id="_{IR2_UUID}">
138141
<dmn:requiredInput href="#{PARAMS_INPUT_UUID}"/>
139142
</dmn:informationRequirement>
@@ -146,6 +149,7 @@ Based on `person-enrolled-in-benefit.dmn`:
146149
<dmn:extensionElements/>
147150
<dmn:variable id="_{SITUATION_VAR_UUID}" name="situation" typeRef="tSituation"/>
148151
</dmn:inputData>
152+
<!-- OMIT the next inputData block entirely if the check has no parameters -->
149153
<dmn:inputData id="_{PARAMS_INPUT_UUID}" name="parameters">
150154
<dmn:extensionElements/>
151155
<dmn:variable id="_{PARAMS_VAR_UUID}" name="parameters" typeRef="tParameters"/>
@@ -187,7 +191,8 @@ Based on `person-enrolled-in-benefit.dmn`:
187191
<dmndi:DMNLabel/>
188192
</dmndi:DMNShape>
189193
<!-- Input nodes: 100×50 each, at y=336 (below service box which ends at y=305).
190-
Center them horizontally under the service box. -->
194+
With two inputs: left-align situation at DS_X, right-align parameters at DS_X+DS_WIDTH-100.
195+
With one input (no parameters): center situation at DS_X+(DS_WIDTH-100)/2. -->
191196
<dmndi:DMNShape id="dmnshape-drg-_{SITUATION_INPUT_UUID}" dmnElementRef="_{SITUATION_INPUT_UUID}" isCollapsed="false">
192197
<dmndi:DMNStyle>
193198
<dmndi:FillColor red="255" green="255" blue="255"/>
@@ -197,6 +202,7 @@ Based on `person-enrolled-in-benefit.dmn`:
197202
<dc:Bounds x="{SITUATION_X}" y="336" width="100" height="50"/>
198203
<dmndi:DMNLabel/>
199204
</dmndi:DMNShape>
205+
<!-- OMIT the next DMNShape if the check has no parameters -->
200206
<dmndi:DMNShape id="dmnshape-drg-_{PARAMS_INPUT_UUID}" dmnElementRef="_{PARAMS_INPUT_UUID}" isCollapsed="false">
201207
<dmndi:DMNStyle>
202208
<dmndi:FillColor red="255" green="255" blue="255"/>
@@ -211,6 +217,7 @@ Based on `person-enrolled-in-benefit.dmn`:
211217
<di:waypoint x="{SITUATION_CENTER_X}" y="361"/>
212218
<di:waypoint x="{DECISION_CENTER_X}" y="197"/>
213219
</dmndi:DMNEdge>
220+
<!-- OMIT the next DMNEdge if the check has no parameters -->
214221
<dmndi:DMNEdge id="dmnedge-drg-_{IR2_UUID}-AUTO-TARGET" dmnElementRef="_{IR2_UUID}">
215222
<di:waypoint x="{PARAMS_CENTER_X}" y="361"/>
216223
<di:waypoint x="{DECISION_CENTER_X}" y="197"/>
@@ -226,10 +233,10 @@ Based on `person-enrolled-in-benefit.dmn`:
226233
- `{DS_X_RIGHT}``DS_X + DS_WIDTH`
227234
- `{DECISION_X}``DS_X + (DS_WIDTH - 88) / 2` (horizontally centers the 88px decision inside the service box); y is always **147** — this leaves a 41px gap below the service box top (y=106) so the service name label doesn't overlap the decision node
228235
- `{DECISION_CENTER_X}``DECISION_X + 44`
229-
- `{SITUATION_X}``DS_X` (align with left edge of service box)
230-
- `{PARAMS_X}``DS_X + DS_WIDTH - 100` (align with right edge of service box) or spaced evenly
236+
- `{SITUATION_X}`with parameters: `DS_X` (left-align); without parameters: `DS_X + (DS_WIDTH - 100) / 2` (center under service box)
237+
- `{PARAMS_X}``DS_X + DS_WIDTH - 100` (right-align with service box); omit if no parameters
231238
- `{SITUATION_CENTER_X}``SITUATION_X + 50`
232-
- `{PARAMS_CENTER_X}``PARAMS_X + 50`
239+
- `{PARAMS_CENTER_X}``PARAMS_X + 50`; omit if no parameters
233240

234241
**DMNDI rules** (always enforce):
235242
- Input nodes (`situation`, `parameters`) must be at a higher y-value than the service box (i.e. below it visually). Use y=336 when the service box occupies y=106–305.

library-api/src/main/resources/benefits/pa/phl/homestead-exemption.dmn

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<dmn:knowledgeRequirement id="_B1C4EAD9-E6BA-4799-8385-6319E5B1591C">
4747
<dmn:requiredKnowledge href="https://kie.apache.org/dmn/_3B9E68B5-63FA-437C-AF93-CC12DDD00BC5#_513F29D9-6F29-4B8A-AD8D-F5C339B354DE"/>
4848
</dmn:knowledgeRequirement>
49-
<dmn:knowledgeRequirement id="_BA11966D-CC59-4AF5-9CB6-97FAC7332DDB">
49+
<dmn:knowledgeRequirement id="_605AF34B-0BE8-412B-AE98-3275DC1FB191">
5050
<dmn:requiredKnowledge href="https://kie.apache.org/dmn/_47ECD886-CEBE-47BC-BD4F-06113DCDE5D8#_B514A3B6-6E48-4558-B6AA-CCB4084EA48F"/>
5151
</dmn:knowledgeRequirement>
5252
<dmn:knowledgeRequirement id="_B2C3D4E5-F6A7-8901-BCDE-F12345678901">
@@ -57,7 +57,7 @@
5757
</dmn:knowledgeRequirement>
5858
<dmn:context id="_C480749B-8802-49B1-BD0F-9A7690C75C6A">
5959
<dmn:contextEntry>
60-
<dmn:variable id="_453973A7-AA27-4C4E-9E40-FE1D802F403C" name="NotAlreadyOnHomestead" typeRef="boolean"/>
60+
<dmn:variable id="_BDF053E4-A268-46EF-A240-E0B88FE48922" name="NotAlreadyOnHomestead" typeRef="boolean"/>
6161
<dmn:invocation id="_B005A993-AB91-41AB-8F4E-CCCBB7F85499">
6262
<dmn:literalExpression id="_4932AA87-8913-48E2-A33D-E4C0D5A9EDE3">
6363
<dmn:text>PersonNotEnrolledInBenefit.PersonNotEnrolledInBenefitService</dmn:text>
@@ -72,13 +72,13 @@
7272
<dmn:parameter id="_3687F80D-9B5B-43AB-B39D-B32BD3210E76" name="parameters" typeRef="PersonNotEnrolledInBenefit.tParameters"/>
7373
<dmn:context id="_63E3027C-A3F8-4E92-BC11-BC749F712B1F">
7474
<dmn:contextEntry>
75-
<dmn:variable id="_0FFBA815-724D-4A1D-B0C5-0130536B8CBC" name="personId" typeRef="string"/>
75+
<dmn:variable id="_B830C929-2141-47EB-ABD0-AFB19651DA84" name="personId" typeRef="string"/>
7676
<dmn:literalExpression id="_69711CBE-3EF3-4E55-A76C-98BDBFB0336B">
7777
<dmn:text>situation.primaryPersonId</dmn:text>
7878
</dmn:literalExpression>
7979
</dmn:contextEntry>
8080
<dmn:contextEntry>
81-
<dmn:variable id="_94940DD0-2617-467C-9CD0-1605729E9C41" name="benefit" typeRef="string"/>
81+
<dmn:variable id="_2C024E8A-58CF-4C7A-889F-FCBE6F4CBA2D" name="benefit" typeRef="string"/>
8282
<dmn:literalExpression id="_8BFE79E2-52B9-45D0-B328-D6914079DBD5">
8383
<dmn:text>"PhlHomesteadExemption"</dmn:text>
8484
</dmn:literalExpression>
@@ -102,7 +102,7 @@
102102
</dmn:invocation>
103103
</dmn:contextEntry>
104104
<dmn:contextEntry>
105-
<dmn:variable id="_065CDEEB-6E4A-4437-AF05-F809A34055AF" name="OwnerOccupant" typeRef="boolean"/>
105+
<dmn:variable id="_4B90B7D6-9E92-4712-B592-6A919939322D" name="OwnerOccupant" typeRef="boolean"/>
106106
<dmn:invocation id="_085D4683-3951-40F5-B01C-0770FCE4348D">
107107
<dmn:literalExpression id="_8D048B37-1A8A-4110-AD7E-D6711EF7DA9D">
108108
<dmn:text>OwnerOccupant.OwnerOccupantService</dmn:text>
@@ -113,10 +113,6 @@
113113
<dmn:text>situation</dmn:text>
114114
</dmn:literalExpression>
115115
</dmn:binding>
116-
<dmn:binding>
117-
<dmn:parameter id="_0FC17325-65FD-4FB2-80EC-49A6386C4A4F" name="parameters" typeRef="OwnerOccupant.tParameters"/>
118-
<dmn:context id="_9C18DB48-93E9-4EF9-9221-702310CED586"/>
119-
</dmn:binding>
120116
</dmn:invocation>
121117
</dmn:contextEntry>
122118
<dmn:contextEntry>

library-api/src/main/resources/checks/age/person-max-age.dmn

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,21 +51,24 @@
5151
</dmn:knowledgeRequirement>
5252
<dmn:context id="_C560A975-EACF-4A78-BF08-B4FBFEA471F1">
5353
<dmn:contextEntry>
54-
<dmn:variable id="_B735F297-2C49-4509-B412-5FED1DF65560" name="dateOfBirth" typeRef="boolean"/>
54+
<dmn:variable id="_532E57ED-E10E-4BC6-84D9-F84A6C8EA69B" name="dateOfBirth" typeRef="date"/>
5555
<dmn:literalExpression id="_CB89C8C7-F4D0-4877-9B6A-8DFDFA996508">
5656
<dmn:text>situation.people[id = parameters.personId].dateOfBirth[1]</dmn:text>
5757
</dmn:literalExpression>
5858
</dmn:contextEntry>
5959
<dmn:contextEntry>
60-
<dmn:variable id="_4C114FA3-6647-4F5F-8974-69B3F3497E1A" name="age" typeRef="boolean"/>
60+
<dmn:variable id="_26B7AA40-8BF7-441E-9A12-D28B8690773E" name="age" typeRef="number"/>
6161
<dmn:literalExpression id="_E266DABA-8F13-4B06-858E-E18C9D43882B">
6262
<dmn:text>Age.as of date(dateOfBirth, parameters.asOfDate)</dmn:text>
6363
</dmn:literalExpression>
6464
</dmn:contextEntry>
6565
<dmn:contextEntry>
66-
<dmn:variable id="_33A0AEB7-F0A7-4144-A9DE-594402406832" name="result" typeRef="boolean"/>
66+
<dmn:variable id="_5B0AF08F-05A6-4630-83A0-34261B37CD68" name="result" typeRef="boolean"/>
6767
<dmn:literalExpression id="_C9DD224E-A946-4361-88CE-986A1502E34B">
68-
<dmn:text>age &lt;= parameters.maxAge</dmn:text>
68+
<dmn:text>if dateOfBirth != null then
69+
age in [0..parameters.maxAge]
70+
else
71+
null</dmn:text>
6972
</dmn:literalExpression>
7073
</dmn:contextEntry>
7174
<dmn:contextEntry>

library-api/src/main/resources/checks/age/person-min-age.dmn

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,24 @@
5252
</dmn:knowledgeRequirement>
5353
<dmn:context id="_B499A169-67C3-4405-95A2-F5405AF19DC9">
5454
<dmn:contextEntry>
55-
<dmn:variable id="_B49B8F85-5828-4851-B590-50F227A76944" name="dateOfBirth" typeRef="date"/>
55+
<dmn:variable id="_1C3C9296-B360-4F95-BC57-6C16D0EE4695" name="dateOfBirth" typeRef="date"/>
5656
<dmn:literalExpression id="_4C11ABE5-B19B-4C63-B46B-755FF3A6FACC">
5757
<dmn:text>situation.people[id = parameters.personId].dateOfBirth[1]</dmn:text>
5858
</dmn:literalExpression>
5959
</dmn:contextEntry>
6060
<dmn:contextEntry>
61-
<dmn:variable id="_7AB98FB9-B5F2-41C9-8C46-B3B627AD3A25" name="age" typeRef="number"/>
61+
<dmn:variable id="_6EEADEA5-A301-40D0-A8CF-DD460E68B0A6" name="age" typeRef="number"/>
6262
<dmn:literalExpression id="_0E389038-35B8-42FF-8FAD-4E26290F0B80">
6363
<dmn:text>Age.as of date(dateOfBirth, parameters.asOfDate)</dmn:text>
6464
</dmn:literalExpression>
6565
</dmn:contextEntry>
6666
<dmn:contextEntry>
67-
<dmn:variable id="_B368ED41-4240-44F1-97CE-8A885502D49C" name="result" typeRef="boolean"/>
67+
<dmn:variable id="_FCE71E36-DD67-4525-BFD3-3AA3FCC3E294" name="result" typeRef="boolean"/>
6868
<dmn:literalExpression id="_0E389038-35B8-42FF-8FAD-4E26290F0B81">
69-
<dmn:text>age &gt;= parameters.minAge</dmn:text>
69+
<dmn:text>if dateOfBirth != null then
70+
age &gt;= parameters.minAge
71+
else
72+
null</dmn:text>
7073
</dmn:literalExpression>
7174
</dmn:contextEntry>
7275
<dmn:contextEntry>

library-api/src/main/resources/checks/age/someone-min-age.dmn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
<dmn:contextEntry>
6767
<dmn:variable id="_146B39B9-D9C7-4B49-B3DC-FEBF2EAB3F73" name="result" typeRef="boolean"/>
6868
<dmn:literalExpression id="_07F575A5-F4AD-42CF-B384-5CC97169FC27">
69-
<dmn:text>count(ages[item &gt;= parameters.minAge]) &gt; 0</dmn:text>
69+
<dmn:text>if DOBs = null or count(DOBs) = 0 then null else count(ages[item &gt;= parameters.minAge]) &gt; 0</dmn:text>
7070
</dmn:literalExpression>
7171
</dmn:contextEntry>
7272
<dmn:contextEntry>

library-api/src/main/resources/checks/enrollment/person-enrolled-in-benefit.dmn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
<dmn:requiredInput href="#_222EBF53-16BF-4A13-A424-0AD32C90100D"/>
3535
</dmn:informationRequirement>
3636
<dmn:literalExpression id="_EC3D9380-90FD-4FE1-9640-F713DE0BD846">
37-
<dmn:text>if situation.enrollments != null and parameters.personId != null and parameters.benefit != null then
37+
<dmn:text>if situation.enrollments != null and count(situation.enrollments) &gt; 0 and parameters.personId != null and parameters.benefit != null then
3838
some enrollment in situation.enrollments satisfies enrollment.personId = parameters.personId and enrollment.benefit = parameters.benefit
3939
else
4040
null</dmn:text>

library-api/src/main/resources/checks/residence/lives-in-philadelphia-pa.dmn

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
<dmn:extensionElements/>
55
<dmn:import id="_39C3A2AE-B89A-4B51-94B6-15C15527E6BF" name="BDT" namespace="https://kie.apache.org/dmn/_1B91A885-130A-4E0B-A762-E12AA6DD5C79" locationURI="../BDT.dmn" importType="http://www.omg.org/spec/DMN/20180521/MODEL/"/>
66
<dmn:import id="_5AD1E355-DDBD-4EE6-AA69-F0447225DA26" name="Residence" namespace="https://kie.apache.org/dmn/_C9F91EE8-9F17-4867-9638-912AC7DB68F1" locationURI="Residence.dmn" importType="http://www.omg.org/spec/DMN/20180521/MODEL/"/>
7-
<dmn:itemDefinition id="_65708488-8C17-40D4-A5C4-6625A67360D4" name="tParameters" isCollection="false"/>
87
<dmn:itemDefinition id="_1B7A8B99-9559-4516-8E60-58F134042423" name="tSimpleChecks" isCollection="false">
98
<dmn:itemComponent id="_340F491B-697C-4F85-98E9-1A46B2951D43" name="livesInPhiladelphiaPa" isCollection="false">
109
<dmn:typeRef>boolean</dmn:typeRef>
@@ -20,17 +19,13 @@
2019
<dmn:variable id="_27E0240F-F00A-4ABA-AB66-8CCACD399E3F" name="LivesInPhiladelphiaPaService" typeRef="BDT.tCheckResponse"/>
2120
<dmn:outputDecision href="#_92328A77-8FE6-456E-BB05-00251028CFA9"/>
2221
<dmn:inputData href="#_BEB5EAD3-1710-4CC3-9266-EFF3BEAF4B72"/>
23-
<dmn:inputData href="#_03A41C51-453D-4943-BAA6-BE346057CC7D"/>
2422
</dmn:decisionService>
2523
<dmn:decision id="_92328A77-8FE6-456E-BB05-00251028CFA9" name="checkResult">
2624
<dmn:extensionElements/>
2725
<dmn:variable id="_B83011EF-4CF0-4CD0-B4FE-37E249E3E15A" name="checkResult" typeRef="boolean"/>
2826
<dmn:informationRequirement id="_83D9FE3D-8880-4908-B95B-B7ED92FDF52F">
2927
<dmn:requiredInput href="#_BEB5EAD3-1710-4CC3-9266-EFF3BEAF4B72"/>
3028
</dmn:informationRequirement>
31-
<dmn:informationRequirement id="_1F126E0B-D50B-4A94-930B-6C85758F070A">
32-
<dmn:requiredInput href="#_03A41C51-453D-4943-BAA6-BE346057CC7D"/>
33-
</dmn:informationRequirement>
3429
<dmn:literalExpression id="_B1800510-05BC-496E-B675-2A7266A59140">
3530
<dmn:text>if situation.simpleChecks != null and situation.simpleChecks.livesInPhiladelphiaPa != null then
3631
situation.simpleChecks.livesInPhiladelphiaPa = true
@@ -42,10 +37,6 @@ else
4237
<dmn:extensionElements/>
4338
<dmn:variable id="_A618B149-AF6B-4F3F-93BA-4E22FE5AFB0C" name="situation" typeRef="tSituation"/>
4439
</dmn:inputData>
45-
<dmn:inputData id="_03A41C51-453D-4943-BAA6-BE346057CC7D" name="parameters">
46-
<dmn:extensionElements/>
47-
<dmn:variable id="_7D8BA737-885E-4342-91A4-2B5B65F8AB1C" name="parameters" typeRef="tParameters"/>
48-
</dmn:inputData>
4940
<dmndi:DMNDI>
5041
<dmndi:DMNDiagram id="_19B53DE3-CDF6-47BB-B67D-31DADD153431" name="DRG">
5142
<di:extension>
@@ -79,32 +70,19 @@ else
7970
<dc:Bounds x="266" y="147" width="88" height="50"/>
8071
<dmndi:DMNLabel/>
8172
</dmndi:DMNShape>
82-
<!-- Input data nodes: below the decision service box -->
73+
<!-- situation input: below the service box, centered -->
8374
<dmndi:DMNShape id="dmnshape-drg-_BEB5EAD3-1710-4CC3-9266-EFF3BEAF4B72" dmnElementRef="_BEB5EAD3-1710-4CC3-9266-EFF3BEAF4B72" isCollapsed="false">
8475
<dmndi:DMNStyle>
8576
<dmndi:FillColor red="255" green="255" blue="255"/>
8677
<dmndi:StrokeColor red="0" green="0" blue="0"/>
8778
<dmndi:FontColor red="0" green="0" blue="0"/>
8879
</dmndi:DMNStyle>
89-
<dc:Bounds x="120" y="336" width="100" height="50"/>
90-
<dmndi:DMNLabel/>
91-
</dmndi:DMNShape>
92-
<dmndi:DMNShape id="dmnshape-drg-_03A41C51-453D-4943-BAA6-BE346057CC7D" dmnElementRef="_03A41C51-453D-4943-BAA6-BE346057CC7D" isCollapsed="false">
93-
<dmndi:DMNStyle>
94-
<dmndi:FillColor red="255" green="255" blue="255"/>
95-
<dmndi:StrokeColor red="0" green="0" blue="0"/>
96-
<dmndi:FontColor red="0" green="0" blue="0"/>
97-
</dmndi:DMNStyle>
98-
<dc:Bounds x="400" y="336" width="100" height="50"/>
80+
<dc:Bounds x="260" y="336" width="100" height="50"/>
9981
<dmndi:DMNLabel/>
10082
</dmndi:DMNShape>
101-
<!-- Edges: from input center to bottom-center of checkResult -->
83+
<!-- Edge: from situation center to bottom-center of checkResult -->
10284
<dmndi:DMNEdge id="dmnedge-drg-_83D9FE3D-8880-4908-B95B-B7ED92FDF52F-AUTO-TARGET" dmnElementRef="_83D9FE3D-8880-4908-B95B-B7ED92FDF52F">
103-
<di:waypoint x="170" y="361"/>
104-
<di:waypoint x="310" y="197"/>
105-
</dmndi:DMNEdge>
106-
<dmndi:DMNEdge id="dmnedge-drg-_1F126E0B-D50B-4A94-930B-6C85758F070A-AUTO-TARGET" dmnElementRef="_1F126E0B-D50B-4A94-930B-6C85758F070A">
107-
<di:waypoint x="450" y="361"/>
85+
<di:waypoint x="310" y="361"/>
10886
<di:waypoint x="310" y="197"/>
10987
</dmndi:DMNEdge>
11088
</dmndi:DMNDiagram>

0 commit comments

Comments
 (0)