-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Summary
During end-to-end round-trip validation of mxcli MDL capabilities (create → describe → compare), the following issues were discovered.
Test Environment
- Mendix version: 11.6.4
- mxcli: latest
- Project: GenAIDemo (with WorkflowCommons module, workflows, demo users)
Issue 1: CALCULATED attribute lacks microflow binding → CE0026
Steps to reproduce:
CREATE PERSISTENT ENTITY RTTest.CalcEntity (
BaseValue: Integer DEFAULT 100,
Multiplier: Integer DEFAULT 2,
Result: Integer CALCULATED
);Expected: Either syntax to specify the calculation microflow (e.g., CALCULATED BY RTTest.MF_CalcResult), or a clear error at MDL execution time.
Actual: Entity is created successfully, but Studio Pro reports:
CE0026 No microflow selected. Attribute 'RTTest.CalcEntity.Result' Domain model RTTest
The CALCULATED keyword creates a virtual/calculated attribute but provides no way to bind the required calculation microflow, making it unusable without manual Studio Pro intervention.
Suggestion: Add syntax like:
Result: Integer CALCULATED BY RTTest.MF_CalcResultIssue 2: DESCRIBE DEMO USER does not round-trip ENTITY clause
Steps to reproduce:
-- Create with ENTITY clause (works correctly)
CREATE DEMO USER 'demo_tester' PASSWORD 'TestPassword1!' ENTITY Administration.Account (RTTestRole);
-- Read back
DESCRIBE DEMO USER 'demo_tester';Expected output:
CREATE DEMO USER 'demo_tester' PASSWORD '***' ENTITY Administration.Account (RTTestRole);Actual output:
CREATE DEMO USER 'demo_tester' PASSWORD '***' (RTTestRole);The ENTITY Administration.Account clause is accepted during creation but lost on DESCRIBE, breaking round-trip fidelity.
Issue 3: CREATE WORKFLOW not supported
DESCRIBE WORKFLOW outputs a structured representation including USER TASK, PARALLEL SPLIT, DECISION, CALL MICROFLOW, CALL WORKFLOW, WAIT FOR NOTIFICATION, WAIT FOR TIMER, JUMP TO — but there is no corresponding CREATE WORKFLOW command.
Workflows can only be read, not created or modified via MDL.
Full Round-Trip Test Results
Passing
| Feature | Create | Describe | Round-trip |
|---|---|---|---|
| String(length) — 200, 50, 2000, 20 | ✅ | ✅ | ✅ |
| DEFAULT (String, Decimal, Boolean, Integer) | ✅ | ✅ | ✅ (Decimal 0.0 → 0) |
| NOT NULL + ERROR message | ✅ | ✅ | ✅ |
| Empty microflow | ✅ | ✅ | ✅ |
| Microflow with RETRIEVE + RETURN | ✅ | ✅ | ✅ |
| Page (nested LAYOUTGRID/CONTAINER/DYNAMICTEXT) | ✅ | ✅ | ✅ |
| Module Role | ✅ | ✅ | ✅ |
| GRANT entity/microflow/page access | ✅ | ✅ | ✅ |
| GRANT/REVOKE EXECUTE ON WORKFLOW | ✅ | ✅ | ✅ |
| User Role (with System.User) | ✅ | ✅ | ✅ |
| Demo User (basic) | ✅ | ✅ | ✅ |
| Workflow DESCRIBE (read-only) | — | ✅ | — |
| Settings (UserEntity, TaskParallelism) | — | ✅ | unchanged |
Failing / Not Supported
| Feature | Status | Error |
|---|---|---|
| CALCULATED attribute | ❌ Creates but CE0026 in Studio Pro | No microflow binding syntax |
| DEMO USER ENTITY clause | DESCRIBE loses ENTITY info | |
| CREATE WORKFLOW | ❌ Not supported | Parse error |
| ALTER ENTITY | ❌ Not supported | Not in grammar |
Test Scripts
Available at tests/roundtrip-create.mdl, tests/roundtrip-verify.mdl, tests/roundtrip-cleanup.mdl for reproduction.