Skip to content

[Event Request] Table 5076 "Segment Header" - OnReuseLoggedOnBeforeFindInteractLogEntries #29934

@KlaasKleermaker

Description

@KlaasKleermaker

Why do you need this change?

In 4PS Construct we only take into account interaction log entries of which the contact is not blocked and not "excluded from segment". We can do this by marking the right interaction log entry records and adding InteractionLogEntry.MarkedOnly(true).

Describe the request

Dear ALAppExtensions team,

On behalf of 4PS I would like to request integration event 'OnReuseLoggedOnBeforeFindInteractLogEntries' to be added to procedure ReuseLogged in table 5076 "Segment Header".

    procedure ReuseLogged(LoggedSegEntryNo: Integer)
    var
        LoggedSeg: Record "Logged Segment";
        InteractLogEntry: Record "Interaction Log Entry";
        SegmentLine: Record "Segment Line";
        NextLineNo: Integer;
    begin
        if LoggedSegEntryNo = 0 then begin
            CalcFields("No. of Criteria Actions");
            if "No. of Criteria Actions" <> 0 then
                if not Confirm(
                     Text005, false,
                     "No.", "No. of Criteria Actions", FieldCaption("No. of Criteria Actions"), LoggedSeg.TableCaption())
                then
                    exit;
            if PAGE.RunModal(PAGE::"Logged Segments", LoggedSeg) <> ACTION::LookupOK then
                exit;
        end else
            LoggedSeg.Get(LoggedSegEntryNo);

        SegmentLine.LockTable();
        SegmentLine.SetRange("Segment No.", "No.");
        if SegmentLine.FindLast() then
            NextLineNo := SegmentLine."Line No.";

        Clear(SegCriteriaManagement);
        SegCriteriaManagement.InsertReuseLogged("No.", LoggedSeg."Entry No.");

        InteractLogEntry.SetCurrentKey("Logged Segment Entry No.");
        InteractLogEntry.SetRange("Logged Segment Entry No.", LoggedSeg."Entry No.");
        OnReuseLoggedOnBeforeFindInteractLogEntries(Rec, LoggedSeg, InteractLogEntry); //new
        if InteractLogEntry.Find('-') then
            repeat
                NextLineNo := NextLineNo + 10000;
                InsertSegmentLine(SegmentLine, InteractLogEntry, NextLineNo);
                SegHistMgt.InsertLine("No.", SegmentLine."Contact No.", SegmentLine."Line No.");
            until InteractLogEntry.Next() = 0;

        OnAfterReuseLogged(Rec, LoggedSeg);
    end;

    [IntegrationEvent(false, false)]
    local procedure OnReuseLoggedOnBeforeFindInteractLogEntries(var SegmentHeader: Record "Segment Header"; LoggedSegment: Record "Logged Segment"; var InteractionLogEntry: Record "Interaction Log Entry")
    begin
        //new
    end;

Internal work item: AB#631001

Metadata

Metadata

Assignees

No one assigned

    Labels

    SCMGitHub request for SCM areaevent-requestRequest for adding an event

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions