Necesito implementar un procedimiento de validación "Antes de Guardar" CONTRATACION, y que no permita se guarde dicha solicitud si no cumple con las validaciones correspondientes. ¿Que estructura debe tener dicho procedimiento y que consideraciones hay que tener? Elabore un procedimiento que recibe "@codigo", pero al momento de buscar la información a través de dicho código en contrataciones aun no existe dicho registro. Que puedo hacer para consultar la información que se ha ingresado en las pantallas de contratación, antes de guardar. |
El procedimiento antes de guardar se llama luego de salvar el registro en la base de datos, pero antes de dar "Commit" sobre la transacción que incluye el guardado propiamente de la entidad y la ejecución de este procedimiento. Por lo tanto el registro ya existe en la base cuando se llama el procedimiento. ¿Cuándo ejecuta el procedimiento? La pantalla desde la cual se ejecutó la acción debe ser aquella que está configurada en la entidad o en alguna de las entidades de la que depende. La pantalla se identifica por el campo Controller (ubicado en la información avanzada). Las dependencias de las entidades se pueden ver en el treeview de “¿Auditoría Activa?” de la configuración de Entidades ¿Cuál procedimiento se ejecuta? El procedimiento almacenado que se ejecuta siempre será el más específico, esto quiere decir que, aunque la pantalla de donde proviene la acción sea la de una entidad superior en la jerarquía (Ej. Expediente) y ésta tenga configurado un procedimiento a ejecutarse, si la entidad hija es la que está siendo modificada (Ej. Dirección), será éste el que se ejecutara. Por lo tanto hay que tener en cuenta: Cuando la entidad no tenga configurado un procedimiento almacenado, verificara si alguno de las entidades de las cuales depende sí lo tiene; y en caso de encontrarlo lo ejecutará. La verificación siempre se realizara de abajo hacia arriba en la jerarquía de entidades, lo que quiere decir que si se modifica una entidad padre (Ej. Expediente) ésta NO verificara las entidades hijas (Ej. Dirección), en busca de procedimiento o del controlador configurado. Sobre la estructura del procedimiento almacenado Éste deberá poseer la siguiente estructura de parámetros:
Entonces, si se quiere retornar un mensaje de error, simplemente se devuelve un mensaje en el parámetro de salida. Con esto se impide que la transacción de "Commit" y ya no se agrega la entidad a la base de datos. |