Sélectionner l'événement de ligne
Les Portails d'Affaires peuvent déclencher un événement lorsqu'une ligne est sélectionnée sur le frontend. Cette sélection est envoyée à Business Central, où elle peut être traitée par une codeunit personnalisée pour effectuer des actions telles que le recalcul des valeurs ou la mise à jour des données associées.
Cette section fournit un exemple de la façon d'implémenter une codeunit personnalisée qui est déclenchée lorsqu'une ligne est sélectionnée par l'utilisateur.
Exemple de Code
Dans cet exemple, nous utiliserons la table des Lignes de Commande de Vente dans un scénario où la sélection d'une ligne déclenche un événement qui peut, par exemple, mettre à jour des champs associés ou effectuer des validations.
La sélection de ligne envoie des données à Business Central, où elles sont traitées dans une codeunit de Business Central.
'SELECTLINE':
begin
LocalEventXmlElement := XmlElement.Create('EVENT');
LocalRootXmlElement.Add(LocalEventXmlElement);
LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Toutes les lignes avec la même quantité seront sélectionnées.');
LocalRootXmlElement.SetAttribute('EVENTMESSAGETYPE', 'default');
LocalRootXmlElement.SetAttribute('EVENTMESSAGEMOBILE', 'Puisque ceci est un champ de sélection multiple, veuillez entrer une valeur.');
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;