Introd Programacion Altamira

  • Upload
    edassac

  • View
    101

  • Download
    11

Embed Size (px)

Citation preview

  • 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