Skip to content

[Protected vars / Publisher] Transformation Rule Card: protected test fields + extensible “Update result” transform #29876

@fvet

Description

@fvet

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:

  • TestText / ResultText are not exposed for reuse by page extensions.
  • 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

  1. Expose test variables as protected

    • In Transformation Rule Card (1238), expose TestText and ResultText as protected (and related members if needed).
    • This allows page extensions to interact with the same page state without recreating duplicate variables/UI.
  2. 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)
  3. 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).
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions