SIU-Guarani/Version3.12.0/personalizaciones/extender tablas

De SIU
Saltar a: navegación, buscar

Extensión de tablas

Situación

En un formulario se necesita recolectar algún dato no provisto en la versión entregada por el SIU.

Caso de ejemplo

Se necesita registrar la hora del evento de colación en la operación Egresados » Actualizaciones » Colaciones

Solución

Deben seguirse los siguientes pasos:

  1. Verificar si existe un esquema de negocio propio en la base de Guaraní
    Se recomienda mantener las tablas de las personalizaciones en un esquema propio, dentro de la base de negocio de Guaraní. Si no existe, crearlo. Ejemplo:
    CREATE SCHEMA negocio_pers;
    No olvidar incluir el nuevo esquema en la fuente "guarani".
    G3 fuente datos.png
  2. Creación de una nueva tabla en la base de datos que extienda a la original
    Este paso implica crear una nueva tabla, cuyo ID referencie al de la tabla que deseamos extender mediante una foreign key.
    Los campos de la nueva tabla no deben tener el mismo nombre que campos de la tabla de la cual extiende.
    -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    -- PERSONALIZACIÓN
    -- SIU-GUARANI 3 - Sistema de Gestión Académica
    -- Versión 3.X.Y
    -- PERSONALIZACIÓN Tabla: sga_colaciones_ext
    -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    SET SEARCH_PATH = 'negocio_pers';

    CREATE TABLE sga_colaciones_ext
    (
            id_colacion     INTEGER NOT NULL,
            hora            TIME
    );

    -- PRIMARY KEY
    ALTER TABLE sga_colaciones_ext ADD CONSTRAINT pk_sga_colaciones_ext PRIMARY KEY (id_colacion);

    -- FOREIGN KEY
    CREATE INDEX ifk_sga_colaciones_ext_sga_colaciones ON sga_colaciones_ext (id_colacion);

    ALTER TABLE sga_colaciones_ext
            ADD CONSTRAINT fk_sga_colaciones_ext_sga_colaciones FOREIGN KEY (id_colacion)
            REFERENCES negocio.sga_colaciones (colacion) on update restrict on delete restrict;

    -- +++++++++++++++++ Fin tabla sga_colaciones_ext ++++++++++++++++++++++++++++++++++
  3. Extensión del datos tabla correspondiente
    En la solapa "Datos" del Editor Toba, sección "Tablas", debe localizarse la tabla a extender y abrirla para edición. Luego, en las propiedades básicas, configurar:
    • Tipo de persistencia: DB – Multitabla
    • Esquema Tabla Ext.: el esquema donde se tiene la extensión de la tabla; en el ejemplo, negocio_pers
    • Tabla de extensión: la tabla; en el ejemplo, sga_colaciones_ext
    G3 dt 01.png
    En la solapa "Columnas", indicar cómo se relacionan las tablas mediante el "Editor de Foreign Keys". Presionar el botón "Guardar" para que los cambios tengan efecto.
    G3 dt 02.png
  4. Inclusión del nuevo campo en el formulario :
    Localizar la operación donde se encuentra el formulario, abrir el mismo para edición (1), agregar una nueva fila (2), definir el EF (3) y guardar para que persistan los cambios (4).
    G3 form 01.png

Anexo

En el caso de que el datos tabla anteriormente modificado además forme parte de un datos relación seguir los siguiente pasos:

  1. Encontrar el/los datos relación de los cuales forma parte el datos tabla en cuestión, esto se puede verificar en la solapa propiedades básicas, tal como indica la imagen.
    G3 controlador dt.png
  2. Verificar si las relaciones entre los datos tabla están correctamente asignados (1), si no hay ninguna fila en el multilínea significa que la relación debe volver a ser definida agregando una nueva linea (2) y seleccionando las columnas por la cual se relacionan las tablas (3), finalmente guardar para persistir los cambios (4).
    G3 redefinir dr.png
  3. Realizar el mismo procedimiento por cada una de las filas de la solapa relaciones.