martes, 5 de agosto de 2014

Protecting a record in ADempiere

Para hacer una pantalla generada por el mismo ADempiere en donde el usuario solamente podrá grabar información pero nunca podrá eliminar. Entonces, primero entramos al PgAdmin y creamos un trigger el cual tendrá la restricción de que si el usuario intenta eliminar el registro seleccionado entonces le mandará un mensaje de error, en una forma rápida y sencilla, ver las siguientes imágenes:









































Aqui tenemos el siguiente trigger que hace posible la restricción, esto a manera de ejemplo:

create trigger proteger_permiso_flujo before delete
on nic_permiso_flujo for each row execute procedure sp_proteger_registro();

create or replace function sp_proteger_registro()
returns trigger
as $$
declare
    error int = 1;
begin
    error = 1 / 0;

    return NEW;
end;
$$ language plpgsql;

Esta única función "sp_proteger_registro()" se podría usar para muchas tablas.

create trigger proteger_tabla1 before delete
on tabla1 for each row execute procedure sp_proteger_registro();

create trigger proteger_tabla2 before delete
on tabla2 for each row execute procedure sp_proteger_registro();

...

create trigger proteger_tablaN before delete
on tablaN for each row execute procedure sp_proteger_registro();



>> Dejar un comentario es una forma de agradecimiento. <<


No hay comentarios:

Publicar un comentario