Skip to content

Commit 1abd9bc

Browse files
committed
Merge remote-tracking branch 'origin/main' into submit/add-expression-to-list
# Conflicts: # mdl/grammar/parser/MDLParser.interp # mdl/grammar/parser/mdl_parser.go
2 parents 30726c7 + 34ac3ae commit 1abd9bc

57 files changed

Lines changed: 18277 additions & 15177 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
@@ -744,6 +744,35 @@ retrieve $Items from Module.Entity where Active = true;
744744

745745
**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).
746746

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

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

0 commit comments

Comments
 (0)