Skip to content

CREATE OR MODIFY EXTERNAL ENTITIES FROM does not link action parameter/response entities to OData contract, leaving CE7252/CE7269 unresolvable via CLI #1020

Description

@acarum

Description

When an OData consumed service has actions (bound or unbound) whose parameter and return-type entities were
imported as external entities, those entities are not properly linked to the contract in the MPR. As a result,
mx check reports CE7252 ("parameters for remote action have changed") and CE7269 ("return type for remote
action has changed") on any microflow that calls the action via CALL EXTERNAL ACTION.

Running CREATE OR MODIFY EXTERNAL ENTITIES FROM . INTO ENTITIES (CommandType,
ResponseType, AdditionalArgumentsDefinition) reports success ("3 updated") but does not resolve the issue —
the entities remain unlinked:

SELECT EntityName, UsedByExternalEntity
FROM CATALOG.CONTRACT_ENTITIES
WHERE ServiceQualifiedName = 'CustomModule.App'
AND EntityName IN ('CreateDefinition', 'CreateDefinitionResponse',
'AdditionalArgumentsDefinition');
-- UsedByExternalEntity is empty for all three, even after CREATE OR MODIFY

The only entity correctly linked (UsedByExternalEntity populated) is the main entity set entity
(Definition), which has an EntitySet name in the contract. Action parameter/response entities have no
EntitySet and are never linked.

Steps to reproduce

  1. Import an OData client whose $metadata defines actions with non-trivial return types (e.g.
    CreateDefinition returning CreateDefinitionResponse).
  2. Import the action parameter and response entities via CREATE EXTERNAL ENTITIES FROM … ENTITIES (…).
  3. Create a microflow with CALL EXTERNAL ACTION … (command = $Param, additional = empty).
  4. Run ./mxcli docker check → CE7252 + CE7269 + CE0117.
  5. Run CREATE OR MODIFY EXTERNAL ENTITIES FROM … ENTITIES (…) → "3 updated".
  6. Re-run ./mxcli docker check → same errors unchanged.

Expected behavior

CREATE OR MODIFY EXTERNAL ENTITIES FROM should link action parameter and response entities to their
corresponding contract entries, resolving CE7252/CE7269 without requiring Studio Pro.

Alternatively, mxcli should expose a dedicated command (e.g. UPDATE EXTERNAL ACTION
CustomModule.App.CreateDefinition) that synchronizes the action's parameter and return-type
signature from the cached contract, equivalent to the "Update" right-click resolution in Studio Pro.

Actual behavior

The CE7252/CE7269 errors are not resolvable via any mxcli command. The only resolution requires opening Studio
Pro and manually clicking "Update" on the affected action.

Environment

  • mxcli version: (0.20.0)
  • Mendix version: 11.12.0
  • OData version: OData 4

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions