-
Notifications
You must be signed in to change notification settings - Fork 692
[Publisher] Transformation Rule Card: extensible “Update result” transform #29882
Description
Why do you need this change?
Partners who need to run extra logic when the user runs a test transform (for example persisting the test text via a table extension) currently cannot hook the built-in Test group on page Transformation Rule Card (1238). The drill-down on the update control runs closed logic inside the base page, and TestText / ResultText are not available to page extensions in a supported way.
The practical workaround is to hide the standard Test group and re-implement it with duplicate fields and page variables, which duplicates UI, captions, tooltips, and behaviorÔÇöand risks drifting from the base app when Microsoft changes the page.
We need a first-class extension point so we can keep the standard group and only add behavior (e.g. after TransformText), without cloning the layout.
Describe the request
Describe
Current behavior
On page Transformation Rule Card (1238), the Test group contains test input, result output, and an update control (drill-down) that executes the transform flow.
That flow and page state are not extensible enough for partner scenarios:
- The update/drill-down logic is not surfaced through an extensibility hook.
Because of this, partners that need to add post-transform behavior (for example logging test text) must hide the standard Test group and duplicate it in a page extension, which is brittle and hard to maintain.
Requested changes
-
Make update/transform flow extensible
- Move the logic currently executed from the update control drill-down into a dedicated page procedure, for example:
local procedure UpdateTransformationTestResult()
- Publish a new event after the base transform logic, for example:
OnAfterUpdateTransformationTestResult(var TransformationRule: Record "Transformation Rule"; TestText: Text)
- Move the logic currently executed from the update control drill-down into a dedicated page procedure, for example:
-
Outcome expected
- Partners can keep the standard Test group visible.
- No need to clone base UI just to add logic after running a test transform.
- Reduced upgrade risk and better maintainability.
Suggested event name
OnAfterUpdateTransformationTestResult
Publisher example (base app)
local procedure UpdateTransformationTestResult()
begin
ResultText := Rec.TransformText(TestText);
OnAfterUpdateTransformationTestResult(Rec, TestText);
end;
[IntegrationEvent(false, false)]
local procedure OnAfterUpdateTransformationTestResult(var TransformationRule: Record "Transformation Rule"; TestText: Text)
begin
end;Example partner scenario
After user clicks update in the Test group:
- Base app computes ResultText.
- Extension runs extra logic (e.g. TransformationRule.AddLog(TestText)) via OnAfterUpdateTransformationTestResult.
- UI remains the standard Microsoft UI (no duplicated Test group).
Internal work item: [AB#629744](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/629744)