Skip to content

Commit 38b9eee

Browse files
committed
Merge remote-tracking branch 'origin/main' into submit/microflow-inheritance-split-cast
# Conflicts: # mdl/grammar/parser/MDLParser.interp # mdl/grammar/parser/mdl_parser.go
2 parents de87f7f + 34ac3ae commit 38b9eee

57 files changed

Lines changed: 18340 additions & 15241 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/skills/mendix/java-actions.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ public IMendixObject executeAction() throws Exception
123123
| `Core.delete(context, object)` | Delete object |
124124
| `Core.rollback(context, object)` | Discard uncommitted changes |
125125
| `Core.retrieveId(context, id)` | Retrieve by GUID |
126-
| `Core.retrieveXPathQuery(context, xpath)` | Query with XPath |
126+
| `Core.createXPathQuery(xpath).execute(context)` | Query with XPath |
127127
| `Core.microflowCall(name).execute(context)` | Call microflow |
128128

129129
### Reading and Writing Attributes
@@ -146,8 +146,8 @@ order.setValue(context, "ProcessedDate", new java.util.Date());
146146

147147
```java
148148
// set association (reference)
149-
IMendixObject customer = Core.retrieveXPathQuery(context,
150-
"//Sales.Customer[CustomerCode = 'CUST001']").get(0);
149+
IMendixObject customer = Core.createXPathQuery("//Sales.Customer[CustomerCode = 'CUST001']")
150+
.execute(context).get(0);
151151
order.setValue(context, "Sales.Order_Customer", customer.getId());
152152

153153
// get associated object
@@ -162,8 +162,8 @@ if (customerId != null) {
162162

163163
```java
164164
// retrieve list
165-
list<IMendixObject> orders = Core.retrieveXPathQuery(context,
166-
"//Sales.Order[status = 'Pending']");
165+
list<IMendixObject> orders = Core.createXPathQuery("//Sales.Order[status = 'Pending']")
166+
.execute(context);
167167

168168
// Process list
169169
java.math.BigDecimal total = java.math.BigDecimal.ZERO;
@@ -1068,7 +1068,7 @@ int offset = 0;
10681068
int batchSize = 1000;
10691069
list<IMendixObject> batch;
10701070
do {
1071-
batch = Core.retrieveXPathQuery(context, xpath, batchSize, offset, null);
1071+
batch = Core.createXPathQuery(xpath).setAmount(batchSize).setOffset(offset).execute(context);
10721072
// Process batch
10731073
offset += batchSize;
10741074
} while (batch.size() == batchSize);
@@ -1187,7 +1187,7 @@ Core.commit(context, obj);
11871187
Core.delete(context, obj);
11881188

11891189
// query
1190-
list<IMendixObject> results = Core.retrieveXPathQuery(context, "//Module.Entity[attr = 'value']");
1190+
list<IMendixObject> results = Core.createXPathQuery("//Module.Entity[attr = 'value']").execute(context);
11911191

11921192
// log
11931193
Core.getLogger("ModuleName").info("message");

.claude/skills/mendix/write-microflows.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,35 @@ retrieve $Items from Module.Entity where Active = true;
749749

750750
**Note**: `returns type as $Var` in the microflow signature does NOT create an activity variable — it only names the return value. So `$Var = call java action ...` after `returns as $Var` is fine (one creation).
751751

752+
## Legacy SOAP Web Service Calls
753+
754+
`call web service` preserves legacy Mendix SOAP activities. Prefer REST clients
755+
for new integrations; this syntax exists mainly so existing projects can
756+
round-trip without dropping SOAP actions.
757+
758+
```mdl
759+
-- Structured form. Resolved SOAP references use normal qualified names.
760+
$Root = call web service SampleSOAP.OrderService
761+
operation FetchSampleItems
762+
send mapping SampleSOAP.OrderRequest
763+
receive mapping SampleSOAP.OrderResponse
764+
timeout 30
765+
on error rollback;
766+
767+
-- Quoted raw IDs are accepted when old project references are dangling or unavailable.
768+
$Root = call web service 'sample-service-id'
769+
operation FetchSampleItems
770+
send mapping 'sample-send-mapping-id'
771+
receive mapping 'sample-receive-mapping-id';
772+
773+
-- Raw escape hatch emitted for unsupported SOAP fields.
774+
$Root = call web service raw 'AQID';
775+
```
776+
777+
**Design note:** the raw payload is base64-encoded BSON for the complete action
778+
and is authoritative on re-exec. Treat this as round-trip support, not a
779+
recommended authoring format for new integrations.
780+
752781
## REST Service Calls
753782

754783
MDL supports two patterns for calling REST APIs from microflows:

0 commit comments

Comments
 (0)