Lógica y Eventos

Triggers de Tabla

Dificultad: 6/10

Los Triggers (Disparadores) son fragmentos de código AL que se ejecutan automáticamente por la plataforma cuando ciertos *eventos físicos* suceden con los registros de la base de datos.

Eventos de la Tabla

Si escribimos código dentro de ciertas funciones pre-generadas en la raíz del objeto table, nos aseguramos que ese código SIEMPRE se ejecute (a menos que el programador meta un bypass inseguro) sin importar desde qué pantalla ni cómo llegó la orden.

Triggers de Campo (OnValidate)

Puesto que un `OnModify` es general de toda la fila, el trigger más usado en el día a día es el que posee *cada campo* por separado: OnValidate().

Tú teclean en un campo de la pantalla, presionas el *Tabulador* del teclado, e inmediatamente "OnValidate()" salta.

Se usa para calcular campos relacionados en vivo. Ejemplo maestro: El usuario cambia la `Cantidad`, el código `OnValidate()` de la cantidad atrapa un evento que coge el `Precio Unitario` de otro lado, los multiplica e inyecta la respuesta en el `Importe Módificado` de forma automática.

field(5; "Cantidad"; Decimal)
{
    trigger OnValidate()
    begin
        // Si cambias la cantidad, yo me encargo del resto.
        Rec."Importe Total" := Rec."Cantidad" * Rec."Precio Unitario";
    end;
}
← Volver a Teoría