Skip to content

feat: support legacy microflow call web service statement#334

Open
hjotha wants to merge 2 commits intomendixlabs:mainfrom
hjotha:submit/microflow-call-web-service-statement
Open

feat: support legacy microflow call web service statement#334
hjotha wants to merge 2 commits intomendixlabs:mainfrom
hjotha:submit/microflow-call-web-service-statement

Conversation

@hjotha
Copy link
Copy Markdown
Contributor

@hjotha hjotha commented Apr 27, 2026

Part of #332.

Summary

  • add structured call web service MDL syntax for legacy SOAP Microflows$CallWebServiceAction
  • preserve unsupported SOAP action payloads through a raw base64 BSON escape hatch
  • resolve known imported SOAP service and send/receive mapping IDs to Module.Document names during describe, while keeping raw IDs as fallback
  • add proposal docs, quick-reference entry, doctype example, LSP completions, and skill guidance

Validation

  • make build
  • ./bin/mxcli check mdl-examples/doctype-tests/call_web_service.test.mdl
  • make lint-go
  • make test
  • make test-integration

Symptom: legacy SOAP CallWebServiceAction activities could not be represented as executable MDL, so describe/exec round-trips either dropped the action or had to keep it as an unsupported comment.

Root cause: the microflow AST, grammar, visitor, formatter, graph builder, and MPR parser/writer had no structured representation for Microflows$CallWebServiceAction and no raw escape hatch for version-specific SOAP payload fields.

Fix: add structured call web service syntax, raw base64 BSON preservation, qualified-name resolution for imported SOAP services and send/receive mappings during describe, writer support for structured and raw actions, docs, a doctype example, LSP completions, and microflow skill guidance.

Tests: covered parser/visitor, graph builder, formatter reference resolution and raw fallback, MPR raw BSON preservation, and validated with make build, mxcli check for call_web_service.test.mdl, make lint-go, make test, and make test-integration.
…oject

The unqualified `returns Object` in the original doctype test caused
`entity '.Object' not found` when executed. Adds a synthetic
SampleSOAP.OrderResponse entity and uses it as the return type so the
script runs cleanly against a fresh Mendix project. Drops the
`$Root =` assignment from the raw-base64 case since the encoded BSON
has no OutputVariable.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants