Evento de Desselección de Línea
Los Portales de Negocios pueden activar un evento cuando una línea es deseleccionada en el frontend. Esta acción se envía a Business Central, donde puede ser manejada por un código personalizado para revertir actualizaciones, restablecer valores o realizar otra lógica.
Esta sección proporciona un ejemplo de cómo implementar un código personalizado que se activa cuando una línea es deseleccionada por el usuario.
Ejemplo de Código
En este ejemplo, utilizaremos la tabla de Líneas de Pedido de Venta en un escenario donde deseleccionar una línea activa un evento que puede, por ejemplo, restablecer campos actualizados previamente o revertir cálculos.
La deselección de la línea envía datos a Business Central, donde se procesan en un código de Business Central.
AL
'UNSELECTLINE':
begin
LocalEventXmlElement := XmlElement.Create('EVENT');
LocalRootXmlElement.Add(LocalEventXmlElement);
LocalRootXmlElement.SetAttribute('EVENTTYPE', ParamRecordSIMDPSOL."Sub Function Event");
LocalRootXmlElement.SetAttribute('EVENTVALUE', LocalEventValueText);
LocalRootXmlElement.SetAttribute('EVENTMESSAGE', 'Todas las líneas con la misma cantidad serán seleccionadas.');
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;