apacitación Altamira
Programación
Capacitación para Desarrolladores
apacitación Altamira
Programación
Programación
Altamira está programado en Cobol (CICS y Batch)
La base de datos relacional sobre la que se basa es DB2.
Para acceder a la base de datos se utiliza el SQL (Structured Query Language) embebido en los programas Cobol
La existencia de la arquitectura permite una utilización casi transparente de las sentencias CICS (eliminando casi totalmente los accesos a archivos, send de los mapas, detección de transacción en curso, hora, usuario, etc. ) y facilitando el trabajo con las áreas temporales de memoria (TS)
apacitación Altamira
Programación
Repaso de DB2 e instrucciones SQL
Se define “Base de datos relacional” a aquélla a quélla en que sus datos están estructurados como
tablas (Estructuras lógicas que cuentan con un número definido de columnas y un número variable de filas)
apacitación Altamira
Programación
Conceptos Básicos TABLAS
TABLE SPACE
STORAGE GROUP
KEYS
DB2
DATA
INDEX SPACE
BASE
VISTAS
INDICES
apacitación Altamira
Programación
Conceptos Básicos
DATA
BASE
STORAGE GROUP
TABLE SPACE
Una Base de Datos DB2 es un conjunto de Tablespaces e Index spaces; en dichos Index spaces se encuentran índices que pertenecen a tablas que se encuentran en los Tablespaces
El Storage Group, es esencialmente una lista de volúmenes en los cuales el DB2 puede alocar archivos asociados a las estructuras de almacenamiento
Es la estructura de almacenamiento en donde el DB2 almacena las tablas. Puede contener una o varias tablas Utilizar un tablespace para cada tabla mejora la performance de mantenimiento y reorganización de la misma
apacitación Altamira
Programación
Conceptos Básicos
TABLAS
Es una disposición de matriz fila/columna. Cada tabla tiene un nombre que la identifica univocamente. Cada tabla tiene cero o más filas, conteniendo cada una un único valor en cada columna. Todos los valores de una columna tienen el mismo tipo de datos.
CADENAS DE CARACTERES DE LONGITUD FIJA : CHAR (Longitud máxima 254). CADENAS DE CARACTERES DE LONGITUD VARIABLE: VARCHAR. Este tipo de dato permite que una columna almacene cadenas de caracteres que varían de longitud de una fila a otra, hasta una cierta longitud máxima. Longitud máxima 4000. NUMEROS: Las más usadas con: ENTEROS : SMALLINT (Small Integer) es un entero de 2 bytes; INTEGER (Large Integer) es un entero de 4 bytes. DECIMALES : Contienen parte decimal DECIMAL (p,s) (Máximo 15 dígitos). FECHAS Y HORAS : DATE. TIME, TIMESTAMP.
Tipos De Datos Permitidos para las columnas:
apacitación Altamira
Programación
Conceptos Básicos
KEYS
INDEX SPACE
Una Clave Primaria es una columna o combinación de columnas dentro de una tabla, cuyo(s) valor(s) identifica(n) unívocamente a cada fila de la tabla Una tabla tiene una única clave primaria. Una Clave Externa es una columna o combinación de columnas de una tabla, cuyo(s) valor(s) es(son) un valor de clave primaria para alguna otra tabla . La clave primaria y las externas se generan en el momento de creación de la tabla, con cláusulas PRIMARY KEY y FOREING KEY, respectivamente. Una tabla puede contener más de una clave externa, enlazándola a una o más tablas. Una clave compuesta es aquella que está formada por más de una columna; en estos casos, la definición de la clave debe incluir el orden relativo de las columnas.
Es la estructura de almacenamiento en donde el DB2 almacena los índices. El Index Space, a diferencia de los tablespaces, contiene sólo un índice.
apacitación Altamira
Programación
Conceptos Básicos
Un Índice es un conjunto ordenado de punteros que apuntan a filas de una tabla. Los índices son usados porque : Mejoran la performance. Agilizando el acceso a los datos Aseguran unicidad (en el caso de los índices únicos).
INDICES
Tipos de Indices: Único : Es una columna o combinación de columnas dentro de una tabla, cuyo(s)
valor(es) identifica(n) univocamente a cada fila de la tabla . Múltiple : No identifica unívocamente a una fila. Se utiliza para mejorar la performance. Cluster : Indica que la tabla está fisicamente ordenada por el índice. Puede existir SOLO UN índice cluster para una tabla.
Una Vista provee una manera alternativa para acceder a los datos de una o varias tablas. Permitiendo: Control de acceso a los datos : Restringiendo las columnas que pueden ser vistas por diferentes usuarios. Facilita el acceso a los datos: Si está construida desde más de una tabla. Las operaciones que se realicen sobre una vista, serán reflejadas en las tablas a las cuales hace referencia dicha vista. No pueden crearse índices para una vista.
VISTAS
apacitación Altamira
Repaso de instrucciones SQL
Select
Insert
Update
Delete
Declare cursor
Fetch
Programación
apacitación Altamira
Programación
Repaso de instrucciones SQL
Sentencia Select
Permite seleccionar filas de una tabla. Con o sin condiciones, ordenadas o no. Se podrán seleccionar alguas o todas las filas. SELECT nombre de columna FROM nombre de Tabla WHERE nombre de columna = Condición ORDER BY nombre o número de columna, ... (ASC O DESC)
apacitación Altamira
Repaso de instrucciones SQL
Sentencia Select - Cláusulas especiales
Order by
Distinct
Count
Sum
Max
AVG
Group By
Programación
apacitación Altamira
Programación
Repaso de instrucciones SQL
Distinct En el caso que haya filas con valores repetidos, la salida de este Select incluirá sólo una de estas filas.
SELECT DISTINCT (nombre de columna) FROM nombre de Tabla
apacitación Altamira
Programación
Repaso de instrucciones SQL
Count Cuenta la cantidad de filas que cumplen una condición
SELECT COUNT (*) FROM nombre de Tabla
Cuenta la cantidad de filas de toda la tabla
SELECT MOV_CUENTA, COUNT (*) FROM nombre de Tabla GROUP BY MOV_CUENTA
Cuenta para cada campo MOV_CUENTA existente en la tabla, la cantidad de filas
apacitación Altamira
Programación
Repaso de instrucciones SQL
Count y Group by Cuenta la cantidad de filas que cumplen una condición y agrupa la salida por la condición indicada en el group by.
SELECT MOV_CUENTA, COUNT (*) FROM nombre de Tabla GROUP BY MOV_CUENTA
Cuenta para cada campo MOV_CUENTA existente en la tabla, la cantidad de filas
apacitación Altamira
Programación
Repaso de instrucciones SQL
AVG Retorna el promedio de un conjunto de valores. El argumento utilizado es numérico.
SELECT AVG(MAE_SALDO_DISPUE) FROM ALTIDBA.BGDTMAE
apacitación Altamira
Programación
Repaso de instrucciones SQL
MAX Retorna el valor máximo de la columna. Permite agregarle la condición where, devolviendo el máximo de la columna para las filas que cumple con dicha condición.
SELECT MAX(MAE_SALDO_DISPUE) FROM ALTIDBA.BGDTMAE
apacitación Altamira
Programación
Repaso de instrucciones SQL
MIN Retorna el valor mínimo de la columna. Permite agregarle la condición where, devolviendo el máximo de la columna para las filas que cumple con dicha condición.
SELECT MIN(MAE_SALDO_DISPUE) FROM ALTIDBA.BGDTMAE
apacitación Altamira
Programación
Repaso de instrucciones SQL
SUM Retorna la suma de todas los valores de la columna que cumplan con la condición WHERE (si no se incluye se calcula el total de la tabla). El campo sumado debe ser numérico.
SELECT SUM(MAE_SALDO_DISPUE) FROM ALTIDBA.BGDTMAE
apacitación Altamira
Programación
Repaso de instrucciones SQL
SUBSTRI Retorna una parte acotada de un argumento, que debe ser una cadena de caracteres SELECT CODIGAS FROM ALTIDBA.UGDTGAS WHERE SUBSTR(CODIGAS,1,1) = ‘9’
apacitación Altamira
Programación
Repaso de instrucciones SQL
Condiciones Las condiciones contenidas en el predicado del WHERE pueden ser compuestas por los conectores OR, AND, o combinaciones de éstos. Asimismo pueden ser expresadas con signos =, <, >, ¬=, >= O <= SELECT
MAE_CUENTA FROM
WHERE MAE_INDESTA MAE_DIVISA = ‘USB’
SELECT
MAE_CUENTA FROM
WHERE MAE_INDESTA = ‘USB’
SELECT
= ‘A’
= ‘A’
MAE_CUENTA FROM
WHERE (MAE_INDESTA = ‘B’ > 0) OR MAE_INDESTA = ‘A’
Nombre de Tabla
AND
Nombre de Tabla
OR
MAE_DIVISA
Nombre de Tabla
AND MAE_SALDO
apacitación Altamira
Programación
Repaso de instrucciones SQL
Condiciones SUB-SELECT Las condiciones contenidas en el predicado del WHERE pueden ser a la vez un Subselect de otra Tabla
SELECT MOV_CUENTA, MOV_IMPORTE FROM ALTIDBA.BGDTMOV WHERE MOV_CUENTA IN (SELECT MAE_CUENTA FROM ALTIDBA.BGDTMAE WHERE MAE_INDESTA = ‘A’)
apacitación Altamira
Programación
Repaso de instrucciones SQL
Condiciones ANY / SOME Cuando se especifica ANY o SOME, el resultado es verdadero si la condición se cumple para AL MENOS UNA Fila de la Tabla a la que se hace subselect.
SELECT
* FROM
Nombre de Tabla
WHERE MAE_SALDO_DISPUE FROM Nombre Tabla)
>
ANY
( SELECT
MAE_SALDO_MEDIO
apacitación Altamira
Programación
Repaso de instrucciones SQL
OTRAS CONDICIONES
BETWEEN: determina si un valor dado se encuentra entre las 2 expresiones dadas. Siempre la expresión 1 debe ser menor a la expresión 2.
NULL: Testea los valores nulos
EXISTS: El predicado EXISTS testea la existencia de filas en el subselect.
LIKE: El predicado LIKE testea que los valores en las filas coincidan con la expresión. Ej: APELLIDO LIKE „PEREZ%‟. En un where traerá todos los apellidos que comiencen con Perez.
apacitación Altamira
Programación
Repaso de instrucciones SQL
INSERT La sentencia INSERT se utiliza para insertar nuevas filas a una Tabla El formato de la sentencia es : INSERT INTO Nombre de Tabla VALUES (Lista de Valores separados por coma) o VALUES (Subselect) Si se inserta un conjunto de valores, éstos deben coincidir con el formato de las columnas, a las cuales se van insertando en forma correlativa.
Si se inserta a través de un subselect, la tabla seleccionada deberá tener la misma definición que la tabla a la que se le insertarán los datos.
apacitación Altamira
Programación
Repaso de instrucciones SQL
UPDATE
La sentencia UPDATE se utiliza para modificar los datos de las filas de una Tabla
El formato de la sentencia es : UPDATE Nombre de Tabla SET Columna1 = Valor1 , SET Columan2 = Valor2, ......... SET Columnan = Valorn WHERE Condiciones Condiciones
Las condiciones utilizadas en el Select, son válidas en la sentencia UPDATE.
apacitación Altamira
Programación
Repaso de instrucciones SQL
DELETE
La sentencia DELETE se utiliza para borrar las filas de una Tabla
El formato de la sentencia es : DELETE Nombre de Tabla WHERE Condiciones
Las condiciones utilizadas en el Select, son válidas en la sentencia DELETE
apacitación Altamira
Programación
Precompilación
Cuando se compila un programa que tiene sentencias DB2, el Job de compilación debe tener un paso más, llamado Precompilación, que debe ejecutarse antes de la compilación Cobol.
La Precompilación transforma las sentencias SQL del programa, a Calls de DB2. Dichos Calls pueden ser compilados sin error por el compilador Cobol.
La Precompilación genera 2 salidas :
El programa original, con las sentencias DB2 transformadas en Calls, que será tomado por el compilador Cobol, y
El DBRM (Database Request Module) que contiene las sentencias SQL del programa original.
El DBRM de los programas es tomado en el proceso de BIND de packages y del plan.
apacitación Altamira
Programación
Packages
El PACKAGE es un objeto DB2 que contiene la forma original de las sentencias SQL de un DBRM.
Un Package se crea mediante el subcomando DB2, BIND PACKAGE
La Cláusula MEMBER del Bind del Package contiene una lista de los DBRM. Cada DBRM pertenece a un programa de aplicación. Cuando se crea un package, se arma la estructura de control para la ejecución de las sentencias SQL en el programa correspondiente. En esta instalación se arma un package por programa aplicación.
apacitación Altamira
Programación
PLAN
El PLAN es un objeto DB2 que contiene uno de los siguientes elementos:
Una Lista de nombres de Package
La forma original de las sentencias SQL de uno o más DBRM
Una Lista de nombres de Colection
Cada programa que contenga sentencias DB2, requiere un Plan
Un Plan se crea usando el subcomando DB2 BIND PLAN
Una COLECTION es una forma de agrupar programas. Se trata de un objeto lógico
apacitación Altamira
BIND
El
La conexión con DB2 es el resultado de un BIND
BIND
es el proceso por el cual se crea un package o un plan
Programación
apacitación Altamira
Programación
UNIDAD DE TRABAJO
Se llama unidad de trabajo a un conjunto de operaciones que se ejecutan a partir de una determinada acción
Una Unidad de Trabajo comienza por el inicio de un proceso o por la terminación de la unidad de trabajo previa
Una unidad de trabajo finaliza por una operación COMMIT, por una operación ROLLBACK o por la terminación del proceso
Las operaciones de commit o rollback afectan sólo a los resultados de las operaciones ejecutadas en la unidad de trabajo que ellos finalizaron
Estas operaciones confirman o anulan todo lo operado en la unidad de trabajo
apacitación Altamira
Programación
COMMIT
Los cambios que se realizan en una Unidad de Trabajo que afectan a las filas de una tabla (Insert, Update y Delete) se realizan en un área de Trabajo DB2
Recién cuando finalice la unidad de trabajo con un COMMIT, estos cambios se verán reflejados físicamente en la tablas
Por default, al finalizar un programa batch con DB2, el mismo realiza un commit automático
En el caso de un programa on-line el commit automático se realiza al devolver el control al CICS
La sintaxis del commit es: EXEC SQL COMMIT END-EXEC
apacitación Altamira
Programación
ROLLBACK
Si la unidad de trabajo finaliza con un ROLLBACK, el área de trabajo DB2 se borra, se pierden los cambios que se realizaron en la unidad de trabajo que afecten las filas de una tabla (Insert, Update y Delete)
Si un programa con DB2 no tiene commits internos, y se ejecuta un rollback, para el DB2 es como si el programa jamás se hubiera ejecutado
Para programas on-line, la sintaxis del Rollback es: EXEC CICS SYNCPOINT ROLLBACK END-EXEC
Para programas batch, la sintaxis del Rollback es:
EXEC SQL ROLLBACK END-EXEC
apacitación Altamira
Programación
INCLUDE
La sentencia INCLUDE incluye el copy dentro del programa
Al ser una sentencia DB2, ésta se resuelve en el tiempo de precompilación
Cuando un programa tiene DB2, se debe utilizar INCLUDE en vez de COBOL COPY, ya que, en caso que una variable sea utilizada en un comando DB2, el precompilador la tomará como existente
La sintaxis de la sentencia es: EXEC SQL INCLUDE BGTCMAE END-EXEC
apacitación Altamira
Programación
SQLCODE
La respuesta de toda operación que se ejecute sobre objetos DB2, queda en la variable SQLCODE
Dentro de los programas, se debe preguntar por el Sqlcode después de cualquier operación, para saber si la misma pudo resolverse satisfactoriamente
EVALUATE SQLCODE WHEN ZEROS Sentencias correspondientes a respuesta correcta WHEN +100 Sentencias correspondientes a fila inexistente WHEN OTHER Sentencias correspondientes a error END-EVALUATE.
apacitación Altamira
Programación
CURSORES
Se utilizan para acceder a TODOS los registros de una Tabla, que cumplan con una condición
Un CURSOR es un objeto lógico. Se define en un momento determinado del programa, pero se crea al realizar la sentencia OPEN del cursor, y deja de existir al realizar la sentencia CLOSE del mismo
Para utilizar un cursor, se lo debe
Declarar
Abrir
Leer cada una de de sus filas
Cerrar
apacitación Altamira
Programación
CURSORES FOR UPDATE
Cuando se desea modificar filas, que se encuentran en un cursor, el mismo debe ser declarado con el parámetro FOR UPDATE
Este parámetro permite modificar el dato de la fila que se ha leído, o borrar dicha fila de la Tabla
apacitación Altamira
Programación
Ejercitación
apacitación Altamira
Programación
Repaso de instrucciones SQL
Dada la tabla 1 (Clientes), escribir las instrucciones SQL que permitan:
Obtener primero y segundo apellido y nombre de todos los clientes que tengan la marca de estado = „1‟, ordenados alfábeticamente.
Obtener la cantidad de clientes que hay con cada tipo de documento (codident)
Obtener un listado con todos los tipos de documentos existentes (ordenado en forma ascendente)
Obtener el número de documento menor (Claident)
Insertar un nuevo cliente con los siguientes datos: Numclien = „111 11111‟, codident = „04‟, claident = „0000022222222‟, priape = „perez‟, segape en blanco, nombre = „jorge‟, estado = „1‟
Escribir las instrucciones para administrar un cursor que recorra todas las filas de la tabla que tengan estado en „1‟ y segape en blanco. Y las instrucciones Cobol que
evalúen el resultado de cada operación.
apacitación Altamira
Programación
Repaso de instrucciones SQL
Dadas las tablas 1 y 2, escribir las instrucciones SQL que permitan:
Obtener primero y segundo apellido y nombre de todos los clientes que existan en la segunda tabla
Obtener la cantidad de clientes que existen con cada tipo de producto
Obtener un listado con los nombres (apellido y nombre) de los clientes que tienen productos distintos de „01‟ y „02‟
apacitación Altamira
Programación
Repaso de instrucciones SQL
Tabla 1 (Clientes)
NUMCLIEN
CODIDENT
CLAIDENT
PRIAPE
SEGAPE
NOMBRE
ESTADO
00433833
02
0000022556712 DELLEPIANE
VALLE
BEATRIZ GRACIELA
1
00436604
02
0000017365459 DELSOGLIO
CACERES
ANA MARIA
0
00437514
03
0000020159438 DELUCCHI
CARLOS RAUL
1
00437519
04
0000009879250 DELUCCHI
DIEGO GUILLERMO
1
00439370
03
0000025696782 DEMARCHI
JOSE MARIA
1
00439251
04
0000003161515 DEMARCHI
ANA MARIA
0
00438856
03
0000024565222 DEMARCO
JUAN
1
00444059
02
0000018995565 DER KRIKORIAN
BEATRIZ
1
00443741
04
0000013569898 DERECHO
LILIANA NORA
1
ARTIGAS
apacitación Altamira
Programación
Repaso de instrucciones SQL
Tabla 2 (Relación cliente-cuenta) NUMCLIEN
CODISER
NUMECTA CLAINTER
SECINTER
00433833
02
00117547
T
02
00433833
12
00006669
T
02
00436604
01
00248243
T
02
00437514
01
00242839
T
01
00437514
02
00048457
T
01
00437514
07
00090282
T
02
00437514
17
00090253
T
02
00437519
07
00136068
T
02
00437519
07
00159770
T
01
00438856
07
00036658
T
02
00438856
17
00036642
T
02
00439370
02
00081975
T
01
00444059
07
00090961
T
01
00444059
07
00220583
T
01
00444059
17
00090921
T
01
00444059
17
00220523
T
01
apacitación Altamira
Repaso de instrucciones SQL
Solución para último query
SELECT A.PRIAPE, A.SEGAPE, A.NOMBRE FROM ALTDDBA.PEDT001 A, ALTDDBA.PEDT008 B WHERE A.NUMCLIEN = B.NUMCLIEN AND CODISER ¬= (‘01’,’02’)
Programación
apacitación Altamira
Programación
Estándares
apacitación Altamira
Estándares de nomenclatura
Siglas de Aplicaciones QC: Arquitectura Central QB: Arquitectura Tablas Generales QG: Arquitectura de Aplicaciones
QM: Arquitectura - Mantenimiento QI: Tratamiento de Listados QR: Arquitectura - Rutinas AC: Arquitectura de Canales (Propia de BKB) BA: Cámara BG: Cuentas BQ: Cheques y chequeras
BR: Rutinas de cuentas personales
Programación
apacitación Altamira
Estándares de nomenclatura
Siglas de Aplicaciones BX: Tratamiento de Incidencias HA: Contabilidad General IA: Gestión de correspondencia
LS: Cartera de Efectos OG: Domiciliaciones General OM: Domiciliaciones PE: Personas (Clientes) TC: Tablas Corporativas UA: Avales UG: Préstamos
PM: Marketing y Ventas
Programación
apacitación Altamira
Programación
Estándares de nomenclatura
Para la mayoría de los componentes (programas, copys, mapas, tablas, etc.) será:
aaTTxxx v, Donde
aa es el Identificador de la aplicación
TT varía se trate de acuerdo a que el objeto sea: 1C:
Programa Cobol CICS
2C:
Programa Cobol CICS con DB2
3C:
Programa Cobol Batch
4C:
Programa Cobol Batch con DB2
6C:
Módulo Cobol CICS sin DB2 (algunas aplicaciones lo usan como batch)
7C:
Módulo cobol CICS con DB2
8C:
Módulo Cobol Batch sin DB2
9C:
Módulo Cobol Batch con DB2 (En algunas aplicaciones se utiliza para sin DB2)
apacitación Altamira
Programación
Estándares de nomenclatura
TT varía se trate de acuerdo a que el objeto sea (Cont): DT:
Tabla DB2
TC:
Copy Cobol de la Tabla
GT:
DCLGEN
EC:
Copy de commarea
M:
Mapa
NC:
Copy Cobol correspondiente al mapa o formato de entrada
WC:
Copy de áreas de working (en algunos casos se usa como el NC)
JE: JCL
xxx : Son tres posiciones que se utilizan para identificar el objeto de que se trate
v: Indica la versión, se utiliza en programas. La versión 0 debe ser siempre la versión correcta y definitiva.
apacitación Altamira
Programación
Estándares de nomenclatura
v: En vistas se utiliza para identificar las distintas vistas de una misma tabla
v: En JCL se utiliza para jobs iguales que se ejecuten a la misma hora
Ejemplos: BG4CISE0:
Es un programa cobol Batch con DB2 de Cuentas Personales, identificado por la sigla „ISE‟ por ser el programa que calcula el Impuesto a los SEllos. Primera versión
HADT001:
Es la tabla número 001 de Contabilidad (en este caso el Plan de Cuentas)
BGDTMAE:
Tabla Maestra de Cuentas
BADV0010:
Es la vista principla de la tabla BADT001 de Cámara
BGECMIR:
Es la commarea de comunicación con la rutina de cuentas BG4CMIR0
HAM060:
Es el mapa de la transacción de Contabilidad nro. HA60
PENC0660:
Copy del área de entrada a la transacción PE66
apacitación Altamira
Programación
Estándares de nomenclatura
Bases, Tablespaces e índices
Bases de Datos: ALB aa e aa aa, Código de la aplicación e, Entorno del trabajo (V: desarrollo, I: Integración, P: producción, Y: Desarrollo paralelo)
aa, código de la aplicación
Tablespaces: ALP aa xxx aa, Código de la aplicación
xxx, código que identifica a la entidad de DB2 (tabla relacionada)
Tablas: aa DT xxx aa, Código de la aplicación xxx, código que identifica a la entidad de DB2
apacitación Altamira
Estándares de nomenclatura
Bases, Tablespaces e índices (Cont.)
Vistas: aa DV xxx y aa, Código de la aplicación xxx, código que identifica a la entidad de DB2
y, número de secuencia de las vistas, empezando de 0.
Indices: AL n aa xxx n, indicador de secuencia de índices aa, Código de la aplicación xxx, código que identifica a la tabla DB2 a la que pertenece
Cursores AL DC xxx y xxx, código que identifica a la entidad de DB2
y, número de secuencia, empezando de 0
Programación
apacitación Altamira
Estándares de nomenclatura
Planes AL e aa P t e, código de entorno (V: desarrollo, I: integración, etc.) aa, Código de la aplicación P, Constante que indica que se trata de un plan
t, tipo de objeto (O: on-line, B: Batch)
Cursores AL DC xxx y xxx, código que identifica a la entidad de DB2 y, número de secuencia, empezando de 0
Programación
apacitación Altamira
Programación
Estándares de nomenclatura
Archivos
Internamente, podrán tener cualquier nombre
DDNAME Archivos
que no son listados: z v tt xxx 0
• z indica la utilización (E: entrada, S: salida, A: entrada-salida) • v orden secuencial dentro del programa (1-9, A-Z) • tt tipo de fichero (DF: VSAM, DQ: Secuencial, DW: de trabajo, DI: intercambio entre aplicaciones o entidades) • xxx, código que identifica al elemento • 0, constante
apacitación Altamira
Programación
Estándares de nomenclatura
DDNAME (Cont.) Archivos
que son listados: aa tt xxx n
• aa indica código de la aplicación • tt tipo de fichero (LS: listado, DO: Documentación) • xxx, código que identifica al elemento • n, número de secuencia de los listados de un programa. Si es un resumen del proceso deberá tener valor 0. • Ej: BGLSISE1 BGLSISE2 Son dos listados generados por el programa BG4CISE0 de la aplicación de cuentas.
NOTA: Los valores de xxx no deben ser necesariamente iguales a los del
apacitación Altamira
Programación
Estándares de nomenclatura
DSNAME (Estándares Altamira España) Primer cualificador:
MALe
• MAL: Constante fija que indica plataforma Altamira en España • e: código del entorno de trabajo (D: Desarrollo, F: Formación, C: Conversión, T: Test, P: producción) Segundo cualificador:
aa [ts] (donde t s son opcionales)
• aa: Código de aplicación • [t, tipo de fichero] (F: fichero no listado, L: listado) • [s., soporte] (C:cinta o cartucho, D: disco)
apacitación Altamira
Programación
Estándares de nomenclatura
DSNAME (Cont. ) Tercer
cualificador: rrrr ssss
• rrrr rrrr, indicador reservado para el RACF para niveles de protección (por defecto, en la instalación, se crean los siguientes: STDR fichero estándar y BAT1 fichero generado por proceso batch) • ssss, indicador reservado al gestor de espacio SMS. Se utilizan los siguientes STDR fichero de tipo secuencial (estándar) HIST fichero de tipo histórico, con backup y sin borrado HILn fichero histórico, con requisitos legales de n años NBAS fichero no básico, con backup y borrado controlado SBAS fichero básico, con backup y borrado controlado SB30 fichero a mantener durante 30 días SB60 fichero a mantener durante 60 días CONS fichero constante, que se mantiene siempre VSAM fichero de tipo VSAM UNLO fichero procedente de proceso de unload de tabla DB2
apacitación Altamira
Programación
Estándares de nomenclatura
DSNAME (Cont. ) Cuarto
cualificador: pppp xxx n
• pppp, indicador de fichero para gestión de producción y libre en desarrollo • xxx n, debe coincidir con , los cuatro últimos caracteres de la DDNAME del fichero Quinto
cualificador
• Ficheros generacionales: G nnnn V xx
nnnn, el número de generación
xx, el número de versión • No generacionales: i nnnnnn (Opcional)
i, indicador de significado de la numeración posterior (D: fechas, R: remesas, S: solicitudes, A: cobros, O: órdenes, X: libre, M: mes AAMM)
nnnnnn, numérico de 4 a 6 posiciones
apacitación Altamira
Programación
Estándares de nomenclatura
Ejemplos DSNAME (Altamira España) MALI.HA.BAT1HIST.UMERIS01.M0203
Archivo de Integración, de contabilidad, generado por proceso batch, histórico, UMER se utiliza para identificar el fichero, IS01: indica el DDNAME al que se asigna, y es del mes de marzo del 2002. MALD.BG.BAT1NBAS.BGLSSEL0.D&DAT1
Archivo de Desarrollo, del módulo de Cuentas Personales, generado en un proceso Batch, correspondiente a la DDNAME terminada en SEL0, de una fecha determinada.
apacitación Altamira
Programación
Estándares de nomenclatura
DSNAME (Estándares BKB) Primer
cualificador: A amb
• A: Constante • amb: indica el entorno de trabajo (INT: Integración, PRO: Producción, etc.) Segundo
cualificador: aa
• aa: Código de aplicación Tercer
cualificador: S (Constante)
apacitación Altamira
Programación
Estándares de nomenclatura
DSNAME (Cont. Estándares BKB) Tercer
cualificador: rrrr ssss
• rrrr rrrr, indicador reservado para el RACF para niveles de protección (por defecto, en la instalación, se crean los siguientes: STDR fichero estándar y BAT1 fichero generado por proceso batch) • ssss, indicador reservado al gestor de espacio SMS. Se utilizan los siguientes STDR fichero de tipo secuencial (estándar) HIST fichero de tipo histórico, con backup y sin borrado HILn fichero histórico, con requisitos legales de n años NBAS fichero no básico, con backup y borrado controlado SBAS fichero básico, con backup y borrado controlado SB30 fichero a mantener durante 30 días SB60 fichero a mantener durante 60 días CONS fichero constante, que se mantiene siempre VSAM fichero de tipo VSAM UNLO fichero procedente de proceso de unload de tabla DB2
apacitación Altamira
Programación
Estándares de nomenclatura
DSNAME (Cont. Estándares BKB) Cuarto
cualificador:
• indicador de fichero para gestión de producción y libre en desarrollo. Cuando la relación es notoria coinciden los cuatro últimos caracteres con los de la DDNAME del fichero Quinto
cualificador [tttt] (Opcional)
• se utiliza para indicar si es salida de un SORT a partir de un archivo de igual nombre Sexto
cualificador • Ficheros generacionales: G nnnn V xx nnnn, el número de generación xx, el número de versión • No generacionales: i nnnnnn (Opcional) i, indicador de significado de la numeración posterior nnnnnn, numérico de 4 a 6 posiciones
apacitación Altamira
Programación
Estándares de nomenclatura
Ejemplos DSNAME (Bank Boston) AINT.BG.S.BAT1NBAS.MOVONLC0.D020302
Archivo de Integración, de Cuentas Personales, generado por proceso batch no básico, correspondiente a los movimientos on-line (Coincide con el DDNAME), de una fecha y es del 2 de marzo del 2002. APRD.BG.S.BAT1SBAS.TOTAMAE1.D&DAT1.SORT
• Archivo de Producción, del módulo de Cuentas Personales, generado en un proceso Batch, es un archivo Básico (proviene del maestro de cuentas), correspondiente a la TOTAMAE1 (toda la tabla maestra de cuetas), de una fecha determinada, ordenado a partir de un archivo de igual nombre.
apacitación Altamira
Programación
Estándares de Programación
Estándares funcionales:
Uso de fechas de Proceso:
En On-line , se debe usar a fecha provista por la Arquitectura (CAA-FECHACONT).
En el Batch, se debe usar uno de estos métodos.
Usar la variable Jobtrac que indica la fecha de proceso.
Usar un archivo de administración de fechas (Ejemplo: CNT de Cuentas).
Aislamiento de Datos :
Los sistemas deben acceder a los datos de otros sistemas exclusivamente por medio de rutinas de servicio. No se debe acceder directamente a los datos de otros sistemas salvo que sea autorizado por cuestiones de Performance.
apacitación Altamira
Programación
Estándares de Programación
.
Programación Estructurada:
No usar GOTO (Sólo se admite GOTO a fin de párrafo)
No usar Handle Condition/Aid (Debe usarse el EIBRESP/EIBAID)
No puede haber recursividad de Performs.
No puede haber código muerto (Máximo permitido 40 líneas), pero lo razonable no debería ser mayor a 20 líneas.
apacitación Altamira
Programación
Estándares de Programación
Consideraciones de Performance en sentencias DB2:
SELECT y CURSORES Seleccionar Realizar
campo a campo y sólo los campos que serán utilizados
la selección en el orden en que están definidos en la tabla
Dentro
de lo posible los cursores y select deben acceder por índice. En tablas “grandes” es fundamental.
Para
verificar que en la tabla exista al menos un registro que cumpla una condición NO HACER SELECT COUNT, seleccionar sólo el primer campo del índice que se está utilizando. Ej: SELECT NUMERO INTO :CGT50011-NUMERO FROM VGT5001_DESCOD WHERE NUMERO = :CGT50011-NUMERO AND CODIGO = :CGT50011-CODIGO