5/24/2018 Introd Programacion Altamira
1/66
apacitacinAltamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Capacitacin para Desarrolladores
5/24/2018 Introd Programacion Altamira
2/66
apacitacinAltamira
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 lassentencias 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 lasreas temporales de memoria (TS)
5/24/2018 Introd Programacion Altamira
3/66
apacitacinAltamira
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 comotablas (Estructuras lgicas que cuentan con un nmero definido de columnas y un
nmero variable de filas)
5/24/2018 Introd Programacion Altamira
4/66
apacitacinAltamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos
DB2
DATA BASE
STORAGE
GROUP
TABLESPACE
TABLAS
KEYS
VISTAS INDICES
INDEX SPACE
5/24/2018 Introd Programacion Altamira
5/66
apacitacinAltamira
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 dichosIndex spaces se encuentran ndices que pertenecen a tablas que se encuentran en losTablespaces
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
5/24/2018 Introd Programacion Altamira
6/66
apacitacinAltamira
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 columnaalmacene cadenas de caracteres que varan de longitud de una fila a otra, hastauna 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.
5/24/2018 Introd Programacion Altamira
7/66
apacitacinAltamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos
KEYS
Una Clave Primariaes una columna o combinacin de columnas dentro de unatabla, 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.
5/24/2018 Introd Programacion Altamira
8/66
apacitacinAltamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Programacin
Conceptos Bsicos
INDICES
Un ndicees 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 variastablas. 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 lascuales hace referencia dicha vista.
No pueden crearse ndices para una vista.
5/24/2018 Introd Programacion Altamira
9/66
apacitacinAltamira
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
5/24/2018 Introd Programacion Altamira
10/66
apacitacinAltamira
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 podrnseleccionar 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)
5/24/2018 Introd Programacion Altamira
11/66
apacitacinAltamira
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
5/24/2018 Introd Programacion Altamira
12/66
apacitacinAltamira
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 slouna de estas filas.
SELECT DISTINCT (nombre de columna)
FROM nombre de Tabla
5/24/2018 Introd Programacion Altamira
13/66
apacitacinAltamira
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 TablaCuenta 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
5/24/2018 Introd Programacion Altamira
14/66
apacitacinAltamira
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 lacondicin 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
5/24/2018 Introd Programacion Altamira
15/66
apacitacinAltamira
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
5/24/2018 Introd Programacion Altamira
16/66
apacitacinAltamira
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
5/24/2018 Introd Programacion Altamira
17/66
apacitacinAltamira
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
5/24/2018 Introd Programacion Altamira
18/66
apacitacinAltamira
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 condicinWHERE (si no se incluye se calcula el total de la tabla). El campo sumado debe sernumrico.
SELECT SUM(MAE_SALDO_DISPUE)FROM ALTIDBA.BGDTMAE
5/24/2018 Introd Programacion Altamira
19/66
apacitacinAltamira
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 decaracteres
SELECT CODIGAS
FROM ALTIDBA.UGDTGAS
WHERE SUBSTR(CODIGAS,1,1) = 9
5/24/2018 Introd Programacion Altamira
20/66
apacitacinAltamira
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 porlos conectores OR, AND, o combinaciones de stos. Asimismo pueden ser expresadascon signos =, , =, >= O 0) OR MAE_INDESTA = A
5/24/2018 Introd Programacion Altamira
21/66
apacitacinAltamira
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 unSubselect de otra Tabla
SELECT MOV_CUENTA, MOV_IMPORTE FROM ALTIDBA.BGDTMOV
WHERE MOV_CUENTA IN
(SELECT MAE_CUENTA FROM ALTIDBA.BGDTMAEWHERE MAE_INDESTA = A)
5/24/2018 Introd Programacion Altamira
22/66
apacitacinAltamira
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 secumple para AL MENOS UNA Fila de la Tabla a la que se hace subselect.
SELECT * FROM Nombre de TablaWHERE MAE_SALDO_DISPUE > ANY ( SELECT MAE_SALDO_MEDIO
FROM Nombre Tabla)
it i
5/24/2018 Introd Programacion Altamira
23/66
apacitacinAltamira
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 laexpresin. Ej: APELLIDO LIKE PEREZ%. En un where traer todos los apellidosque comiencen con Perez.
it i P i
5/24/2018 Introd Programacion Altamira
24/66
apacitacinAltamira
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 lascolumnas, a las cuales se van insertando en forma correlativa.
Si se inserta a travs de un subselect, la tabla seleccionada deber tener lamisma definicin que la tabla a la que se le insertarn los datos.
apacitacin P i
5/24/2018 Introd Programacion Altamira
25/66
apacitacinAltamira
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 unaTabla
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 P i
5/24/2018 Introd Programacion Altamira
26/66
apacitacinAltamira
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 Programacin
5/24/2018 Introd Programacion Altamira
27/66
apacitacinAltamira
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 lacompilacin 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 sertomado por el compilador Cobol, y
El DBRM (Database Request Module) que contiene las sentencias SQL delprograma original.
El DBRM de los programas es tomado en el proceso de BIND de packages y del plan.
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
28/66
apacitacinAltamira
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. CadaDBRM pertenece a un programa de aplicacin. Cuando se crea un package, se arma laestructura de control para la ejecucin de las sentencias SQL en el programacorrespondiente. En esta instalacin se arma un package por programa aplicacin.
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
29/66
apacitacinAltamira
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 Programacin
5/24/2018 Introd Programacion Altamira
30/66
apacitacinAltamira
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 Programacin
5/24/2018 Introd Programacion Altamira
31/66
pAltamira
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 operacinROLLBACK o por la terminacin del proceso
Las operaciones de commit o rollback afectan slo a los resultados de las operacionesejecutadas en la unidad de trabajo que ellos finalizaron
Estas operaciones confirman o anulan todo lo operado en la unidad de trabajo
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
32/66
pAltamira
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 commitautomtico
En el caso de un programa on-line el commit automtico se realiza al devolver el controlal CICS
La sintaxis del commit es:
EXEC SQL
COMMIT
END-EXEC
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
33/66
pAltamira
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 lasfilas de una tabla (Insert, Update y Delete)
Si un programa con DB2 no tiene commits internos, y se ejecuta un rollback, para elDB2 es como si el programa jams se hubiera ejecutado
Para programas on-line, la sintaxis del Rollback es:
EXEC CICS
SYNCPOINT ROLLBACKEND-EXEC
Para programas batch, la sintaxis del Rollback es:
EXEC SQL
ROLLBACK
END-EXEC
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
34/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
g
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 latomar como existente
La sintaxis de la sentencia es:
EXEC SQL
INCLUDE BGTCMAE
END-EXEC
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
35/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
g
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 correctaWHEN +100
Sentencias correspondientes a fila inexistente
WHEN OTHER
Sentencias correspondientes a error
END-EVALUATE.
apacitacin Programacin
5/24/2018 Introd Programacion Altamira
36/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
g
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 lasentencia CLOSE del mismo
Para utilizar un cursor, se lo debe
Declarar Abrir
Leer cada una de de sus filas
Cerrar
apacitacinAlt i
Programacin
5/24/2018 Introd Programacion Altamira
37/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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
apacitacinAlt i
Programacin
5/24/2018 Introd Programacion Altamira
38/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Ejercitacin
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
39/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 enforma 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 dela tabla que tengan estado en 1 y segape en blanco. Y las instrucciones Cobol queevalen el resultado de cada operacin.
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
40/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 enla 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 tienenproductos distintos de 01 y 02
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
41/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
42/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 0200437519 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 0100444059 17 00220523 T 01
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
43/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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)
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
44/66
Altamira
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
45/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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: CuentasBQ: Cheques y chequeras
BR: Rutinas de cuentas personales
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
46/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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: AvalesUG: Prstamos
PM: Marketing y Ventas
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
47/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 sinDB2)
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
48/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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: MapaNC: 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.
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
49/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 losSEllos. 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
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
50/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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: Desarrolloparalelo)
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
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
51/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 yxxx, cdigo que identifica a la entidad de DB2
y, nmero de secuencia, empezando de 0
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
52/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de nomenclatura
Planes ALe 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
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
53/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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)
vorden secuencial dentro del programa (1-9, A-Z)
tttipo de fichero (DF: VSAM, DQ: Secuencial, DW: de trabajo, DI: intercambioentre aplicaciones o entidades)
xxx,cdigo que identifica al elemento
0,constante
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
54/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de nomenclatura
DDNAME (Cont.)
Archivos que son listados: aa tt xxx n
aa indica cdigo de la aplicacin
tttipo 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 delproceso deber tener valor 0.
Ej:
BGLSISE1
BGLSISE2
Son dos listados generados por el programa BG4CISE0 de la aplicacin decuentas.
NOTA: Los valores de xxx no deben ser necesariamente iguales a los delprograma.
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
55/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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)
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
56/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de nomenclatura
DSNAME (Cont. )
Tercer cualificador: rrrr ssss
rrrr rrrr, indicador reservado para el RACF para niveles de proteccin (pordefecto, 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 siempreVSAM fichero de tipo VSAM
UNLO fichero procedente de proceso de unload de tabla DB2
apacitacinAltamira
Programacin
5/24/2018 Introd Programacion Altamira
57/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 delfichero
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
apacitacinAltamira Programacin
5/24/2018 Introd Programacion Altamira
58/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 seasigna, 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 procesoBatch, correspondiente a la DDNAME terminada en SEL0, de una fechadeterminada.
apacitacinAltamira Programacin
5/24/2018 Introd Programacion Altamira
59/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 aplicacinTercer cualificador: S (Constante)
apacitacinAltamira ProgramacinE t d d l t
5/24/2018 Introd Programacion Altamira
60/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de nomenclatura
DSNAME (Cont. Estndares BKB)
Tercer cualificador: rrrr ssss
rrrr rrrr, indicador reservado para el RACF para niveles de proteccin (pordefecto, 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 siempreVSAM fichero de tipo VSAM
UNLO fichero procedente de proceso de unload de tabla DB2
apacitacinAltamira ProgramacinE t d d l t
5/24/2018 Introd Programacion Altamira
61/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de nomenclatura
DSNAME (Cont. Estndares BKB)
Cuarto cualificador:
indicador de fichero para gestin de produccin y libre en desarrollo. Cuando larelacin es notoria coinciden los cuatro ltimos caracteres con los de laDDNAME del fichero
Quinto cualificador [tttt] (Opcional)
se utiliza para indicar si es salida de un SORT a partir de un archivo de igualnombre
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
apacitacinAltamira ProgramacinEstndares de nomenclatura
5/24/2018 Introd Programacion Altamira
62/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de nomenclatura
Ejemplos DSNAME (Bank Boston)
AINT.BG.S.BAT1NBAS.MOVONLC0.D020302
Archivo de Integracin, de Cuentas Personales, generado por proceso batch nobsico, correspondiente a los movimientos on-line (Coincide con el DDNAME), deuna 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 unproceso Batch, es un archivo Bsico (proviene del maestro de cuentas),correspondiente a la TOTAMAE1 (toda la tabla maestra de cuetas), de una fechadeterminada, ordenado a partir de un archivo de igual nombre.
apacitacinAltamira ProgramacinEstndares de Programacin
5/24/2018 Introd Programacion Altamira
63/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 pormedio de rutinas de servicio. No se debe acceder directamente a los datos deotros sistemas salvo que sea autorizado por cuestiones de Performance.
apacitacinAltamira ProgramacinEstndares de Programacin
5/24/2018 Introd Programacion Altamira
64/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
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 razonableno debera ser mayor a 20 lneas.
.
apacitacinAltamira ProgramacinEstndares de Programacin
5/24/2018 Introd Programacion Altamira
65/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de Programacin
Consideraciones de Performance en sentencias DB2:
SELECT y CURSORESSeleccionar 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 tablasgrandes es fundamental.
Para verificar que en la tabla exista al menos un registro que cumpla unacondicin NO HACER SELECT COUNT, seleccionar slo el primer campo delndice que se est utilizando. Ej:
SELECT NUMERO
INTO :CGT50011-NUMERO
FROM VGT5001_DESCOD
WHERE NUMERO = :CGT50011-NUMERO
AND CODIGO = :CGT50011-CODIGO
apacitacinAltamira ProgramacinEstndares de Programacin
5/24/2018 Introd Programacion Altamira
66/66
Confidencial. No debe ser divulgado ni reproducido sin autorizacin previa, por escrito, de Accenture.
Estndares de Programacin
Consideraciones de Performance en sentencias DB2:
SELECT y CURSORESEn 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 msperformante trabajar con UNLOAD de tablas