Skip to content

[Event Request] Reports 5196, 5197 "Remove Contacts - Refine", "Remove Contacts - Reduse" OnPreReportOnBeforeRunReduceRefineSegment #29897

@janpopr

Description

@janpopr

Why do you need this change?

Extend OnPreReportOnBeforeRunReduceRefineSegment event in Report to support passing sender and enable custom dataitems filtering

We would like to request an extension of the existing integration events OnPreReportOnBeforeRunReduceRefineSegment in the reports:

Remove Contacts - Reduce
Remove Contacts - Refine

Currently, these reports are used only to define filters, which are then passed to the shared processing report Remove Contacts, where the actual logic is executed.

However, the current event signature does not allow passing filters from newly added custom dataitems. This makes it impossible to extend the reports in a way that influences the segment contact selection logic.

Without extending the event:

There is no way to pass filters from additional dataitems to the Remove Contacts report
The current event design is not usable for multi-app extensibility scenarios

Specifically:
When multiple extensions (apps) need to contribute their own filtering logic, there is no clean or scalable way to combine these filters and pass them into the processing report.

This effectively prevents independent apps from extending the segmentation logic in a composable way.

Describe the request

We propose extending the existing events to:

Pass the sender (report instance)
Allow full control over the ReduceRefineSegment report instance

Suggested updated event signature:

// Existing code from report 5196 "Remove Contacts - Refine" line 172
[IntegrationEvent(true, false)]
local procedure OnPreReportOnBeforeRunReduceRefineSegment(
var ReduceRefineSegment: Report "Remove Contacts";
var IsHandled: Boolean)
begin
end;

// Existing code from report 5197 "Remove Contacts - Reduce" line 157
[IntegrationEvent(true, false)]
local procedure OnPreReportOnBeforeRunReduceRefineSegment(
var ReduceRefineSegment: Report "Remove Contacts";
var IsHandled: Boolean)
begin
end;

Additionally, access to the sender (current report instance) should be provided to allow retrieval of filters from custom dataitems.

Benefits
Enables extending reports with additional dataitems
Allows passing custom filters into the processing report
Improves flexibility of segment generation logic

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