Está en la página 1de 7

Tablas Adicionales Saint Enterprise Administrativo (SEA).

Las tablas adicionales se generan o crean anexas relacionadas a las tablas MAESTRAS o TRANSACCIONALES en el SEA. Algunas tablas tienen la particularidad que pueden almacenar por cada registro en la tabla materna uno (SIMPLE) o varios (MLTIPLES), por citar un ejemplo, a un cliente se le puede crear una tabla adicional o grupo que pueda almacenar un registro adicional por cada cliente (direccin personal, nombre del gerente, etc.) o un grupo que pueda contener varios registros por cada cliente (Vehculos del cliente, hijos del cliente, etc), de acuerdo a la necesidad o requerimiento del usuario. A cada tabla de un maestro (Clientes, Proveedores, Productos, Operaciones, Bancos, Beneficiarios, etc) se le puede anexar una o ms tablas adicionales. Cada una de estas tablas son llamadas o interpretadas por el SEA como Grupos. Cada tabla est basada o creada sobre una tabla MATERNA sobre la cual va a contener informacin. Normalmente con algunas excepciones que se comentarn ms adelante - las tablas maternas son las tablas maestras y/o transaccionales del sistema y estn representadas por el nombre de la tabla: Clientes: SACLIE; Proveedores: SAPROV; Facturas: SAFAC; Beneficiarios: SBBENE, etc. Adicionalmente al control de las tablas adicionales, el SEA mantiene un sub sistema de DICCIONARIO para la utilizacin en reportes que deber ser actualizado cada vez que se agrega o se retira un grupo o un campo de las tablas adicionales. Dicho diccionario est conformado por las tablas SATABL y SAFIEL. Las tablas utilizadas por el SEA para el manejo y control de las TABLAS ADICIONALES son: SAAGRUPOS : Contiene la informacin sobre todas las tablas adicionales que se han anexado a la base de datos del SEA. Campos: CodTbl: Nombre o cdigo de la tabla materna. (SACLIE, SAPROV, etc) NumGrp: Nmero de tabla o grupo para la tabla materna. (1,2..N) NombreGrp: Es el nombre del grupo tal y como est especificado en la tabla. AliasGrp: Es el nombre que se le especific para dicho grupo. Normalmente deberan tener el mismo nombre pero por especificaciones del SQL, los nombre no se almacenan con espacios en blanco, acentos, u otros caracteres especiales y de ah la dualidad de NombreGrp y AliasGrp. EsTrans: Indica si la tabla contiene uno o ms registros por cada registro principal en la tabla MATERNA. 0: un solo registro; 1: mltiples registros.

NMeses, NMovim Campos previstos para controlar la cantidad de registros a guardar en los grupos mltiples (no implementados). SAACAMPOS: Contiene la informacin sobre todos y cada uno de los campos definidos en las diferentes tablas adicionales o Grupos que hayan sido creadas. Esta informacin es referencial para la utilizacin interna del SEA ya que que todas y cada una de las tablas creadas por el sistema son explcitas y sus campos y tipos de data se rigen de acuerdo al SQL. Campos: CodTbl: Nombre o cdigo de la tabla materna. (SACLIE, SAPROV, etc) NumGrp: Nmero de tabla o grupo para la tabla materna. (1,2..N) NombreCpo: Es el nombre del campo tal y como est especificado en la tabla. AliasCpo: Es el nombre que se le especific para dicho campo. Normalmente deberan tener el mismo nombre pero por especificaciones del SQL, los nombre no se almacenan con espacios en blanco, acentos, u otros caracteres especiales y de ah la dualidad de NombreGrp y AliasGrp. TipoCpo: Es un valor numrico y representa el nmero utilizado por el SQL de acuerdo al tipo de data que almacena. Los tipos soportados son: Entero: 56 Decimal: 106 Texto: 167 Fecha: 61 Memorando: 35 Es la longitud mxima del campo cuando as se requiriese, en Requerirse, el sistema genera un valor no relevante. Para las cadenas de Caracteres es el mximo nmero de caracteres a guardar. Requerido: Indica si el campo debe ser introducido con carcter de obligatoriedad al momento de ser solicitado. Es un valor referencial ya que es utilizado internamente por el SEA y no crea ningn Trigger adicional en la tabla como tal. 0: No es obligatorio; 1: Tiene carcter obligatorio. CBusqueda: 0: No ser utlizado como campo de bsqueda; 1: Ser utilziado como Campo de bsqueda.

Longitud: caso de no

SAOPER: Internamente el SEA utiliza esta tabla como referencia para saber cuales tablas o grupos y en donde van a ser requerir en las diferentes operaciones . Campos: CodTbl: etc) NumGrp: NroOper: que Nombre o cdigo de la tabla materna. (SACLIE, SAPROV, Nmero de tabla o grupo para la tabla materna. (1,2..N) Nmero entero que representa el tipo de dato y/o el momento

deber ser solicitado el registro por el SEA. Ms adelante se proveen los diferentes tipos de operacin utilizados por el SEA. PDtaReq: Campo no implementado. De acuerdo a esta tabla, del SEA solicita la informacin referente a la tabla o grupo indicado. Tipos de operacin soportados por el SEA. NroOper grupo 100 110 200 300 310 400 500 600 610 700 800 3000 3010 3100 3200 330 335 340 350 355 360 Sitio y/o accin donde se incluye o modifica la tabla o Archivo maestro de proveedores Compras Depsitos Inventario Operaciones de Inventario Vendedores Servicios Clientes Ventas Servidores Operaciones Bancos Transacciones de bancos Cuentas (Bancos) Beneficiarios Productos Ventas Productos Compras Productos Operaciones de Inventario Servicios Ventas Servicios Compras Servicios Operaciones de Inventario

CREACION DE TABLAS ADICIONALES: Cada tabla ser creada con el nombre de la tabla MATERNA y le ser adicionado el nmero del grupo.

La tabla adicional SACLIE_01 correspondera al grupo 01 a la tabla de clientes tendra como primer campo el cdigo del cliente (CodClie) seguida de los campos definidos por el usuario. Las tablas de inventario o productos forman el nombre utilizando el nombre de la tabla materna SAPROD ms el nmero de la instancia. Para formar el nombre principal al cual se le adiciona el nmero del grupo, de tal manera que cada instancia puede tener uno o ms grupos. De esta manera, la instancia nmero 1 podr tener dos o ms - tablas o grupos cuyos nombres seran SAPROD_1_01, SAPROD_1_02 y as sucesivamente. En general, las tablas adicionales cuyas tablas maternas sean las tablas maestras del SEA llevan el mismo cdigo de la tabla maestra. Ejemplo para una tabla o grupo de un solo registro (SIMPLE): Tabla: SAPROV_01: Campos: CodProv: Cdigo del proveedor Razon_Social: Campo Razn Social creado por el usuario En el caso de grupos de varios registros (MLTIPLES) la tabla se construye agregando un campo entero del tipo Auto incrementado (NroUnico) que formara parte del ndice de la tabla. Este campo NroUnico permite la introduccin de VARIOS registros por cada record de la tabla maestra o MATERNA. Adicionalmente, el sistema SEA crea un campo llamado FecTrn que contiene la fecha y hora en que fue anexado el registro y el cual sera utilizado para mantener o retirar el registro de acuerdo al tiempo especificado para mantener los registros. Para la creacin de una tabla adicional al maestro de bancos la cual contendra el nombre de las sucursales (Campo SUCURSAL) y de las personas contacto (Campo: CONTACTO) en cada una de ellas se utilizara las siguientes instrucciones o queries de MSSQL.

TABLAS ADICIONALES:
Insert into SAAGRUPOS (CodTbl,NumGrp,NombreGrp,AliasGrp,EsTrans,NMeses,NMovim) Values('SBBANC',1,'Datos_confidenciales','Datos confidenciales',0,0,0) Insert into SAAOPER (CodTbl,NumGrp,NroOper,PDtaReq) Values('SBBANC',1,3000,0) Insert into SATABL

(TableName, TableAlias) Values('SBBANC_01', 'Bancos:Datos_confidenciales')

La creacin fsica de la tabla ser realiza de acuerdo a las reglas del SQL. Dado que el SEA soporta dos tipos de grupos (SIMPLES y MULTIPLES) inicialmente dicha creacin vara de forma que los grupos SIMPLES o de un solo registro tienen como Campo ndice el mismo campo que la tabla MATERNA. Eso significa que para la tabla de clientes el primary key se hara sobre el campo CodClie que es el primary key de la tabla maestra de clientes. Para soportar grupos mltiples, el sistema agrega el campo NroUnico que es un valor entero auto incrementado y el primary key lo construye sobre los dos campos y agrega tambin un tercer campo que guarda la fecha en que se realiza la transaccin (FecTrn).
-- Creacin de la tabla un solo registro (SIMPLE) CREATE TABLE [dbo].SBBANC_01 ( CodBanc VARCHAR(15) NOT NULL ALTER TABLE SBBANC_01 WITH NOCHECK ADD CONSTRAINT SBBANC_01_IX0 PRIMARY KEY CLUSTERED (CodBanc) ON [PRIMARY] -- Creacin de la tabla de varios registros (MULTIPLE) CREATE TABLE [dbo].SBBANC_01 ( CodBanc VARCHAR(15) NOT NULL, NroUnico INT IDENTITY (1,1) NOT NULL, FecTrn DATETIME NOT NULL) ALTER TABLE SBBANC_01 WITH NOCHECK ADD CONSTRAINT SBBANC_01_IX0 PRIMARY KEY CLUSTERED (CodBanc ,NroUnico) ON [PRIMARY] Insert into SAAOPER (CodTbl,NumGrp,NroOper,PDtaReq) Values('SBBANC',1,3000,0)

ACUTALIZACION DEL DICCIONARIO DE REPORTES:


Delete SATABL Where (TableName='SBBANC_01') Delete SAFIEL Where (TableName='SBBANC_01') Insert into SATABL (TableName, TableAlias) Values('SBBANC_01', 'Bancos:Datos_confidenciales')

El conjunto de instrucciones o queries anteriores cre una nueva tabla de nombre SABANC_01 con los campos anteriormente especificados y posteriormente construy un ndice sobre los campos CodBanc y NroUnico de tal manera que la tabla puede almacenar mltiples registros por cada banco.

Adicionalmente, anexo a la tabla SAAOPER la informacin sobre dicha tabla que qued identificada como la operacin 3000 que le dice al SEA que esta informacin deber ser requerida o solicitada al momento de estar actualizando el maestro de bancos. Esta numeracin es interna de Saint de Venezuela y puede ser documentada agregando y/o creando tablas adicionales o grupos en los diferentes mdulos verificando que nmero de operacin va asignando SEA a cada grupo creado. Al final de este documento se agregarn los nmeros de operaciones ms utilizados. Agregando campos a la tabla adicional:
-- Actualizando la tabla SBBANC_01 (Agregando campo entero INT) Alter table SBBANC_01 ADD [Edad] INT NULL -- Agregando las especificaciones del campo Insert into SAACAMPOS (CodTbl,NumGrp,NombCpo,AliasCpo,TipoCpo,Longitud,Requerido,CBusqueda) Values('SBBANC',1,'Edad','Edad',56,35,0,0) -- Actualizando el diccionario INSERT INTO SAFIEL (TableName, FieldName, FieldAlias, DataType, Selectable, Searchable, Sortable, AutoSearch, Mandatory) VALUES ('SBBANC_01', 'CodBanc', 'Cod_Banco', 'dtString', 'T', 'T', 'T', 'F', 'F') INSERT INTO SAFIEL (TableName, FieldName, FieldAlias, DataType, Selectable, Searchable, Sortable, AutoSearch, Mandatory) VALUES ('SBBANC_01', 'Edad', 'Edad', 'dtLongInt', 'T', 'T', 'T', 'F', 'F') -- Actualizando la tabla SBBANC_01 (Agregando campo decimal) Alter table SBBANC_01 ADD [Sueldo] DECIMAL(28,3) NULL Insert into SAACAMPOS (CodTbl,NumGrp,NombCpo,AliasCpo,TipoCpo,Longitud,Requerido,CBusqueda) Values('SBBANC',1,'Edad','Edad',56,4,0,0) -- Actualizando el diccionario Insert into SAACAMPOS (CodTbl,NumGrp,NombCpo,AliasCpo,TipoCpo,Longitud,Requerido,CBusqueda) Values('SBBANC',1,'Sueldo','Sueldo',106,35,0,0) INSERT INTO SAFIEL (TableName, FieldName, FieldAlias, DataType, Selectable, Searchable, Sortable, AutoSearch, Mandatory) VALUES ('SBBANC_01', 'Sueldo', 'Sueldo', 'dtDouble', 'T', 'T', 'T', 'F', 'F') -- Actualizando la tabla SBBANC_01 (Campo caracteres VARCHAR) Alter table SBBANC_01 ADD [Cargo] VARCHAR(35) NULL Delete SAACAMPOS Where (CodTbl='SBBANC') And (NumGrp=1)

Insert into SAACAMPOS (CodTbl,NumGrp,NombCpo,AliasCpo,TipoCpo,Longitud,Requerido,CBusqueda) Values('SBBANC',1,'Edad','Edad',56,4,0,0) Insert into SAACAMPOS (CodTbl,NumGrp,NombCpo,AliasCpo,TipoCpo,Longitud,Requerido,CBusqueda) Values('SBBANC',1,'Sueldo','Sueldo',106,13,0,0) Insert into SAACAMPOS (CodTbl,NumGrp,NombCpo,AliasCpo,TipoCpo,Longitud,Requerido,CBusqueda) Values('SBBANC',1,'Cargo','Cargo',167,35,0,0) INSERT INTO SAFIEL (TableName, FieldName, FieldAlias, DataType, Selectable, Searchable, Sortable, AutoSearch, Mandatory) VALUES ('SBBANC_01', 'Cargo', 'Cargo', 'dtString', 'T', 'T', 'T', 'F', 'F')

También podría gustarte