OnAfterGetRecord-Trigger wird nicht ausgeführt [BC19]

28. März 2022 21:16

Ich arbeite an einer eigens erstellten Page (B), welche im OnAfterGetRecord-Trigger globale Variablen befüllt. welche im Repeater dargestellt werden. Diese Page ist als Part in einer anderen Page (A) eingebunden. Über eine Action in Page (A) möchte ich nun die Filterung des Records von Page (B) ändern. Leider habe ich feststellen müssen, dass der OnAfterGetRecord-Trigger nicht ausgeführt wird, d.h., dass das Ändern von SetRange keinen Effekt hat.
Wie bekomme ich es hin, dass das Setzen von SetRange auf einer Page einen Effekt hat?

Mein Code in Page (B):
Code:
    trigger OnAfterGetRecord()
    var
        ItemAttributeValue: Record "Item Attribute Value";
        ItemAttribute: Record "Item Attribute";
    begin
        if ItemAttributeValue.Get(Rec."Item Attribute ID", Rec."Item Attribute Value ID") then begin
            if ItemAttribute.Get(Rec."Item Attribute ID") then begin
                Name := ItemAttribute."Name";
                Value := ItemAttributeValue.Value;
                "Valid Values" := ItemAttributeValue."Valid Values";
            end;
        end;
    end;

    procedure UpdateLineNo(LineNo: Integer)
    var
        MergedCode: Code[20];
        Utilities: Codeunit Utilities;
    begin
        Clear(Rec);
        CurrPage.Update(False);

        MergedCode := Utilities.MergeCodes(HeaderNo, Format(LineNo));
        Rec.SetRange("No.", MergedCode);
        Rec.SetRange("Table ID", Database::"Production BOM Template Line");
        CurrPage.Update(False);
    end;


Mein Code in Page (A):

Code:
    local procedure OnSelectedLineChanged(LineNo: Integer)
    begin
        LinkedFactbox.UpdateLineNo(LineNo);
    end;

Re: OnAfterGetRecord-Trigger wird nicht ausgeführt [BC19]

28. März 2022 21:23

3 spontane Ideen:
Hast du das Property UpdatePropagation korrekt gesetzt?
CurrPage.UPDATE?
ggf. OnAfterGetCurrRecord statt OnAfterGetRecord?

Re: OnAfterGetRecord-Trigger wird nicht ausgeführt [BC19]

29. März 2022 21:43

enh hat geschrieben:3 spontane Ideen:
Hast du das Property UpdatePropagation korrekt gesetzt?
CurrPage.UPDATE?
ggf. OnAfterGetCurrRecord statt OnAfterGetRecord?


Muss UpdatePropagation gesetzt werden? Page (B) ist zwar ein Part von Page (A), aber der OnAfterGetRecord-Trigger und die Funktion UpdateLineNo befinden sich ja beide in Page (B), welche sich doch unabhängig von UpdatePropagation aktualisieren sollte. Page (A) ruft nur die UpdateLineNo Funktion auf.
Bezüglich CurrPage.Update(): Das nutze ich in der Funktion UpdateLineNo bereits, ändert aber nichts.
Zu OnAfterGetCurrRecord: Wird das nicht nur für jeden selektierten Record ausgeführt? Dann könnte ich damit im Gegensatz zu OnAfterGetRecord() ja keine Liste bzw. Repeater befüllen.