Sie sind auf Seite 1von 66

apacitacin

Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Capacitacin para Desarrolladores
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Programacin
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 utilizacin casi transparente de las
sentencias CICS (eliminando casi totalmente los accesos a archivos, send de los mapas,
deteccin de transaccin en curso, hora, usuario, etc. ) y facilitando el trabajo con las
reas temporales de memoria (TS)


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de DB2 e instrucciones SQL


Se define Base de datos relacional a aqulla en que sus datos estn estructurados como
tablas (Estructuras lgicas que cuentan con un nmero definido de columnas y un
nmero variable de filas)

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos

DB2
DATA BASE
STORAGE
GROUP
TABLE
SPACE
TABLAS

KEYS

VISTAS
INDICES


INDEX SPACE


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos

DATA BASE
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
STORAGE
GROUP
El Storage Group, es esencialmente una lista de volmenes en los cuales el DB2
puede alocar archivos asociados a las estructuras de almacenamiento
TABLE
SPACE
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
reorganizacin de la misma

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos

TABLAS

Es una disposicin de matriz fila/columna.
Cada tabla tiene un nombre que la identifica univocamente.
Cada tabla tiene cero o ms filas, conteniendo cada una un nico valor en cada
columna.
Todos los valores de una columna tienen el mismo tipo de datos.
Tipos De Datos Permitidos para las columnas:

CADENAS DE CARACTERES DE LONGITUD FIJA : CHAR (Longitud mxima 254).
CADENAS DE CARACTERES DE LONGITUD VARIABLE: VARCHAR. Este tipo de dato permite
que una columna almacene cadenas de caracteres que varan de longitud de una fila a otra, hasta
una cierta longitud mxima. Longitud mxima 4000.
NUMEROS: Las ms 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) (Mximo 15 dgitos).
FECHAS Y HORAS : DATE. TIME, TIMESTAMP.

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos

KEYS

Una Clave Primaria es una columna o combinacin de columnas dentro de una
tabla, cuyo(s) valor(s) identifica(n) unvocamente a cada fila de la tabla
Una tabla tiene una nica clave primaria.
Una Clave Externa es una columna o combinacin 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 creacin de la tabla,
con clusulas PRIMARY KEY y FOREING KEY, respectivamente.
Una tabla puede contener ms de una clave externa, enlazndola a una o ms
tablas.
Una clave compuesta es aquella que est formada por ms de una columna; en
estos casos, la definicin de la clave debe incluir el orden relativo de las columnas.
INDEX
SPACE
Es la estructura de almacenamiento en donde el DB2 almacena los ndices.
El Index Space, a diferencia de los tablespaces, contiene slo un ndice.
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos

INDICES

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).
Tipos de Indices:
nico : Es una columna o combinacin de columnas dentro de una tabla, cuyo(s)
valor(es) identifica(n) univocamente a cada fila de la tabla .
Mltiple : No identifica unvocamente 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.
VISTAS
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 ms de una tabla.
Las operaciones que se realicen sobre una vista, sern reflejadas en las tablas a las
cuales hace referencia dicha vista.
No pueden crearse ndices para una vista.
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Select
Insert
Update
Delete
Declare cursor
Fetch


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Sentencia Select
Permite seleccionar filas de una tabla. Con o sin condiciones, ordenadas o no. Se podrn
seleccionar alguas o todas las filas.


SELECT nombre de columna
FROM nombre de Tabla
WHERE nombre de columna = Condicin
ORDER BY nombre o nmero de columna, ...
(ASC O DESC)

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Sentencia Select - Clusulas especiales
Order by
Distinct
Count
Sum
Max
AVG
Group By


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Distinct
En el caso que haya filas con valores repetidos, la salida de este Select incluir slo
una de estas filas.


SELECT DISTINCT (nombre de columna)
FROM nombre de Tabla


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Count
Cuenta la cantidad de filas que cumplen una condicin


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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Count y Group by
Cuenta la cantidad de filas que cumplen una condicin y agrupa la salida por la
condicin 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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
AVG
Retorna el promedio de un conjunto de valores. El argumento utilizado es numrico.


SELECT AVG(MAE_SALDO_DISPUE)
FROM ALTIDBA.BGDTMAE

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
MAX
Retorna el valor mximo de la columna. Permite agregarle la condicin where,
devolviendo el mximo de la columna para las filas que cumple con dicha condicin.


SELECT MAX(MAE_SALDO_DISPUE)
FROM ALTIDBA.BGDTMAE

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
MIN
Retorna el valor mnimo de la columna. Permite agregarle la condicin where,
devolviendo el mximo de la columna para las filas que cumple con dicha condicin.


