Summary
change $Object; is now handled as a refresh-only change action for #339, but there is a related roundtrip gap for non-empty change actions.
A Studio Pro model can contain a ChangeObjectAction that both changes members and has RefreshInClient = true. Current MDL syntax has no way to express that flag for change $Object (Member = Value);, so a describe/exec roundtrip rewrites such actions with RefreshInClient = false.
Expected behavior
mxcli should be able to preserve RefreshInClient on change-object actions with member assignments.
Actual behavior
The existing MDL form:
change $Object (Name = 'value');
has no refresh modifier, and the builder writes non-empty change actions with RefreshInClient = false.
Possible direction
Add a syntax modifier parallel to commit/rollback, for example:
change $Object (Name = 'value') refresh;
The describer could emit it only when the underlying action has RefreshInClient = true, preserving current output for the default false case.
Relation to #339
#339 fixes the validity issue for empty changes by inferring refresh, because change $Object; would otherwise be rejected by mx check with CE0032. This issue is separate: it concerns preserving an explicit refresh flag on non-empty change actions and likely needs a small MDL language extension.
Summary
change $Object;is now handled as a refresh-only change action for #339, but there is a related roundtrip gap for non-empty change actions.A Studio Pro model can contain a
ChangeObjectActionthat both changes members and hasRefreshInClient = true. Current MDL syntax has no way to express that flag forchange $Object (Member = Value);, so a describe/exec roundtrip rewrites such actions withRefreshInClient = false.Expected behavior
mxcli should be able to preserve
RefreshInClienton change-object actions with member assignments.Actual behavior
The existing MDL form:
has no
refreshmodifier, and the builder writes non-empty change actions withRefreshInClient = false.Possible direction
Add a syntax modifier parallel to commit/rollback, for example:
The describer could emit it only when the underlying action has
RefreshInClient = true, preserving current output for the default false case.Relation to #339
#339 fixes the validity issue for empty changes by inferring refresh, because
change $Object;would otherwise be rejected by mx check with CE0032. This issue is separate: it concerns preserving an explicit refresh flag on non-empty change actions and likely needs a small MDL language extension.