Ga naar inhoud

Deselecteer Lijn Evenement

Business Portals kunnen een evenement triggeren wanneer een lijn op de frontend wordt gedeselecteerd. Deze actie wordt naar Business Central gestuurd, waar het kan worden afgehandeld door een aangepaste codeunit om updates terug te draaien, waarden te resetten of andere logica uit te voeren.

Deze sectie biedt een voorbeeld van hoe een aangepaste codeunit kan worden geïmplementeerd die wordt getriggerd wanneer een lijn door de gebruiker wordt gedeselecteerd.

Code Voorbeeld

In dit voorbeeld zullen we de Verkooporderlijn-tabel gebruiken in een scenario waarin het deselecteren van een lijn een evenement triggert dat bijvoorbeeld eerder bijgewerkte velden kan resetten of berekeningen kan terugdraaien.

De deselectie van de lijn stuurt gegevens naar Business Central, waar het wordt verwerkt in een Business Central codeunit.

AL
'UNSELECTLINE':
    begin
        LocalEventXmlElement := XmlElement.Create('EVENT');
        LocalRootXmlElement.Add(LocalEventXmlElement);
        LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
        LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
        LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Alle lijnen met dezelfde hoeveelheid zullen worden geselecteerd.');
        LocalRootXmlElement.SetAttribute('EVENTMESSAGETYPE', 'default');
        LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILE', '');
        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;