Ga naar inhoud

Select Line Event

Business Portals kunnen een gebeurtenis activeren wanneer een regel op de frontend is geselecteerd. Deze selectie wordt naar Business Central gestuurd, waar het kan worden verwerkt door een aangepaste codeunit om acties uit te voeren zoals het herberekenen van waarden of het bijwerken van gerelateerde gegevens.

Deze sectie biedt een voorbeeld van hoe een aangepaste codeunit kan worden geïmplementeerd die wordt geactiveerd wanneer een regel door de gebruiker is geselecteerd.

Code Voorbeeld

In dit voorbeeld zullen we de Sales Order Line-tabel gebruiken in een scenario waarin het selecteren van een regel een gebeurtenis activeert die bijvoorbeeld gerelateerde velden kan bijwerken of validaties kan uitvoeren.

De regelselectie stuurt gegevens naar Business Central, waar het wordt verwerkt in een Business Central codeunit.

AL
'SELECTLINE':
    begin
        LocalEventXmlElement := XmlElement.Create('EVENT');
        LocalRootXmlElement.Add(LocalEventXmlElement);
        LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
        LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
        LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Alle regels met dezelfde hoeveelheid zullen worden geselecteerd.');
        LocalRootXmlElement.SetAttribute('EVENTMESSAGETYPE', 'default');
        LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILE', 'Aangezien dit een meerkeuzeveld is, voer alstublieft een waarde in.');
        LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILETYPE', 'default');

        if Evaluate(LocalRecordId, LocalEventValueText, 9) then
            if LocalRecordRef.Get(LocalRecordId) then begin
                LocalRecordRef.SetTable(LocalRecordSalesLine);
                Local2RecordSalesLine.SetRange("Document Type", LocalRecordSalesLine."Document Type");
                Local2RecordSalesLine.SetRange("Document No.", LocalRecordSalesLine."Document No.");
                Local2RecordSalesLine.SetRange(Quantity, LocalRecordSalesLine.Quantity);
                if Local2RecordSalesLine.FindSet() then
                    repeat
                        LocalInfoXmlElement := XmlElement.Create('INFO');
                        LocalEventXmlElement.Add(LocalInfoXmlElement);
                        LocalInfoXmlElement.SetAttribute('VALUE', Format(Local2RecordSalesLine.RecordId, 0, 9));
                    until Local2RecordSalesLine.Next() = 0;
            end;
    end;