SELECT MIN(MAE_SALDO_DISPUE)
FROM ALTIDBA.BGDTMAE

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
SUM
Retorna la suma de todas los valores de la columna que cumplan con la condicin
WHERE (si no se incluye se calcula el total de la tabla). El campo sumado debe ser
numrico.


SELECT SUM(MAE_SALDO_DISPUE)
FROM ALTIDBA.BGDTMAE


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 Nombre de Tabla
WHERE MAE_INDESTA = A AND
MAE_DIVISA = USB


SELECT MAE_CUENTA FROM Nombre de Tabla
WHERE MAE_INDESTA = A OR MAE_DIVISA
= USB

SELECT MAE_CUENTA FROM Nombre de Tabla
WHERE (MAE_INDESTA = B AND MAE_SALDO
> 0) OR MAE_INDESTA = A

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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)



apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Condiciones ANY / SOME
Cuando se especifica ANY o SOME, el resultado es verdadero si la condicin 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 > ANY ( SELECT MAE_SALDO_MEDIO
FROM Nombre Tabla)


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
OTRAS CONDICIONES
BETWEEN: determina si un valor dado se encuentra entre las 2 expresiones dadas.
Siempre la expresin 1 debe ser menor a la expresin 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
expresin. Ej: APELLIDO LIKE PEREZ%. En un where traer todos los apellidos
que comiencen con Perez.







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 travs de un subselect, la tabla seleccionada deber tener la
misma definicin que la tabla a la que se le insertarn los datos.







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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
Las condiciones utilizadas en el Select, son vlidas en la sentencia UPDATE.








apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 vlidas en la sentencia DELETE







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Precompilacin
Cuando se compila un programa que tiene sentencias DB2, el Job de compilacin debe
tener un paso ms, llamado Precompilacin, que debe ejecutarse antes de la
compilacin Cobol.
La Precompilacin transforma las sentencias SQL del programa, a Calls de DB2.
Dichos Calls pueden ser compilados sin error por el compilador Cobol.
La Precompilacin 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.







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 Clusula MEMBER del Bind del Package contiene una lista de los DBRM. Cada
DBRM pertenece a un programa de aplicacin. Cuando se crea un package, se arma la
estructura de control para la ejecucin de las sentencias SQL en el programa
correspondiente. En esta instalacin se arma un package por programa aplicacin.






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 ms 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 lgico




apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
BIND
El BIND es el proceso por el cual se crea un package o un plan
La conexin con DB2 es el resultado de un BIND
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
UNIDAD DE TRABAJO
Se llama unidad de trabajo a un conjunto de operaciones que se ejecutan a partir de una
determinada accin
Una Unidad de Trabajo comienza por el inicio de un proceso o por la terminacin de la
unidad de trabajo previa
Una unidad de trabajo finaliza por una operacin COMMIT, por una operacin
ROLLBACK o por la terminacin del proceso
Las operaciones de commit o rollback afectan slo 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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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
Recin cuando finalice la unidad de trabajo con un COMMIT, estos cambios se vern
reflejados fsicamente en la tablas
Por default, al finalizar un programa batch con DB2, el mismo realiza un commit
automtico
En el caso de un programa on-line el commit automtico se realiza al devolver el control
al CICS
La sintaxis del commit es:
EXEC SQL
COMMIT
END-EXEC
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 jams 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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
INCLUDE
La sentencia INCLUDE incluye el copy dentro del programa
Al ser una sentencia DB2, sta se resuelve en el tiempo de precompilacin
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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
SQLCODE
La respuesta de toda operacin que se ejecute sobre objetos DB2, queda en la
variable SQLCODE
Dentro de los programas, se debe preguntar por el Sqlcode despus de cualquier
operacin, 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.

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
CURSORES
Se utilizan para acceder a TODOS los registros de una Tabla, que cumplan con una
condicin
Un CURSOR es un objeto lgico. 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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
CURSORES FOR UPDATE
Cuando se desea modificar filas, que se encuentran en un cursor, el mismo debe ser
declarado con el parmetro FOR UPDATE
Este parmetro permite modificar el dato de la fila que se ha ledo, o borrar dicha fila de
la Tabla
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin




Ejercitacin


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 alfbeticamente.
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 nmero de documento menor (Claident)
Insertar un nuevo cliente con los siguientes datos: Numclien = 11111111,
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
evalen el resultado de cada operacin.



apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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



apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
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 ARTIGAS ANA MARIA 0
00438856 03 0000024565222 DEMARCO JUAN 1
00444059 02 0000018995565 DER KRIKORIAN BEATRIZ 1
00443741 04 0000013569898 DERECHO LILIANA NORA 1
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Tabla 2 (Relacin 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
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Repaso de instrucciones SQL
Solucin 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)

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin




Estndares


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares 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: Cmara
BG: Cuentas
BQ: Cheques y chequeras
BR: Rutinas de cuentas personales
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Siglas de Aplicaciones
BX: Tratamiento de Incidencias
HA: Contabilidad General
IA: Gestin de correspondencia
LS: Cartera de Efectos
OG: Domiciliaciones General
OM: Domiciliaciones
PE: Personas (Clientes)
TC: Tablas Corporativas
UA: Avales
UG: Prstamos
PM: Marketing y Ventas

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Para la mayora de los componentes (programas, copys, mapas, tablas, etc.) ser:
aaTTxxx v, Donde
aa es el Identificador de la aplicacin
TT vara 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: Mdulo Cobol CICS sin DB2 (algunas aplicaciones lo usan como batch)
7C: Mdulo cobol CICS con DB2
8C: Mdulo Cobol Batch sin DB2
9C: Mdulo Cobol Batch con DB2 (En algunas aplicaciones se utiliza para sin
DB2)
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
TT vara 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 versin, se utiliza en programas. La versin 0 debe ser siempre la versin
correcta y definitiva.



apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares 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 versin
HADT001: Es la tabla nmero 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 Cmara
BGECMIR: Es la commarea de comunicacin con la rutina de cuentas BG4CMIR0
HAM060: Es el mapa de la transaccin de Contabilidad nro. HA60
PENC0660: Copy del rea de entrada a la transaccin PE66




apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Bases, Tablespaces e ndices
Bases de Datos: ALB aa e aa
aa, Cdigo de la aplicacin
e, Entorno del trabajo (V: desarrollo, I: Integracin, P: produccin, Y: Desarrollo
paralelo)
aa, cdigo de la aplicacin
Tablespaces: ALP aa xxx
aa, Cdigo de la aplicacin
xxx, cdigo que identifica a la entidad de DB2 (tabla relacionada)
Tablas: aa DT xxx
aa, Cdigo de la aplicacin
xxx, cdigo que identifica a la entidad de DB2







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Bases, Tablespaces e ndices (Cont.)
Vistas: aa DV xxx y
aa, Cdigo de la aplicacin
xxx, cdigo que identifica a la entidad de DB2
y, nmero de secuencia de las vistas, empezando de 0.
Indices: AL n aa xxx
n, indicador de secuencia de ndices
aa, Cdigo de la aplicacin
xxx, cdigo que identifica a la tabla DB2 a la que pertenece
Cursores AL DC xxx y
xxx, cdigo que identifica a la entidad de DB2
y, nmero de secuencia, empezando de 0






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Planes AL e aa P t
e, cdigo de entorno (V: desarrollo, I: integracin, etc.)
aa, Cdigo de la aplicacin
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, cdigo que identifica a la entidad de DB2
y, nmero de secuencia, empezando de 0






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Archivos
Internamente, podrn tener cualquier nombre
DDNAME
Archivos que no son listados: z v tt xxx 0
z indica la utilizacin (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, cdigo que identifica al elemento
0, constante







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DDNAME (Cont.)
Archivos que son listados: aa tt xxx n
aa indica cdigo de la aplicacin
tt tipo de fichero (LS: listado, DO: Documentacin)
xxx, cdigo que identifica al elemento
n, nmero 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 aplicacin de
cuentas.
NOTA: Los valores de xxx no deben ser necesariamente iguales a los del
programa.






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DSNAME (Estndares Altamira Espaa)
Primer cualificador: MALe
MAL: Constante fija que indica plataforma Altamira en Espaa
e: cdigo del entorno de trabajo (D: Desarrollo, F: Formacin, C: Conversin, T:
Test, P: produccin)
Segundo cualificador: aa [ts] (donde t s son opcionales)
aa: Cdigo de aplicacin
[t, tipo de fichero] (F: fichero no listado, L: listado)
[s., soporte] (C:cinta o cartucho, D: disco)
apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DSNAME (Cont. )
Tercer cualificador: rrrr ssss
rrrr rrrr, indicador reservado para el RACF para niveles de proteccin (por
defecto, en la instalacin, se crean los siguientes: STDR fichero estndar y BAT1
fichero generado por proceso batch)
ssss, indicador reservado al gestor de espacio SMS. Se utilizan los siguientes
STDR fichero de tipo secuencial (estndar)
HIST fichero de tipo histrico, con backup y sin borrado
HILn fichero histrico, con requisitos legales de n aos
NBAS fichero no bsico, con backup y borrado controlado
SBAS fichero bsico, con backup y borrado controlado
SB30 fichero a mantener durante 30 das
SB60 fichero a mantener durante 60 das
CONS fichero constante, que se mantiene siempre
VSAM fichero de tipo VSAM
UNLO fichero procedente de proceso de unload de tabla DB2






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DSNAME (Cont. )
Cuarto cualificador: pppp xxx n
pppp, indicador de fichero para gestin de produccin 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 nmero de generacin
xx, el nmero de versin
No generacionales: i nnnnnn (Opcional)
i, indicador de significado de la numeracin posterior (D: fechas, R: remesas,
S: solicitudes, A: cobros, O: rdenes, X: libre, M: mes AAMM)
nnnnnn, numrico de 4 a 6 posiciones






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Ejemplos DSNAME (Altamira Espaa)
MALI.HA.BAT1HIST.UMERIS01.M0203
Archivo de Integracin, de contabilidad, generado por proceso batch, histrico,
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 mdulo de Cuentas Personales, generado en un proceso
Batch, correspondiente a la DDNAME terminada en SEL0, de una fecha
determinada.







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DSNAME (Estndares BKB)
Primer cualificador: A amb
A: Constante
amb: indica el entorno de trabajo (INT: Integracin, PRO: Produccin, etc.)
Segundo cualificador: aa
aa: Cdigo de aplicacin
Tercer cualificador: S (Constante)

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DSNAME (Cont. Estndares BKB)
Tercer cualificador: rrrr ssss
rrrr rrrr, indicador reservado para el RACF para niveles de proteccin (por
defecto, en la instalacin, se crean los siguientes: STDR fichero estndar y BAT1
fichero generado por proceso batch)
ssss, indicador reservado al gestor de espacio SMS. Se utilizan los siguientes
STDR fichero de tipo secuencial (estndar)
HIST fichero de tipo histrico, con backup y sin borrado
HILn fichero histrico, con requisitos legales de n aos
NBAS fichero no bsico, con backup y borrado controlado
SBAS fichero bsico, con backup y borrado controlado
SB30 fichero a mantener durante 30 das
SB60 fichero a mantener durante 60 das
CONS fichero constante, que se mantiene siempre
VSAM fichero de tipo VSAM
UNLO fichero procedente de proceso de unload de tabla DB2

apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
DSNAME (Cont. Estndares BKB)
Cuarto cualificador:
indicador de fichero para gestin de produccin y libre en desarrollo. Cuando la
relacin 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 nmero de generacin
xx, el nmero de versin
No generacionales: i nnnnnn (Opcional)
i, indicador de significado de la numeracin posterior
nnnnnn, numrico de 4 a 6 posiciones






apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de nomenclatura
Ejemplos DSNAME (Bank Boston)
AINT.BG.S.BAT1NBAS.MOVONLC0.D020302
Archivo de Integracin, de Cuentas Personales, generado por proceso batch no
bsico, 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 Produccin, del mdulo de Cuentas Personales, generado en un
proceso Batch, es un archivo Bsico (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.







apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de Programacin
Estndares funcionales:
Uso de fechas de Proceso:
En On-line , se debe usar a fecha provista por la Arquitectura (CAA-FECHA-
CONT).
En el Batch, se debe usar uno de estos mtodos.
Usar la variable Jobtrac que indica la fecha de proceso.
Usar un archivo de administracin 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.





apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de Programacin
Programacin Estructurada:
No usar GOTO (Slo se admite GOTO a fin de prrafo)
No usar Handle Condition/Aid (Debe usarse el EIBRESP/EIBAID)
No puede haber recursividad de Performs.
No puede haber cdigo muerto (Mximo permitido 40 lneas), pero lo razonable
no debera ser mayor a 20 lneas.

.





apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de Programacin
Consideraciones de Performance en sentencias DB2:
SELECT y CURSORES
Seleccionar campo a campo y slo los campos que sern utilizados
Realizar la seleccin en el orden en que estn 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
condicin NO HACER SELECT COUNT, seleccionar slo 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


apacitacin
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Estndares de Programacin
Consideraciones de Performance en sentencias DB2:
SELECT y CURSORES
En programas batch, si se repiten muchos accesos a tablas, realizar accesos a
tablas de memoria
En programas batch, cuando se debe trabajar con tablas completas de INPUT,
trabajar con los UNLOAD
Si se debe modificar una tabla completa, se debe evaluar en que casos es ms
performante trabajar con UNLOAD de tablas