NotasTecnicas/personalizaciones/extenderTabla

Personalización: 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

Seben seguirse los siguientes pasos:

  1. Verificar si existe un esquema de negocio propio en la base de Guaraní
  2. Creación de una nueva tabla en la base de datos que extienda a la original
  3. Extensión del datos tabla correspondiente
  4. Inclusión del nuevo campo en el formulario

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".

source:/trunk/img/personalizaciones/extenderTabla/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.

-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-- 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

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

source:/trunk/img/personalizaciones/extenderTabla/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. source:/trunk/img/personalizaciones/extenderTabla/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).

source:/trunk/img/personalizaciones/extenderTabla/form_01.png