Sei sulla pagina 1di 98

FABRICA DE SOFTWARE

Curso de formación
____________________________________________________________________________________________________

CURSO DE HERRAMIENTAS DE
MAINFRAME

GLOKAL 2010

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 1 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

1 CAPITULO I ................................................................................................................... 5

1.1 MAINFRAME Y HERRAMIENTAS .................................................................................................. 5


1.2 RESEÑA HISTORICA DE LOS MAINFRAME ................................................................................ 5
1.3 GENERALIDADES DE MAINFRAME. ........................................................................................................ 6
1.3.1 ¿QUÉ ES MAINFRAME?........................................................................................................................... 6
1.4 OBJETIVOS DEL CURSO. .......................................................................................................................... 6
1.5 ALCANCE DEL CURSO. ............................................................................................................................ 6

2 CAPITULO II .................................................................................................................. 7

2.1 LAS COMPUTADORAS....................................................................................................................... 7


2.2 CLASIFICACIÓN DE LAS COMPUTADORAS. ............................................................................................ 7
2.3 ¿QUÉ ES UN SISTEMA OPERATIVO? ........................................................................................................ 9
2.3.1 COMO ESTA CONFORMADO UN SISTEMA OPERATIVO. ......................................................................... 10
2.3.2 CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS.................................................................................. 11
2.4 SISTEMA OPERATIVO MVS(MULTIPLE VIRTUAL STORAGE). .................................................. 13
2.4.1 USUARIO GESTOR DE TRABAJOS. ........................................................................................................ 13
2.4.2 NÚCLEO ............................................................................................................................................... 13
2.5 DBMS DEFINICIÓN (DATABASE MANAGEMENT SYSTEM). ............................................... 14
2.5.1 DBMS FUNIONES. ............................................................................................................................ 14
2.5.2 DBMS SQL (STRUCTURED QUERY LANGUAGE.) .................................................................... 15
2.6 SNA (SYSTEMS NETWORK ARCHITECTURE). ......................................................................... 15
2.7 CICS (CUSTOMER INFORMATION CONTROL SYSTEM). ..................................................... 15
2.8 T . S . O ISPF ........................................................................................................................................ 16
2.8.1 TECLAS DE FUNCION. ....................................................................................................................... 16
2.8.2 COMANDOS DE LÌNEA. ....................................................................................................................... 16
2.8.3 COMANDOS DE LÍNEA DE BLOQUE. ............................................................................................... 17
2.8.4 COMANDOS GENERALES. ................................................................................................................ 17
2.8.5 COMANDOS FIND Y CHANGE. ......................................................................................................... 18
2.8.6 MANDATOS BÁSICOS DE TSO. ........................................................................................................ 19
2.8.7 CONSIDERACIONES. ............................................................................................................................. 19
2.8.8 ENVÍO DE ARCHIVOS. ....................................................................................................................... 20

3 CAPITULO III ............................................................................................................... 21

3.1 JOB CONTROL LENGUAJE. ........................................................................................................... 21


3.1.1 ESTRUCTURA CORRIENTE DE CONTROL. ............................................................................................. 21
3.1.2 SENTENCIAS DE CONTROL DE TRABAJOS............................................................................................. 21
3.1.3 SENTENCIAS DE COMANDOS. ............................................................................................................... 21
3.1.4 SINTAXIS DE LAS SENTENCIAS DE CONTROL. ...................................................................................... 22
3.1.4.1 Sentencias de JOB. ........................................................................................................................... 23
3.1.4.2 Parámetros POSICIONALES. ......................................................................................................... 23
3.1.4.3 Parámetros de palabra CLAVE. ....................................................................................................... 23
3.1.4.4 Sentencia EXEC. .............................................................................................................................. 24
3.1.4.5 Parámetros en el EXEC .................................................................................................................... 24
3.1.4.6 PGM. ................................................................................................................................................ 24
3.1.4.7 PROC. .............................................................................................................................................. 25
3.1.4.8 ACCT. .............................................................................................................................................. 25
3.1.4.9 ADDRSPC. ...................................................................................................................................... 25
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 2 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3.1.4.10 COND. ........................................................................................................................................... 25


3.1.4.11 DYNAMNBR. ............................................................................................................................... 25
3.1.4.12 PARM. ........................................................................................................................................... 26
3.1.4.13 RD. ................................................................................................................................................. 26
3.1.4.14 REGION. ........................................................................................................................................ 26
3.1.4.15 TIME. ............................................................................................................................................. 26
3.1.4.16 Sentencia DD (DATA DEFINITION). ........................................................................................ 26
3.1.5 PARÁMETROS EN LAS SENTENCIAS ................................................................................................. 26
3.1.6 SENTENCIAS DD CON NOMBRES ESPECIALES. ............................................................................. 33
3.1.7 CONCATENACIÓN DE SENTENCIAS DD. .......................................................................................... 34
3.1.8 SENTENCIAS DE CONTROL DE COMANDOS. ................................................................................. 34
3.1.8.1 S O R T............................................................................................................................................. 34
3.1.8.2 El programa producto “SORT/MERGE” ......................................................................................... 35
3.1.9 SENTENCIAS DE JCL. ........................................................................................................................... 35
3.1.9.1 Sentencias de CONTROL PARA EL SORT. .................................................................................. 36
3.1.9.2 Sentencia SORT. .............................................................................................................................. 36
3.1.9.3 Formato general. .............................................................................................................................. 37
3.1.10 UTILITY ........................................................................................................................................... 41
3.1.11 IEFBR14. .......................................................................................................................................... 42
3.1.12 IEBCOPY. ......................................................................................................................................... 42
3.1.13 HMBLIST. ........................................................................................................................................ 43
3.1.14 IEBGENER ....................................................................................................................................... 43
3.1.15 IEBPTPCH ........................................................................................................................................ 43
3.1.16 IEBCOMPR. ..................................................................................................................................... 46
3.1.17 EJEMPLOS DE CADENAS DE JCLS. ..................................................................................................... 47

4 CAPITULO IV............................................................................................................... 53

4.1 BASES DE DATOS. ............................................................................................................................. 53


4.1.1 CONCEPTOS BÁSICOS........................................................................................................................... 53
4.1.2 TABLAS................................................................................................................................................ 53
4.1.3 ELEMENTOS DE LAS BASES DE DATOS RELACIONALES. ...................................................................... 53
4.1.4 MECANISMOS DE SEGURIDAD DE LOS DATOS. ..................................................................................... 54
4.1.5 INSTRUCCIONES BÁSICAS. ................................................................................................................... 54
4.1.5.1 Cláusulas y consultas ....................................................................................................................... 55
4.1.6 ESTRUCTURA DE UNA SENTENCIA SQL............................................................................................... 55
4.1.7 COMPONENTES SINTÁCTICOS. ........................................................................................................ 56
4.1.7.1 Cláusula WHERE............................................................................................................................. 57
4.1.7.2 UPDATE CON SELECT. ................................................................................................................ 57
4.1.7.3 LA SENTECIA SELECT................................................................................................................. 57
4.1.7.4 FROM . ............................................................................................................................................ 58
4.1.7.5 WHERE............................................................................................................................................ 58
4.1.7.6 Operadores de comparación y lógicos.............................................................................................. 60
4.1.7.7 Operadores de comparación de cadenas de caracteres. .................................................................... 61
4.1.7.8 Null y Not Null................................................................................................................................. 61
4.1.7.9 Operador IN ..................................................................................................................................... 61
4.1.7.10 Operador BETWEEN..................................................................................................................... 62
4.1.7.11 Operadores AND y OR combinados .............................................................................................. 62
4.1.7.12 Operador UNIÓN. .......................................................................................................................... 63
4.1.7.13 Operador INTERSECT. ................................................................................................................. 63
4.1.7.14 Operador MINUS. .......................................................................................................................... 64
4.1.7.15 SUBCONSULTAS. ....................................................................................................................... 64
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 3 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

4.1.8 CONDICIONES DE BÚSQUEDA EN SUBCONSULTAS ............................................................................... 64


4.1.9 MANIPULACIÓN DE DATOS. ................................................................................................................. 67

5 CAPITULO V ............................................................................................................... 69

5.1 ARQUITECTURA. .............................................................................................................................. 69


5.1.1 CARACTERÍSTICAS DE ARQUITECTURA. .............................................................................................. 69
5.1.2 FUNCIONES DE ARQUITECTURA. .......................................................................................................... 69
5.1.3 ESQUEMA GENERAL DE ARQUITECTURA. ............................................................................................ 70
5.1.4 ESQUEMA DETALLADO DE ARQUITECTURA. ........................................................................................ 70
5.1.5 APLICACIONES. .................................................................................................................................... 71
5.1.6 LISTADO DE MANTENIMIENTO. ............................................................................................................ 73
5.1.6.1 Parámetros:....................................................................................................................................... 73
5.1.6.2 Listado de transacciones. parámetros: .............................................................................................. 75
5.1.6.3 Mantenimiento de transacciones. parámetros. ................................................................................. 76
5.1.7 FLUJO DE UNA TRANSACCIÓN. ............................................................................................................ 81
5.2 CHANGE MAN. ................................................................................................................................... 81
5.2.1 CONCEPTOS BÁSICOS. ................................................................................................................... 81
5.2.2 QUE ES CHANGEMAN? ......................................................................................................................... 81
5.2.3 QUE ES UN PAQUETE DE CAMBIOS. ..................................................................................................... 82
5.2.3.1 Preparación y creación de un paquete de cambios. .......................................................................... 83
5.3 LOS CONTROLS. ............................................................................................................................... 94
5.3.1.1 IOA. .................................................................................................................................................. 94
5.3.2 CONTROL D/V. ................................................................................................................................. 95
5.3.3 CONTROL M...................................................................................................................................... 95
5.3.3.1 JOB SHCEDULE DEF. ................................................................................................................... 95
5.3.4 ACTIVE ENV. .................................................................................................................................... 97

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 4 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

1 CAPITULO I
1.1 MAINFRAME Y HERRAMIENTAS

1.2 RESEÑA HISTORICA DE LOS MAINFRAME


En los años 50, los pocos ordenadores que existían tenían un diseño de un padre y una
madre, de tal forma que programar para un mainframe ENIAC no tenía absolutamente
nada que ver con el UNIVAC, aunque ambos tenían una arquitectura basada en la
arquitectura de John Von Newmann, el padre de la informática, que se basaba en una
arquitectura de memoria principal de datos e instrucciones y una serie de buses de datos,
de entrada y Salida, y de Control. Por aquel entonces además, los ordenadores costaban
muchos trillones de dolares, con lo que sólo se lo podían costear gobiernos y únicamente
para usos militares.

Estos ordenadores se programaban para un propósito específico y su reprogramación era


casi una utopía por el altísimo coste derivado de cambiar cables (si, por aquel entonces
muchos programas funcionaban conectado y desconectando cables en paneles con
enchufes, al estilo de las tradicionales operadoras de teléfonos) y reestructurar la lógica
de la máquina para realizar otros propósitos era también un cristo.
Pero no fue hasta el año 1964 y con la llegada del transistor y por lo tanto, el destierro
final de la válvula de vacío (elemento tosco, que consumía grandísimas cantidades de
energía), cuando IBM por primera vez en la Historia de los ordenadores, creo un antes y
un después: el Mainframe IBM System/360.

Este sistema era el primer ordenador de propósito general en el que se podían cargar
programas de muy diversa índole, y además su diseño modular sentó las bases de la
informática tal y como la conocemos. Por propósito general, se entiende que puedes
correr cualquier tipo de programa, ya sea una generación de nominas, una gestión de
almacenes o jugar al space invaders, sin cambiar absolutamente nada de hardware, solo
cargando el programa adecuado, desde tarjeta perforada o cinta magnética.

A partir de esa fecha, y con la llegada el microprocesador, los costes se redujeron


muchísimo y los mainframes empezaron a comercializarse a nivel de empresa, donde
todos los procesos de producción Batch como nóminas, control de almacenes, etc, se
volvieron muy eficaces y por lo tanto, ahorraron ingentes cantidades de dinero y tiempo en
cosas que antes se hacían de manera manual, por lo que el coste a pesar de ser
desorbitado, las empresas lo pagaban con sumo gusto porque para ellos les ahorraba
muchos miles de millones al año.

En los año 70-80, a IBM le salieron muchos competidores, entre los que cabe destacar
Honeywell-Bull, Amdahl, Hitachi Data Systems, Control Data Corp, Fujitsu, etc, en los que
cada uno vendía diferentes tipos de mainframe pero al final todos tenían la misma
arquitectura basada en las máquinas de IBM. Cada una tenía su propio sistema operativo,
su multiprogramación y su memoria virtual, pero vamos, funcionaban prácticamente de la
misma manera.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 5 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

1.3 Generalidades de mainframe.

Un mainframe ha sido tradicionalmente un ordenador pensado para el trabajo de proceso


por lotes o BATCH. Este sistema se caracteriza en el tratamiento de grandísimos
volúmenes de información, teniendo una entrada de datos, un proceso interno, y una
salida de datos.
Un típico proceso BATCH en un banco es por ejemplo, el cierre diario de cuentas, en el
que el sistema va leyendo los ficheros de cuentas bancarias, lee el fichero de
movimientos (Datos de entrada) y los procesa para actualizar el saldo y plasmar esos
movimientos en la cuenta, cuya salida, puede ser el propio fichero de cuentas actualizado,
y unos extractos que te llegan a casa por correo.

1.3.1 ¿Qué es mainframe?


La nomenclatura 'Mainframe' es, por un lado inglesa y por otro lado bastante antigua. Se
denominan 'Mainframe' los grandes ordenadores de las empresas en los cuales solían, y
suelen, ejecutarse los sistemas con mayor volumen de datos. El mayor proveedor de
estos ordenadores es IBM y el lenguaje de programación más extendido común es el
COBOL.

1.4 Objetivos del curso.


Conocer mainframe con sus conceptos y características generales, sistema operativo
MVS, Y Sus subsistemas que lo integran como DB2, CICS, CHANGEMAN Y CONTROLS,

Conocer y Aprender la interacción de estas herramientas para la programación en


lenguaje cobol,

Aprender a manejar jcl, sort utilidades y herramientas de automatización.

Conocer los criterios que favorecen la calidad final de los programas en aspectos como:
legibilidad, eficiencia, fiabilidad, documentación, etc.

1.5 Alcance del curso.


Conceptos de mainframe, Clasificación de las computadoras, ventajas, entornos,
aplicaciones comunes, sistema operativo MVS, clasificación de los sistemas operativos,
DMS Y sus funciones, SNA, CICS, TSO y sus características y funciones, job control
languaje, estructura, sentencias y parámetros, utilidades, bases de datos, conceptos
básico, instrucciones básicas, cláusulas y consultas, operadores, estructura SQL,
componentes sintácticos, arquitectura, funciones, componentes y aplicaciones, formatos,
operaciones y aplicaciones, parámetros, changeman, conceptos básicos, promoción de
paquetes por changeman, controls, funciones primarias, schedules, tablas y mallas y
otros.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 6 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

2 CAPITULO II
2.1 LAS COMPUTADORAS.
Las computadoras son un invento reciente que se puede decir que aun no ha cumplido
cien años de existencia desde su primera generación. Sin embargo en un invento que ha
venido a revolucionar la forma en que trabajamos, nosentretenemos y se ha convertido
en un aparato esencial de nuestra vida diaria.

Todas las computadoras tienen los siguientes componentes básicos

2.2 Clasificación de las computadoras.


Actualmente las computadoras se clasifican por su tamaño, capacidad y velocidad.

Supercomputadoras
Una supercomputadora es el tipo de computadora más potente y más rápida que existe
en un momento dado.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 7 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Estas máquinas están diseñadas para procesar enormes cantidades de información en


poco tiempo y son dedicadas a una tarea específica.

Macrocomputadoras.
Las macrocomputadoras son también conocidas como Los mainframes son grandes,
rápidos con sistemas que son capaces de controlar cientos de usuarios simultáneamente,
así como cientos de dispositivos de entrada y salida.
De alguna forma los mainframes son más poderosos que las supercomputadoras porque
soportan más programas simultáneamente. Pero las supercomputadoras pueden ejecutar
un sólo programa más rápido que
un mainframe.

Sus aplicaciones más comunes y su estructura se aprecian en la figura.

Para el caso de nuestra formación podemos apreciar como puede trabajar un Mainframe y
sus entornos.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 8 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Minicomputadoras.
Las Minicomputadoras, en tamaño y poder de procesamiento, se encuentran entre los
mainframes y las estaciones de trabajo. En general, una minicomputadora, es un sistema
multiproceso (varios procesos en paralelo) capaz de soportar n usuarios
simultáneamente.
Actualmente se usan para almacenar grandes bases de datos, automatización industrial y
aplicaciones multiusuario.

Microcomputadoras
Las microcomputadoras o Computadoras Personales (PC´s) tuvieron su origen con la
creación de los microprocesadores.
Un microprocesador es "una computadora en un chic", o sea un circuito integrado
independiente.

Las PC´s.
Son computadoras para uso personal y relativamente son baratas y actualmente se
encuentran en las oficinas, escuelas y hogares.
El término PC se deriva de que para el año de 1981 , IBM®, sacó a la venta su
modelo"IBM PC", la cual se convirtió en un tipo de computadora ideal para uso "personal",
de ahí que el término "PC" se estandarizó y los clones que sacaron posteriormente otras
empresas fueron llamados "PC y compatibles", usando procesadores del mismo tipo que
las IBM , pero a un costo menor y pudiendo ejecutar el mismo tipo de programas.

Las computadoras funcionan por medio de los sistemas operativos.

2.3 ¿Qué es un sistema operativo?


Un sistema operativo es un conjunto de programas de computadora diseñados
especialmente para cubrir los siguientes objetivos:
Servir como interfaz entre el equipo físico (hardware) de una computadora y el usuario,
con el fin de presentar una "cara" más sencilla y amistosa al mismo, y Optimar los
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 9 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

recursos (tanto de software como de hardware) con que cuenta una computadora y hacer
utilizable ésta última.

2.3.1 Como esta conformado un sistema operativo.


Sistema operativo está conformado básicamente por cuatro módulos:
Núcleo o Kernel.
Administrador de memoria.
Sistema de entrada/salida.
Administrador de archivos.
A veces se considera un quinto módulo: el intérprete de comandos o intérprete de
instrucciones, el cual se encarga de "traducir" las órdenes que el usuario ingresa
mediante el teclado u otros dispositivos a un "lenguaje" que la máquina pueda entender.

Núcleo
Es el módulo de más bajo nivel de un sistema operativo, pues descansa directamente
sobre el hardware de la computadora. Entre las tareas que desempeña se incluyen el
manejo de las interrupciones, la asignación de trabajo al procesador y el proporcionar una
vía de comunicación entre los distintos programas. En general, el núcleo se encarga de
controlar el resto de los módulos y sincronizar su ejecución. El núcleo contiene un
submódulo denominado "planificador", el cual se encarga de asignar tiempo del
procesador a los programas, de acuerdo a una cierta política de planificación que varía de
un sistema operativo a otro. Normalmente se utiliza una jerarquía de prioridades que
determinan cómo se asignará el tiempo del CPU a cada programa. Una política de
planificación muy común en los sistemas de multiprogramación y multiproceso son las
técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto
intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo
de tiempo, vuelve a la cola de programas.

Administrador de memoria
Este módulo se encarga de asignar ciertas porciones de la memoria principal (RAM) a los
diferentes programas o partes de los programas que la necesiten, mientras el resto de los
datos y los programas se mantienen en los dispositivos de almacenamiento masivo. De
este modo, cuando se asigna una parte de la memoria principal se hace de una forma
estructurada, siguiendo un determinado orden. La forma más común de administración de
la memoria supone crear una memoria virtual; con este sistema, la memoria de la
computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en
realidad es.

Sistema de entrada/salida (E/S)


Este componente presenta al usuario la E/S de datos como una cuestión independiente
del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas
características y son tratados de la misma forma, siendo el sistema operativo el
encargado de atender las particularidades de cada uno de ellos (como su velocidad de
operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers".
Los datos de salida se almacenan de forma temporal en una cola situada en un
dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 10 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

requerido se encuentre libre; de este modo se evita que un programa quede retenido
porque el periférico no esté disponible. El sistema operativo dispone de llamadas para
añadir y eliminar archivos del spool.

Administrador de archivos
Se encarga de mantener la estructura de los datos y los programas del sistema y de los
diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los
medios de almacenamiento masivo. El administrador de archivos también supervisa la
creación, actualización y eliminación de los archivos, manteniendo un directorio con todos
los archivos que existen en el sistema en cada momento y coopera con el módulo
administrador de memoria durante las transferencias de datos desde y hacia la memoria
principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la
memoria principal y los medios de almacenamiento masivo para mantener la estructura de
la misma.
Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos
propósitos. Algunos contienen información que puede ser compartida. Otros son de
carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de
privilegios de acceso, que indican la extensión con la que se puede compartir la
información contenida en el archivo. El sistema operativo comprueba que estos privilegios
no sean violados.

2.3.2 Clasificación de los sistemas operativos.

Debido a la evolución de los sistemas operativos fue necesario realizar una clasificación;
considerando las diferencias existentes entre sus componentes los podemos clasificar en:
Sistemas operativos por lotes, Sistemas operativos multiprogramación, Sistemas
operativos multiusuario, Sistemas operativos de tiempo compartido, Sistemas operativos
de tiempo real.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 11 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Sistemas operativos por lotes


Los sistemas operativos por lotes requieren que la información esté reunida en bloque o
"lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el
orden de admisión, según el modelo de "primero en llegar primero en ser atendido". En
estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el
sistema operativo, y la otra se usa para cargar programas transitorios para su ejecución.
Cuando termina la ejecución de un programa se carga un nuevo programa en la misma
zona de memoria.

Sistemas operativos multiprogramación


Los sistemas de multiprogramación son capaces de soportar dos o más procesos
concurrentes múltiples, permiten que residan al mismo tiempo en la memoria primaria las
instrucciones y los datos procedentes de dos o más procesos. Estos sistemas implican la
operación de multiproceso, para el manejo de la información. Se caracterizan
principalmente por un gran número de programas activos simultáneamente que compiten
por los recursos del sistema, como el procesador, la memoria , y los "dispositivos de E/S".
Estos sistemas monitorean el estado de todos los programas activos y recursos del
sistema.

Sistemas operativos multiusuario


Los sistemas operativos multiusuario permiten acceder simultáneamente a un sistema de
computadoras a través de dos o más terminales. Este tipo de sistema operativo es
fundamental en el manejo de redes de computadoras actualmente.

Sistemas operativos de tiempo compartido


Los sistemas operativos de tiempo compartido tratan de proporcionar un reparto equitativo
de los recursos comunes para dar la impresión a los usuarios de que poseen una
computadora independiente. En estos sistemas el administrador de memoria proporciona
aislamiento y protección de los programas, ya que generalmente no tienen necesidad de
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 12 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

comunicarse entre ellos. El control de E/S se encarga de proporcionar o retirar la


asignación a los dispositivos de forma que se preserve la integridad del sistema y se
proporcione servicio a todos los usuarios. El administrador de archivos proporciona
protección y control en el acceso de la información, dada la posibilidad de concurrencia y
conflictos al tratar de acceder a los archivos.

Sistemas operativos de tiempo real


Estos sistemas tienen como objetivo proporcionar tiempos más rápidos de respuesta,
procesar la información sin tiempos muertos. En estos sistemas el administrador de
memoria es relativamente menos solicitado debido a que muchos procesos residen
permanentemente en memoria. El administrador de archivos se encuentra normalmente
en grandes sistemas de tiempo real y su objetivo principal es manejar la velocidad de
acceso, más que la utilización eficaz del almacenamiento secundario.

Después de haber visto la clasificación de los sistemas operativos nos detenemos un


poco en el sistema operativo que nos interesa.

2.4 Sistema operativo MVS(MULTIPLE VIRTUAL STORAGE).

es el sistema operativo de la IBM de quien está instalado en la mayoría de computadoras


de servidor grandes del mundo, el MVS es un sistema de productos básicos y un sistema
de productos opcionales. Esto permite que un cliente elija el sistema de funciones que
necesitan y que excluyen el resto. En la práctica, la mayoría de los clientes utilizan
probablemente casi todas las funciones.

Tiene una arquitectura de 2 niveles: Núcleo y Usuario.

2.4.1 Usuario Gestor de trabajos.


Es como un shell mejorado que interpreta las ordenes del operador, lee los datos de
entrada del trabajo y los escribe en los periféricos y asigna los dispositivos de E/S a un
trabajo.

Interpreta el lenguaje JCL (Job Control Language).

2.4.2 Núcleo
Consta de una serie de módulos o subsistemas, que componen todo este sistema
operativo.

Distribuidor: Administrador de procesadores. Su misión es la de recorrer la cola de


tareas listas y planificarla. Planifica los procesos.

Tratamiento de interrupciones

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 13 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Gestión de Tareas Para MVS los procesos se llaman tareas. Esta parte crea,
elimina y cambia propiedades de las tareas.

Gestión de Programas Módulo controlado por las ordenes JCL que da respuesta a
los usuarios cuando se quiere compilar o ejecutar un programa.

Gestión de Almacenamiento Maneja la memoria virtual.

Métodos de Acceso Interfaz entre el programa de aplicación y el supervisor de E/S.

Supervisor de E/S lleva a cabo la operación de E/S.

Gestión de recursos del Sistema Es un módulo que optimiza el rendimiento de la


CPU y de los recursos ofreciendo al administrador estadísticas de uso para que
este mejore el

Proporciona una plataforma común para la ejecución de aplicaciones


específicamente diseñadas para el sistema operativo.

Responsable del esquema de seguridad, previniendo el acceso de usuarios no


autorizados.

Bajo el sistema operativo MVS corren otros subsistemas que componen la infraestructura
para que puedan correr o ejecutarse todas las aplicaciones financieras, como DB2, CICS,
TSO, programas producto etc.

2.5 DBMS DEFINICIÓN (DATABASE MANAGEMENT SYSTEM).

Un DBMS es sustancialmente un software que se coloca entre el usuario y los datos como
tales. Gracias a este estrato intermedio el usuario y las aplicaciones no acceden a los
datos tal y como se memorizan efectivamente, es decir a su representación física, sino
que se ve sólo una representación lógica.

Sistema que gestiona todas las solicitudes de acceso a las bases de datos.
El DBMS más comúnmente utilizado en un mainframe es DB2 debido a que fue
desarrollado por IBM..

2.5.1 DBMS FUNIONES.


Permitir el acceso a los datos a través de un esquema conceptual, en vez de hacerlo a
través de un esquema físico.

Compartir e integrar los datos entre aplicaciones diferentes.


Controlar el acceso compartido a los datos.
Garantizar la seguridad e integridad de los datos.
Administra las peticiones provenientes de usuarios.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 14 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Controla la concurrencia en el acceso a las bases de datos.


Garantiza la integridad referencial de la información.

2.5.2 DBMS SQL (STRUCTURED QUERY LANGUAGE.)


Lenguaje para manipular y definir la base de datos, Existen dos ramas:

DDL: Data Definition Language.


Permite definir todos los atributos de una base de datos.
Comandos: create, alter, drop, etc.

DML: Data Manipulation Language.


Permite realizar altas, bajas y modificaciones de información, comúnmente se utiliza
dentro de programas para accesar la información, Comandos: select, insert, delete,
update, commit, rollback, etc.

2.6 SNA (SYSTEMS NETWORK ARCHITECTURE).

Protocolo de comunicaciones para redes que brinda seguridad a la interacción entre las
terminales y el host.

Identifica cualquier tipo de error y genera la respuesta adecuada.


Manejo automático de cierto tipo de errores (fallos en la línea telefónica).
Registro y reporte de errores lógicos (software, configuración de tablas).
Existen bloques de control intermedios que regulan la comunicación entre las terminales y
el host.
Una terminal y un host no pueden intercambiar información sin antes establecer una
sesión.
Requiere de un equipo de soporte técnico altamente capacitado para responder a los
problemas reportados por el sistema

2.7 CICS (CUSTOMER INFORMATION CONTROL SYSTEM).

Monitor transaccional: Programa que monitorea el paso de una transacción entre etapas
subsecuentes y asegura su ejecución completa.

Permite a los programadores:

Desarrollar pantallas genéricas sin importar el terminal utilizado.

Definir las entidades on-line necesarias para las aplicaciones (transacciones, programas,
mapas).
Realiza el balance de cargas de trabajo al distribuir el procesamiento a lo ancho de una
red de computadoras, evitando la sobrecarga de un dispositivo específico.
Permite la distribución del acceso a las aplicaciones.
Brinda seguridad de acceso a las transacciones (RACF).
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 15 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Permite detectar las horas pico para cada tipo de transacción.

2.8 T . S . O ISPF
Es una parte del Sistema Operativo que permite a los usuarios trabajar interactivamente
con el sistema (y muchas mas cosas, planificadores de trabajos, editores de programas,
de ficheros, de tablas db2, definición de usuarios y un sinfin de cosas).

2.8.1 Teclas de FUNCION.

PF1 / PF13 - HELP PF7 / PF19 - UP


PF2 / PF14 - SPLIT PF8 / PF20 - DOWN
PF3 / PF15 - END PF9 / PF21 - SWAPT
PF4 / PF16 - RETURN PF10/ PF22 - LEFT
PF5 / PF17 - RFIND PF11/ PF23 - RIGHT
PF6 / PF18 - RCHANGE PF12/ PF24 – HOME

PA1 - Provoca una señal de 'ATTENTION' a comandos ejecutados bajo TSO.

PA2 - Sirve para repetir el envío del ultimo pantallazo.

2.8.2 Comandos de LÌNEA.


COMANDO NOMBRE DESCRIPCIÓN
I
D
R
INSERTAR Genera una
línea detrás
de la actual.
DELETE Borra la
línea actual.
REPETIR Duplica la
línea actual.
COPIAR Identifica
una línea a
copiar.
MOVER Identifica Desplaza columnas hacia la
una línea a izquierda, siempre que no haya
mover. truncamiento.
DESPUES Copia o Desplaza columnas hacia la
DE mueve derecha, siempre que no haya
detrás de truncamiento.
esta línea.
ANTES DE Copia o Desplaza columnas hacia la
mueve izquierda, sin verificar
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 16 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

delante de truncamiento.
esta línea.
) Desplaza columnas hacia la
derecha, sin verificar truncamiento.
X EXCLUIR Impide la visualización de una
línea.
S Anula el efecto del comando X.
F Hace aparecer la primera línea de
un bloque excluido.
L Hace aparecer la ultima línea de un
bloque excluido.
COLS Hace aparecer una línea con la
numeración de las columnas.
MASK Hace aparecer una línea sobre la
que tecleamos lo que queremos
que aparezca al dar el comando "I".
TABS TABULACI "*" por hardware; "-" por software.
ONES
BOUNS Hace aparecer una línea sobre la
cual aparecen las columnas entre
las que surtirán efecto los
comandos de desplazamiento y los
comandos "CHANGE" y "FIND".

2.8.3 Comandos de LÍNEA DE BLOQUE.

DD MM ((
RR << ))
CC >> XX

Comandos de línea repetidos "n" veces.

In <n )n
Dn <<n ))n
Rn >n Xn
RRn >>n Sn
Cn (n Fn
Mn ((n Ln

2.8.4 Comandos GENERALES.


COMANDO DESCRIPCIÓN
L „nº línea‟ La línea pedida aparece la primera de la
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 17 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

pantalla.
NUMBER Indica que las líneas del texto van
numeradas.
NONUM Indica que las líneas del texto no llevan
numeración.
RENUM Renumera el texto editado.
SUBMIT Pone el texto editado en colas de entrada
del ordenador.
SAVE Salva el texto editado, pero sin salirse del
editor.
CANCEL Sale del modo EDIT sin salvar el texto
editado.
RESET Restaura la pantalla, anulando los efectos
de los comandos "X", "MASK", "BOUNDS",
"TABS", y "COLS".
CREATE Crea un nuevo miembro en esa librería con
'nombre' el nombre "nombre", cuyo contenido será un
grupo formado con comandos "CC", o "MM".
COPY Inserta detrás de ("A") o delante de ("B") de
'nombre' una línea determinada el miembro "nombre"
de la librería en vigor.
MOVE Inserta detrás de ("A") o delante de ("B") de
'nombre' una línea determinada el miembro "nombre"
de la librería en vigor. Además borra el
miembro "nombre" una vez copiado.
NULLS Suprime la marca de fin de campo al final de
cada línea de la pantalla, con lo que permite
utilizar la tecla de inserción.
NONULLS Anula el efecto de NULLS.
TABS Activa la tabulación por hardware.
NOTABS Inhibe la tabulación por hardware.

2.8.5 Comandos FIND Y CHANGE.

F serie-1
|NEXT| |CHARS| |X| |COL-1| |COL-2|
|ALL| |PREFIX| |NX|
|FIRST| |PRE|
|LAST| |SUFFIX|
|PREV| |SUF|
|WORD|

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 18 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

C serie-1 serie-2

|NEXT| |CHARS| |X| |COL-1| |COL-2| |ALL| |PREFIX|


|NX|
|FIRST| |PRE|
|LAST| |SUFFIX|
|PREV| |SUF|
|WORD|

NEXT: Búsqueda a partir de donde este el cursor.


LAST: Búsqueda a partir de la ultima línea editada.
FIRST: Búsqueda desde el principio del texto editado.
PREV: Búsqueda hacia atrás desde donde esta el cursor.
ALL: Se piden todas las ocurrencias buscadas.
PREFIX o PRE: La serie-1 debe ser el prefijo de una palabra.
SUFFIX o SUF: La serie-1 debe ser el sufijo de una palabra.
WORD: La serie-1 debe ser una palabra.
X: Sólo debe buscarse en líneas que estén en grupos "XX".
NX: Sólo deben buscarse en líneas que no estén en grupos "XX".
COL-1 y COL-2: Sólo debe buscarse entre las columnas "col-1" y "col-2".

2.8.6 Mandatos BÁSICOS DE TSO.


Son comandos de ejecución para visualizar, ejecutar, cancelar o realizar diferentes tipos
de actividades propias de operaron.

SUBMIT: Se utiliza para lanzar un trabajo a ejecución, como si se hubiera leído desde una
lectora de fichas.
STATUS: Sirve para averiguar que es lo que se esta ejecutando, y que ha sido submitido
desde este usuario.
CANCEL: Sirve para cancelar un trabajo BATCH. Se debe dar el nombre y el número del
JOB.
HELP: Da por pantalla la descripción y parámetros del mandato solicitado en el HELP.
LISTALB: Da por pantalla todos los mensajes pendientes.
ISTALC: Da por pantalla todos los ficheros asignados en este momento al usuario TSO.
ALLOC: Sirve para asignar ficheros. Es equivalente a una DD desde el terminal, Sirve
para meter los ficheros que me creo para pruebas.
FREE: Libera los ficheros que hemos asignado con ALLOC.
SEND: Sirve para enviar un mensaje al operador o a otros usuarios SEND 'mensaje'
USER (userid).

2.8.7 Consideraciones.
El LOG del Debugger solo guarda los últimos 1000 registros. Si se desea guardar un
número superior, se deberá definir un fichero de log en el panel de invocación del
debugger y acceder bien dividiendo la pantalla (PF2), bien al final de la sesión de debug

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 19 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

El comando FLOW ON hace que se guarden en el log los últimos 255 VERBOS
ejecutados. Además, los guarda como LIFO (deberá comenzarse a estudiarlo por el final).

Recordar que los ALLOC hechos mediante comando (opción 6) solo son validos para esa
sesión de TSO.

2.8.8 Envío de ARCHIVOS.

A continuación describimos el procedimiento para enviar o recibir archivos desde HOST a


PC ò Viceversa.
Como enviar archivos de un sistema principal TSO al PC.
Hacer "log on" al sistema principal TSO.
Ponerse en el panel 1.6 (COMMAND).
Ponerse en PC, aparece: C>
En C> teclear: cd\
En C> teclear:
C>RECEIVE [a:]nombre.TXT e:nombre.miembro.tso ASCII CRLF
En TSO hacer "log off" (sucesivas PF3).
En PC convertir fichero grabado a Open Access II.
Fin de la operación.
Como enviar archivos de un PC al sistema principal TSO.
Hacer "log on" al sistema principal TSO.
Comprobar que el mensaje "preparado" (ready) de TSO, se visualiza en la pantalla.
Ponerse en PC, aparece: C>
En C> teclear: cd\
En C> teclear:
C>SEND [a:]nombre.TXT e:nombre.miembro.tso ASCII CRLF
Pasar a la sesión de sistema principal TSO para comprobar si se ha recibido el archivo.
Fin de la operación.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 20 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3 CAPITULO III
3.1 JOB CONTROL LENGUAJE.

Es el lenguaje especial que se utiliza para indicar al sistema operativo los trabajos que se
deben realizar tomando lo siguiente:

Los programas que se deben ejecutar.


Tomando los recursos del sistema que necesitan los programas.

3.1.1 Estructura corriente de control.

Es el conjunto de sentencias necesarias para ejecutar un job determinado.

3.1.2 Sentencias de control de trabajos.

JOB: Identifica un trabajo para el sistema, Indica el principio de un JOB y el final del
precedente.

EXEC: Identifica un paso de trabajo a ejecutar, Indica que procedimiento se debe


expandir o que programa se llama a ejecución.

DD (DATA DEFINITION): Permite referenciar los ficheros con los que se va a trabajar
durante la ejecución del programa, indicando al sistema si debe crearlos en ese
momento, cuales son sus características.

PROC:Delimita el principio de un procedimiento “in-stream” y, opcionalmente, puede


estar al principio de un procedimiento catalogado.

PEND: Indica el final de un procedimiento “in-stream”.

3.1.3 Sentencias de comandos.

Se utiliza para introducir un comando al sistema por medio de un dispositivo de entrada


de trabajos. (//).

Sentencia nulla Indica el final de un job. (//).

Sentencia delimitadora Es el indicador estándar de fin de fichero en fichas (/*)

Sentencia de comentarios. Se utiliza para insertar comentarios entre las fichas de


control (//*).
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 21 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3.1.4 Sintaxis de las sentencias de control.

Se dispone de las columnas 1-71.


//NOMBREXX OPERACION OPERANDOS
// Columnas 1 y 2.
NOMBREXX Identifica la sentencia. De 1 a 8 caracteres
alfanuméricos (A-Z, 0-9, $, @, sostenido), sin caracteres especiales.

El primer carácter debe ser no numérico. A partir de la columna 3.

OPERACION Tipo de sentencia de control o de comando debe


estar separado del campo NOMBRE al menos por un blanco.

Operandos Contiene parámetros relativos a la sentencia de control, separados por


comas.

Los parámetros pueden ser, por este orden, posicionales.


el significado de cada parámetro viene dado por su posición dentro del conjunto de
parámetros.

Su falta debe indicarse con una coma en el sitio donde debiera estar.
//JOB1 JOB 41,LOPEZ

De Palabra Clave.- el significado viene dado por una palabra especial que lo identifica.

//JOB2 JOB CLASS=A


A su vez un parámetro puede estar compuesto por una serie de Subparametros
(posicionales o de palabra clave). Deben ir encerrados entre paréntesis, o, a veces,
entre apóstrofos.

//JOB3 JOB (41,52,007,,LOPEZ),CLASS=A

Toda sentencia JCL puede llevar comentarios después del ultimo parámetro y precedidos
al menos por un blanco.

Continuación de las sentencias de control

Se interrumpe la codificación de la sentencia antes de la columna 72.


Si hay comentarios, un carácter no blanco en la columna 72
En la ficha de continuación, // en las columnas 1 y 2.
La ficha de control se continúa entre las columnas 4 y 16.
Si es comentario, no se tiene en cuenta el límite de la 16.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 22 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3.1.4.1 Sentencias de JOB.

Identifica el principio de un trabajo para el sistema. Debe haber una sola sentencia JOB
por cada job que se introduzca en el sistema.

3.1.4.2 Parámetros POSICIONALES.

Información de contabilidad. Para la contabilización del JOB por el sistema. Entre


paréntesis o apóstrofos si hay más de un subparámetro. (Como máximo 142 caracteres
incluyendo las comas de separación)

//JOBA JOB (0471,25-12-74,LUIS,‟457”53.71‟) Nombre del programador.- Si se


codifica debe ir tras la información de contabilidad. En el caso de que esta se omita,
debe ir precedido de una coma.

De longitud máxima 20, si contiene caracteres especiales debe ir entre apóstrofos. Si


alguno de sus caracteres es un apostrofo debe ir duplicado.

3.1.4.3 Parámetros de palabra CLAVE.

En cualquier orden. Si existen parámetros posicionales deben ir tras ellos.

ADDRSPC: especifica si ese JOB se ejecuta en memoria virtual (si hay paginación, por
defecto) o real ADDRSPC=VIRT / REAL.

CLASS: asigna una cola de entrada donde lo va a colocar el JES en espera de que se
ejecute CLASS=clase de entrada (A-Z, 0-9).

COND: especifica una condición que imponemos de que los pasos de un JOB se sigan
ejecutando, basada en los códigos de retorno que van devolviendo los distintos
pasos tras su ejecución.

MSGCLASS: especifica la clase de salida donde queremos que vayan todos los
mensajes del sistema y las sentencias de control MSGCLASS=clase de salida (A-Z, 0-9).

MSGLEVEL: indica que tipo de mensajes y de sentencias de control relacionados con


nuestro job queremos que nos imprima el sistema. Por defecto el valor especificado en la
instalación MSGLEVEL=([sentencias],[mensajes])

Sentencias: 0 - solo se imprime la sentencia JOB.

NOTIFY : le pide al sistema que envíe un aviso al usuario de TSO cuando termine la
ejecución del trabajo introducido NOTIFY=identificador de usuario.

PERFORM: especifica a que grupo de rendimiento queda asignado el JOB. Por defecto:
para jobs que no son de TSO
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 23 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

para jobs que son de TSO


PERFORM=n (1-125)

PRTY: especifica la prioridad que se le asigna a ese JOB PRTY=P (valor de 1-15. La
mas alta es 15).

REGION: con ADDRSPC=REAL indica el tamaño de memoria real que utiliza dicho
JOB.

Con ADDRSPC=VIRT sirve solo para limitar la cantidad de memoria virtual que se puede
tomar con una GETMAIN variable.

REGION=valor K (debe ser un número par. Si se codifica impar, el sistema lo pasa al


par superior).

TIME: Tiempo maximo que el JOB puede utilizar la CPU. Por defecto 30 minutos.

TIME=(|minutos|,|segundos|) minutos -> (1-1439) (1440 -> tiempo ilimitado) segundos -


> (0-59).

TYPRUN: Indica como debe considerar el sistema a nuestro JOB con vistas a ejecución.
TYRUN=|HOLD |
|SCAN |

3.1.4.4 Sentencia EXEC.


Identifica un paso de trabajo dentro del JOB completo. Indica que programa se debe
ejecutar y los parámetros de un paso.

3.1.4.5 Parámetros en el EXEC


Notificación de la coma inmediatamente después del nombre del programa. El parámetro
siguiente a la "PARM = es necesaria una palabra clave" los apóstrofos si la cadena de
texto contiene caracteres de espacio

3.1.4.6 PGM.
Indica el programa que se va a ejecutar y debe ser el primer parámetro de la sentencia
EXEC programa PGM=|*.

Paso.nombre DD *: nombre de paso nombre paso dentro de un procedimiento nombre


de DD El primero es el caso de que conozcamos el nombre del miembro donde esta el
programa, o el nombre del programa.

Las otras posibilidades se dan cuando no conocemos ese nombre. Habrá que hacer
referencia a la ficha DD que define esa librería para que el sistema pueda buscarlo por
el nombre temporal que le dio cuando lo creo.

//LIBRDD DD DSN=&&LIBR(PROG)
//PASON EXEC PGM=*.LKED.LIBRDD
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 24 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3.1.4.7 PROC.
Indica que la sentencia EXEC esta haciendo referencia a un procedimiento, sea „in-
stream‟ o catalogado, para que se expanda o ejecute todo lo indicado en el,
PROC=nombre de procedimiento, o, simplemente nombre de procedimiento

3.1.4.8 ACCT.
Especifica la información contable relativa al paso y que exige la instalación. Palabra
clave, con restricciones parecidas al parámetro posicional de la sentencia JOB
ACCT|.nombre paso dentro procedimiento=inf.contable

//PASO1 EXEC PGM=A,ACCT=041


//PASO2 EXEC PGM=B,ACCT=(041,‟12/12/74‟)
//PASO3 EXEC PGM=C,ACCT=(041,12/12/74)
//PASO4 EXEC ABC,ACCT.PASO41=(041,ABCD)
//PASO5 EXEC PROCED1,ACCT.PASON=‟135+47‟

3.1.4.9 ADDRSPC.
Especifica si el paso se ha de ejecutar en memoria real o virtual (por defecto).
ADDRSPC|.nombre paso dentro procedimiento=|VIRT| |REAL|
Si ponemos este parámetro en la ficha JOB y en las EXEC, aunque pongan cosas
contradictorias, el valor que prevalece es el dado en la ficha JOB. Para poder ejecutar
unos pasos en memoria real y otros en virtual, se ha de codificar en las EXEC.

3.1.4.10 COND.
Especifica bajo que condiciones no se ejecutara el paso, dependiendo de los codigos de
retorno devueltos por uno, varios o todos los pasos anteriores. |codigo,operacion|
COND|.nombre paso|=(|codigo,operacion,paso|..|,EVEN|)

código -> valor con el que se va a comparar el código de retorno (0-4095)


operacion ->
GT mayor que
GE mayor o igual
LT menor que
LE menor o igual
EQ igual a
NE distinto de
EVEN este paso se debe ejecutar aunque algun paso anterior terminase anormalmente.
ONLY este paso se ejecutara si algun paso anterior ha terminado anormalmente.
Se pueden especificar hasta 8 condiciones distintas incluyendo la EVEN u ONLY, Si en
la JOB se codifico COND, se ignoran los de la EXEC.

3.1.4.11 DYNAMNBR.
Sirve para que el iniciador asigne ficheros dinámicamente También los propios
programas de proceso del usuario pueden pedir asignación de dispositivos para sus
ficheros dinámicamente, es decir, en tiempo de ejecución.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 25 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3.1.4.12 PARM.
Sirve para pasar algún tipo de información al programa cuando este se esta ejecutando.
Como máximo 100 caracteres. PARM[.nombre paso dentro procedimiento]=parámetro Si
la información tiene más de una expresión, se separan por comas y se encierra el
conjunto entre paréntesis o apóstrofos.

3.1.4.13 RD.
Controla las posibilidades de rearranque del paso donde se ha codificado RD|.nombre
paso dentro procedimiento|=|R | |RNC| |NC | |NR | Lo mismo que para la RD de la ficha
JOB.

3.1.4.14 REGION.
Igual que el parámetro REGION de la sentencia JOB solo que a nivel de paso de trabajo
REGION|.nombre paso dentro procedimiento |=n K nk = número de k de memoria Si en la
sentencia JOB se codifico REGION, se ignoran todos los que se hayan codificado en las
sentencias EXEC.

3.1.4.15 TIME.
Lo mismo que para la TIME de la ficha JOB Si se codifica TIME=1440 (24 horas), el
sistema supone que no existe limitación de tiempo de CPU para este paso Aunque se
especificase TIME en la sentencia JOB, aqui cada una tiene validez en su entorno; pero
cuando se cumpla el TIME del JOB, el trabajo terminara anormalmente.

3.1.4.16 Sentencia DD (DATA DEFINITION).


Nos va a permitir referenciar los ficheros con los que vamos a trabajar e indicarle al
sistema si estos ficheros deben crearse, que espacio necesitan, si es cinta, disco o
fichas, su organización, etc. Cada sentencia DD describe un fichero.

3.1.5 Parámetros en las SENTENCIAS

(*) (posicional): Indica que el fichero que define esta DD va a continuación de ella
en la corriente de entrada El fin de un fichero se detecta mediante:un delimitador Standard
: /* en columnas 1, 2 Y una sentencia de control: // en columnas 1, 2

DATA (posicional): Su utilización es la misma que la del anterior, con la diferencia de


que se utiliza cuando entre los datos que componen el fichero figuran sentencias de
control. (No puede ir dentro de un procedimiento). Una ficha // en columnas 1 y 2 no actúa
como delimitador de fin de fichero. Para indicar cual es el delimitador que actúa como
delimitador de fin de fichero se utilizara el parámetro DLM.

DLM: Sirve para definir un delimitador distinto del Standard (/*) y que no aparezcan en
las dos primeras posiciones Si el delimitador contiene caracteres especiales, se debe
encerrar entre apóstrofos. //DATOS1 DD *.DLM=$@ y //DATOS1 DD
DATA.DLM=‟/$‟

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 26 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

DUMMY: (posicional): Definimos el fichero como ficticio. El programa lo abrirá,


realizara operaciones de e/s ficticias. El sistema ignorara estas peticiones, pero sin
dar lugar a error de programa. Si una sentencia DD esta definida como DUMMY, todas
las demás que vayan concatenadas a ella también se consideran DUMMY, las
precedentes siguen siendo reales.

DYNAM: (posicional): Asignación dinámica de ficheros. Si no se codifica el parámetro


DYNAMNBR, en la sentencia EXEC, hay que colocar tantas DD DYNAM como
asignaciones dinámicas vayan a existir en un momento determinado, Si se codifica, el
número de asignaciones dinámicas es la suma del valor de DYNAMNBR mas el número
de DYNAM, y nunca debe exceder de 1635.

DDNAME: Para un programador COBOL, un fichero tiene tres nombres, nombre que el
programador le da en el programa, definido en la SELECT, nombre que va a tener
en el sistema, especificado por el parámetro DSN, nombre de enlace entre el nombre
del fichero en el programa y el nombre del fichero en el sistema que es la DDNAME y
que aparece en la corriente de control en la ficha DD correspondiente a ese fichero.
SELECT nombre del fichero ASSIGN TO DDname
//DDname DD DSN=nombre en el sistema

Se utiliza cuando se desea diferir la definición del fichero para ponerla en una DD
posterior y proporciona el enlace entre la DDNAME real y una DDNAME auxiliar, un caso
muy claro se da en los casos de * y DATA que no pueden ir dentro de un
procedimiento, el problema se resuelve difiriendo la definición del fichero para mas
adelante (fuera del procedimiento, cuando lo llamemos).

//MAESTRO DD DDNAME=AUXMAES
(sentencia de control)
//AUXMAES DD *
(datos)
/*

SYSOUT: Describe las características de un fichero de salida cuya transcripción va a


efectuar el JES Codificación SYSOUT=(clase)|,prog.||,form.|)
clase -> clase de salida a la que queda asignado
ese fichero (A-Z), (0-9), *.
El * hace que la clase de salida sea la
misma clase que la codificada en el

SYSOUT, es el parámetro de la sentencia DD que define un fichero de salida en


impresora. Asociados a el vienen los Parámetros: COPIES y HOLD. Este parámetro es
incompatible con DISP, VOLUME, LABEL. Para las impresoras puede ser necesario
codificar el DCB.

COPIES: Indica el número de copias (por defecto 1), que deseamos de un fichero de
salida (impresora o grabadora). Solo puede ser codificado en una ficha del tipo: // DD
SYSOUT=*,COPIES= número (1-255)

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 27 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

DEST: Especifica el destino que se le quiere dar a un fichero de salida (SYSOUT).


Puede ser a un dispositivo del sistema

(LOCAL) o a un terminal remoto.


|Rnnn
|RMnnn
DEST=|RMTnnn
|Unnn
|LOCAL
|nombre

Rnnn, RMnnn, RMTnnn -> donde „nnn‟ es un número de 1 a 3 dígitos que indica el
terminal remoto al que se dirige la salida. R0 equivale a LOCAL.
Unnn -> „nnn‟ es un número (1-255) que indica el dispositivo local con destino especial
al que va a dirigirse la salida.
LOCAL -> Indica que el destino de salida es un dispositivo del sistema.
nombre -> (1-8) caracteres. Nombre del dispositivo local o remoto que va a recibir el
fichero de salida. Por defecto asume el mismo terminal desde el que se leyó el JOB.

FREE: Sirve para liberar ficheros. FREE=|END | |CLOSE| END -> se libera cuando se
termina el paso.

CLOSE: se libera cuando se cierra Por defecto asume END.


No se la debe codificar en un fichero que se abre y se cierra varias veces a lo largo del
paso, pues la segunda vez que se abra, el paso terminara anormalmente.

FCB: Especifica el programa de control de carro para las impresoras controladas por
programa en vez de por cinta FCB=(imagen|,ALIGN |) |.VERIFY|
Imagen -> identificación del programa a cargar en el buffer de la impresora. (1-4
caracteres no especiales)
ALIGN -> pide al operador que compruebe que el formulario este alineado.
VERIFY -> se imprime la imagen de caracteres seleccionada y permite
comprobar que el formulario este alineado.
//OUTPUT DD UNIT=3211,FCB=(FCB1,ALIGN)

HOLD: Indica que un fichero de salida quede retenido, y no empiece a salir hasta que
el operador lo libere HOLD=|YES| |NO | Por defecto es NO. (no queda retenido) Solo
puede codificarse en un fichero SYSOUT.

UCS: Especifica el juego de caracteres que debe utilizar una impresora para imprimir un
fichero. UCS=(juego de caracteres |,FOLD| [,VERIFY])

„juego de caracteres‟-> 1-4 caracteres alfanuméricos Identifica el juego de caracteres que


se desea utilizar.
FOLD -> Especifica que determinadas configuraciones del EBCDIC, se desea
que se impriman
como caracteres que tienen otra configuración (minúsculas por mayúsculas)
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 28 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

VERIFY -> se imprime una representación del juego


juego de caracteres y el operador debe confirmar que es el que se desea.
// SAL DD SYSOUT=A,UCS=(YN,VERIFY)

OUTLIM: Especifica el máximo número de registros lógicos que se desea componga un


fichero SYSOUT. OUTLIM=número (1-16777215) Si no se codifica no hay límite.

DSNAME (DSN): Indica el nombre con el que el sistema debe localizar (si ya existe) o
crear (si es nuevo) el fichero definido por la sentencia de control DD.

DISP: Indica el estado en que se encuentra el fichero cuando se inicia el paso de trabajo
y como se quiere que quede tras el paso.

|,DELETE |
|NEW||,KEEP ||,DELETE |
|OLD||,PASS ||,KEEP |
DISP=(|SHR||,CATLG ||,CATLG |)
|MOD||,UNCATLG||,UNCATLG|

El primer Subparametros indica el estado del fichero cuando se arranca el paso (por
defecto NEW):

NEW -> El fichero se crea en este paso.

OLD -> El fichero ya existe y no lo compartimos ninguna otra tarea puede


acceder a el.

SHR -> El fichero ya existe y lo compartimos.

MOD -> Si existe no lo compartimos y se posiciona al final del fichero. No


reposiciona en caso de prog-check.

El segundo parámetro indica como queremos que quede el fichero en caso de


terminación normal del paso:

DELETE -> borrarlo.


KEEP -> guardar el fichero.
PASS -> el fichero se va a utilizar en pasos siguientes.

CATLG -> guardar el fichero y catalogarlo en el Catalogo del sistema o en el de


usuario.

UNCATLG -> el fichero se guarda, pero se borran las entradas del catalogo.

Por defecto asume DELETE para estado NEW y KEEP para OLD
Con PASS se conserva toda la información sobre el fichero.
Con KEEP, hay que volver a introducirla.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 29 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Al trabajar con cintas magnéticas si se utiliza KEEP, el sistema descarga la cinta al


final del paso, y la vuelve a pedir en pasos siguientes si se vuelve a utilizar. Con
PASS, el sistema no la descarga y además guarda información sobre que orden
tenia el fichero utilizado dentro de la cinta, en el caso de cinta multifichero.

En los ficheros temporales no se admite KEEP, se codifica, el sistema lo modifica y


coloca PASS. En el caso de un fichero particionado, lo que indique este
parámetro se aplica al fichero completo como tal, no a un miembro concreto.

El tercer subparametro indica como queremos que quede el fichero en el caso de


que se produzca una terminación anormal del paso. Si se omite se asume el valor
del segundo.

SPACE: Indica cuanto espacio queremos asignar en un volumen de acceso directo para
un fichero que se va a crear.

Si se omite el parámetro DISP, asume: DISP=(NEW,DELETE,DELETE)

Es obligatorio codificarlo cuando se define un fichero en un dispositivo de acceso directo


con DISP=NEW Dos posibilidades de codificación:

Primera forma

El primer subparametro indica la unidad de medida del espacio perdido.


TRK -> pistas

CYL -> cilindros

Long-bloque -> el espacio se medira en unidades de bloques El segundo


subparametro da la cantidad de espacio que debe asignarse en principio para el
fichero.

El tercer subparametro da la cantidad de espacio que se le debe añadir al


fichero si se necesita mas espacio. (máximo 16 extensiones en cada volumen)

El sentido del cuarto subparametro cambia según se trate de un fichero:

Particionado: número de bloques de 256 octetos que contendrá el directorio


del fichero.

secuencial-indexado: el número de cilindros que debe ocupar el área de índices


del fichero.

Por omisión es particionado.


RLSE -> indica que el espacio que no se hayautilizado en la creación del
fichero debe liberarse cuando se cierra.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 30 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Nombre de fichero: contiene un fichero que vino de otro paso con DISP=(-PASS),
o un fichero catalogado

*.’nombre de DD’: que se utilizo en una sentencia DD anterior.

La información de volumen no es necesaria cuando se utilizan ficheros ya


existentes catalogados.

UNIT: Se utiliza para especificar el tipo y número de unidades que se necesitan para el
fichero que se esta definiendo
| |dirección ||,cuenta|
|(|tipo ||,P |[,DEFER])
| |nombre generico||,. |

FF -> indica que a este fichero se le be asignar la misma unidad que al fichero
definido en una sentencia DD anterior, pero dentro del mismo paso.

Este parámetro no es necesario si se trata de un fichero


ya existente y catalogado.

Es obligatorio para ficheros que se crean en el paso. Si el fichero es temporal y en


cinta es el único parámetro necesario de la DD.

LABEL: Especifica el tipo de etiquetas asociadas con el fichero de la sentencia DD donde


se encuentre. (solo cintas) LABEL=([secuencia][,etiquetas][,‟password‟][,proceso]
[,expiracion])
secuencia -> posición relativa del fichero dentro de un volumen de cinta magnética Por
defecto 1.

etiquetas -> indica el tipo de etiquetas y el proceso a efectuar con ellas:


SL -> standard IBM. (por defecto)
SUL -> standard IBM y del usuario.
AL -> etiquetas ANS.
AUL -> ANS y del usuario.
NSL -> no tiene etiquetas standard.
NL -> ningún tipo de etiquetas.
LTM -> el sistema debe ignorar una marca de cinta de relleno en la cabecera de
la cinta, si la encuentra en cintas sin etiquetas
BLP -> el sistema no debe procesar etiquetas de fichero de cinta.

QNAME: Permite que un usuario tenga acceso a mensajes recibidos via TEAM para que
los procese un programa de aplicación QNAME=nombre (cola de destino de mensajes
codificado en una macro TPROCESS) Con este parámetro solo se codifica DCB.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 31 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

TERM: Indica que el fichero de entrada o de salida que se define con esa DD viene (o
va) de un terminal de TSO TERM=TS.

DCB: Describe internamente el fichero. Su codificación depende del método de


acceso a utilizar y de la organización del fichero DCB=(operando1,operando2,...)

Operandos del DCB:


RECFM -> tipo de registros del fichero:
U -> indefinido.
V -> longitud variable.
VB -> longitud variable bloqueados.
F -> longitud fija.
FB -> longitud fija bloqueados.
LRECL -> longitud en octetos del registro lógico.
BLKSIZE-> longitud en octetos del bloque.
DSORG -> organización del fichero.
PS -> secuencial.
IS -> secuencial-indexado.
DA -> directa.
PO -> particionado.

Subparametros del DCB en ficheros SECUENCIALES.

KEYLEN=número Longitud en octetos de la clave del fichero.


RKP=número Número de octetos en el registro anteriores al primero de la clave.

OPTCD Se utiliza para informar al sistema que el fichero se procesa con opciones
especiales Si se desean varias opciones se codificaran seguidas, sin comas ni
blancos entre ellas.

OPTCD=L Indica: que se borren los registros marcados con HIGH_VALUE en la


primera posición cuando su espacio se necesite para otros registros.

no se recuperen los registros marcados con HIGH-VALUE en la primera posición cuando


se lea el fichero secuencialmente, Para usar esta opción es necesario que el RKP
sea > 0 en registro de longitud fija.

OPTCD=M El fichero tendrá un índice maestro si es necesario por su volumen, al


codificar esta opción se debe codificar también el Subparametros NTM.

OPTCD=I El fichero tiene un área de excedentes independiente.


OPTCD=Y Indica que se reserve espacio para áreas de excedentes de cilindro.
Se usa en unión del parámetro CYLOFL. Por defecto asume Y.

NTM=n. de pistas Indica el número de pistas máximo que puede tener el índice de
cilindros sin que se cree un índice maestro.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 32 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Cada entrada el índice maestro apunta a una pista del índice de cilindros.

Es necesario cuando se ha indicado la opción OPTC=M, si NTM


no se codifica, se ignora la opción de índice maestro.

CYLOFL=n. pistas Indica el número de pistas de cada cilindro que se deben


reservar como área de excedentes del cilindro. Es necesario si se ha codificado
OPTCD=Y.

Subparametros del DCB en ficheros DA.

LIMCTN=n. pistas Indica el número de pistas máximo sobre el que se debe hacer una
búsqueda extendida del registro a recuperar o espacio para Grabar uno nuevo.

OPTCD=E Indica que se debe realizar una búsqueda extendida del registro
Se utilizan ambas simultáneamente.

AMP Similar al DCB pero para ficheros VSAM, AMP=(AMORG,resto operandos)

CHKPT: Indica que se deben tomar puntos de control del fichero de la DD, cada vez que
se encuentre una condición de fin de volumen CHKPT=EOV, Solo para ficheros
multivolumen con proceso BSAM o QSAM.

MSVGP: Especifica la identificación de un grupo de almacenamiento masivo que


reside en un dispositivo de un sistema de almacenamiento masivo (MSS) MSVGP=id

ID-> identificador (1-8 caracteres) que define el grupo de volúmenes de almacenamiento


masivo.

3.1.6 Sentencias DD con NOMBRES ESPECIALES.

Estos nombres no se pueden utilizar en una sentencia DD normal, ya que cada uno de
ellos indica la existencia de una DD con una finalidad concreta.

En definición de librerías: JOBLIB y STEPLIB


En definición de catálogos: JOBCAT y STEPCAT
En definición de volcados : SYSABEND y SYSUDUMP

JOBLIB: Cuando el sistema encuentra una EXEC, busca ese programa en la librería
estándar del sistema SYS1.LINKLIB. Si queremos que la busque en una o mas librerías
distintas del sistema, se debe codificar una DD con nombre JOBLIB, y las concatenadas a
ella necesarias.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 33 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

JOBCAT: Se da este nombre a la sentencia DD que define al catalogo que ha de utilizar


el sistema en la búsqueda de los ficheros de nuestro programa que se indiquen que
están catalogados, si no los encuentra ahi, buscara en un catalogo privado
caracterizado por la primera cualificación del nombre, o bien en el catalogo del sistema.

SYSABEND Y YYSUDUMP: Nos definen ficheros donde se va a efectuar un vuelco de


memoria en caso de que el paso termine anormalmente. La diferencia que existe entre
ambas residen en que parte de la memoria se vuelca el fichero:

3.1.7 Concatenación de SENTENCIAS DD.


Tras una sentencia DD con nombre pueden codificarse otras DD sin nombre. El sistema
asume que los ficheros descritos en las DD sin nombre son continuación del descrito en
la DD con nombre.

//ENTRADA DD descripción fichero1


// DD descripción fichero2
// DD descripción fichero3
//ENTRADA DD descripción fichero1

El programa que haga referencia a la DD con nombre ENTRADA tratara en fichero1, a


continuación el 2 y finalmente el 3.

Las DD concatenadas únicamente tienen sentido para ficheros de entrada a un


programa.

3.1.8 Sentencias de CONTROL DE COMANDOS.

Formato:
// <comado> <operandos del comando>
No todos los comandos pueden introducirse en el sistema por fichas. Los que pueden
entrar por medio de sentencias de control son:
CANCEL RELEASE UNLOAD STOPMN
DISPLAY REPLY VARY
HOLD RESET WRITELOG
LOG SET CHNGDUMP
MODIFY START MONITOR
MOUNT STOP SEND

3.1.8.1 SORT
Control total
SORT |FIELDS =(p,m,f,s...p,m,f,s)
FIELDS =(p,m,s...p,m,s), FORMAT =f
FIELDS =COPY|
|,CKPT|
|,DYNALLOC|=|d|(d)|(,n)|(d,n)|||
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 34 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

|,EQUALS| ,NOEQUALS|
|,FILSZ=x| ,SIZE=y| ,FILSZ=En| ,SIZE=En|
|,SKIPREC=z|

FIELDS, descripción de los campos de control.


p: posición donde empieza el registro
m: longitud
f: formato del campo. Los mas usados son:

CH - carácter
ZD - decimal
PD - decimal empaquetado
BI - binario sin signo
FL - coma flotante
FI - binario con signo
AC - carácter ASCII
S - secuencia de ordenación:

A - ascendente
D - descendente
E - campos de control para modificar

FORMAT=f, es opcional. Se usa cuando los campos de control tienen todos el ismo
formato.

3.1.8.2 El programa producto “SORT/MERGE”


Su función básica es la de clasificar ficheros de acuerdo a especificaciones determinadas
o la de intercalar ficheros previamente ordenados.
Se pueden ordenar hasta 255 ficheros secuenciales o 1 VSAM y se pueden intercalar de
2 a 16 ficheros que deberán estar ordenados según los mismos criterios.

Para la ejecución del sort/merge es necesario preparar dos


tipos de sentencias:

3.1.9 Sentencias de JCL.

Las sentencias JCL comienzan con //

El contenido de cada sentencia a partir de la columna 72 Se considera comentario (no


orden ejecutiva)

La primera sentencia es JOB.

Todas las sentencias han de escribirse en MAYÚSCULAS.

Un procedimiento debe tener como mínimo un paso o sentencia del tipo EXEC asociada
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 35 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

al programa que se desea ejecutar.

El procedimiento termina en una última línea que incluye solo los caracteres //

3.1.9.1 Sentencias de CONTROL PARA EL SORT.


Las primeras sirven para describir al sistema los ficheros necesarios para la ejecución del
programa (libreria sort, sali-da de mensajes, ficheros a clasificar/intercalar, fichero
clasificado o de salida y ficheros de trabajo).
Las segundas sirven para controlar la ejecución del programa.

Sentencias de control de ordenación

Para una ordenación normal solamente se necesitan tres sentencias:

3.1.9.2 Sentencia SORT.


Proporciona la información sobre los campos de control y el tamaño del fichero de entrada
y es obligatoria en todo proceso de ordenación.

La sentencia SORT se identifica por la palabra clave SORT.


Los operandos fundamentales son FIELDS, SIZE y EQUALS.

El operando FIELDS describe los campos a ser utilizados como campos de control para la
ordenación.

Un campo de control quedara determinado por: su posición, su longitud, su formato y por


la forma de ordenación.

Posición Se indica el primer octeto del campo mediante un número entero. (El
primer octeto de un registro es el número 1).

Los registros de longitud variable llevan cuatro octetos por delante del registro por
lo que, a la hora de de - terminar la posición, se deben tener en cuenta estos cuatro
octetos.

Longitud Se indica en octetos mediante un número entero.

Formato Indica el formato en que debe considerarse el campo e influye sobre el


parámetro longitud.

Los códigos de formato mas utilizados son:


CH = Caracteres EBCDIC
AC = Caracteres ISCII/ASCII
ZD = Decimal con signo
PD = Decimal empaquetado con signo
BI = Binario

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 36 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Forma de ordenación Ascendente, que se indicara por una „A‟ o descendente, que se
indicara por una „D‟.

Ejemplo:
SORT FIELDS=(1,6,A),FORMAT=BI
La clasificación se realizara por los seis primeros octetos del registro (empieza en la
posición 1 y tiene 6 de longitud) y será de forma ascendente.

El parámetro SIZE sirve para dar el número o una estimación del número de registros a
ordenar Size=número

El parámetro EQUALS indica que se preserve en salida el orden de entrada para


registros con campos de control idénticos.
Sentencia record.
Sirve para indicar el formato y longitudes de los registros que trata el programa.

La sentencia RECORD se identifica por la palabra clave RECORD.


Los operandos fundamentales son TYPE y LENGTH.

El operando TYPE indica si los registros son de longitud fi-ja (F) o variable (V).

El operando LENGTH indica la longitud de los registros.

Ejemplo:
RECORD TYPE=F,LENGTH=350

Sentencias de control de intercalación

Para una intercalación normal solamente se necesitan dos sentencias:


Sentencia MERGE: Proporciona la información sobre los campos de control y el tamaño
del fichero de entrada y es obligatoria en todo proceso de intercalación.
Su estructura es igual a la de la sentencia Sort.

Sentencia END: Señala el final de un grupo de sentencias de control del programa y se


precisa si dichas sentencias no van seguidas de una ficha „/*‟.

Sentencia END: se identifica por la palabra clave END.

El programa verifica la validez de cada sentencia antes de


empezar el proceso y si detecta un error envía un mensaje y cancela la ejecución.

3.1.9.3 Formato general.


Cada sentencia de control del programa SORT/MERGE se identifica por una palabra
clave.
En un tipo de sentencia solo debe aparecer una vez la palabra
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 37 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

clave que identifica dicha sentencia.

La palabra clave debe empezar a partir de la columna 2 y debe


ir seguida de, al menos, un espacio. Si una sentencia necesita mas de una línea, se
escribirá un carácter cualquiera en la columna 72 y se continuara en la siguiente línea.

Los operandos deberán ir separados por comas y sin blancos


intercalados. (Un blanco en los operandos indicara fin de sentencia y lo que sigue se
considerara un comentario).

1 //BRB0902S JOB MSGLEVEL=(1,1),MSGCLASS=X,CLASS=H,NOTIFY=BRB0902,


// COND=(0,LT)
2 //PASO1 EXEC PGM=SORT
3 //SYSPRINT DD SYSOUT=*
4 //SYSOUT DD SYSOUT=*
5 //SORTIN DD DSN=DOMP.RECIGENE.DISKPRKS,DISP=SHR
6 //SORTIN DD LABEL=(,NL,EXPDT=98000),UNIT=581,
// VOL=SER=(QUINO1,QUINO2),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=9600)
//SORTIN DD DSN=CULE.MAESCULT.CULBC002(0),DISP=SHR,UNIT=HTAPE
8 //SORTOUT DD DSN=DOMP.PRUEBAS.DISKPRSD,DISP=(NEW,CATLG,DELETE),
// UNIT=SYSCR,SPACE=(CYL,(5,1),RLSE),
// DCB=(LRECL=350,BLKSIZE=3500,RECFM=FB)
9 //SORTOUT DD DSN=PREP.PERIODI1.DISKPRSD,DISP=(NEW,CATLG,DELETE),
// UNIT=DISK,SPACE=(CYL,(45,10),RLSE),VOL=SER=338080,
// DCB=(RECFM=FB,LRECL=400,BLKSIZE=22400)
10 //SORTOUT DD DSN=AHOP.SALCLISD.DISKPRSD,DISP=(,PASS),
// UNIT=SYSCR,SPACE=(CYL,(10,3),RLSE),
// DCB=(RECFM=VB,BLKSIZE=16000)
11 //SORTWK01 DD UNIT=SYSCR,SPACE=(CYL,(15,5)),VOL=SER=338080
12 //SORTWK02 DD UNIT=SYSCR,SPACE=(CYL,(15,5)),VOL=SER=338080
13 //SORTWK03 DD UNIT=SYSCR,SPACE=(CYL,(15,5)),VOL=SER=338080
14 //SORTWK04 DD UNIT=SYSCR,SPACE=(CYL,(15,5)),VOL=SER=338080
15 //SORTWK05 DD UNIT=SYSCR,SPACE=(CYL,(15,5)),VOL=SER=338080
16 //SORTWK06 DD UNIT=SYSCR,SPACE=(CYL,(15,5)),VOL=SER=338080
17 //SORTWK01 DD UNIT=SYSCR,SPACE=(CYL,3)
18 //SORTWK02 DD UNIT=SYSCR,SPACE=(CYL,3)
19 //SORTWK03 DD UNIT=SYSCR,SPACE=(CYL,3)
20 //SORTWK04 DD UNIT=SYSCR,SPACE=(CYL,3)
21 //SORTWK05 DD UNIT=SYSCR,SPACE=(CYL,3)
22 //SORTWK06 DD UNIT=SYSCR,SPACE=(CYL,3)
23 //SYSIN DD *
24 INCLUDE COND=(1,5,EQ,C’00000’,OR,29,1,EQ,C’2’),FORMAT=CH
25 INCLUDE COND=(1,6,EQ,C’C00001’,&,7,6,LE,C’000400’),FORMAT=BI
26 INCLUDE COND=(1,1,EQ,X’F1’)
27 OMIT COND=(11,3,EQ,C’001’),FORMAT=BI
28 OMIT COND=(219,3,LT,X’00701C’,OR,219,3,GT,X’00709C’),FORMAT=BI
29 OMIT COND=((5,2,GE,X’3000’,AND,5,2,LE,X’300F’),OR, C
(5,2,GE,X’3020’,AND,5,2,LE,X’302F’),OR, C
(5,2,GE,X’3040’,AND,5,2,LE,X’304F’),OR, C
(5,2,GE,X’3600’,AND,5,2,LE,X’360F’)),FORMAT=BI
30 SORT FIELDS=(1,6,A),FORMAT=BI
31 SORT FIELDS=(156,3,D,42,4,A,24,9,A),FORMAT=BI,WORK=DA
32 SORT FIELDS=(2,19,CH,A,1,1,CH,A),EQUALS
33 OUTREC FIELDS=(22X,1,27,2Z,28,224)
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 38 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

34 INREC FIELDS=(1,27)
35 SUM FIELDS=(19,7,PD)
36 OPTION SKIPREC=10,STOPAFT=500
37 RECORD TYPE=F,LENGTH=350
38 END
39 //SYSIN DD *
40 MERGE FIELDS=(1,19,A,110,5,A),FORMAT=BI
41 RECORD TYPE=F,LENGTH=19
42 END
43 /*

FICHA: 1
Identifica el trabajo para el sistema.

FICHA: 2
Identifica un paso del JOB. En este caso el paso hara que se ejecute el SORT.

FICHA: 3-4
Fichas que indican la salida de mensajes. ( La ficha SYSPRINT no tiene ningun valor).

FICHA: 5 a 7
Identifican los ficheros de entrada. Solo puede haber un SORTIN aunque, dentro de el,
puede haber mas de una ficha DD.

FICHA: 8 a 10
Identifican el fichero de salida. Solo puede haber un fiche-ro de salida.

FICHA: 11 a 22
Identifican los ficheros de trabajo. Aquí aparecen dos formas de identificarlos (fichas 11 a
16 y fichas 17 a 22). El numero de ficheros de trabajo es variable (no tiene por que ser 6).

FICHA: 23
Nos indica que, a continuación, vienen los parámetros del
SORT.

FICHA: 24 a 26 - INCLUDE
Nos indican que condiciones deben cumplir los registros del/ los fichero/s de entrada para
que se incluyan en el fichero de salida. Los que no cumplan esas condiciones no se
incluirán en dicho fichero. Solo puede haber una ficha INCLUDE.
EQ=Igual OR=o C=Caracter
NE=No igual &=y X=Hexadecimal
GT=Mayor que
GE=Mayor o igual
LT=Menor que
LE=Menor o igual

Por ejemplo, la ficha 24 nos indica que solo se llevaran al fichero de salida aquellos
registros que en la 5 primeras posiciones (empiezan en la 1 y tiene 5 de longitud) tengan

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 39 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

5 ceros (en formato caracter) o que en la posición 29 (empieza en la 29 y tiene 1 de


longitud) tengan un 2 (en formato caracter).

FICHA: 27 a 29 - OMIT
Nos indican que condiciones deben cumplir los registros del/ los fichero/s de entrada para
que NO se incluyan en el fichero de salida. Los que no cumplan esas condiciones SI se
incluirán en dicho fichero. Solo puede haber una ficha OMIT.
El formato es el mismo de la ficha INCLUDE.
Las fichas OMIT e INCLUDE son incompatibles.
Por ejemplo, la ficha 27 nos indica que los registros que en la posición 11 a 13 (empieza
en la 11 con 3 de longitud) tengan „001‟ (en formato caracter) no se incluirán en el fichero
de salida.

FICHA: 30 a 32 - SORT FIELDS


Nos indican el criterio de clasificación de los registros.
Por ejemplo, la ficha 31 nos indica que el criterio de clasificación es el siguiente:

Primero se clasificara por las posiciones 156 a 158 (empieza en la 156 y tiene 3 de
longitud) de forma descendente (de menor a mayor).

Después se clasificara por las posiciones 42 a 45 de forma ascendente (de mayor a


menor).

Por ultimo, se clasificara por las posiciones 24 a 32 de forma ascendente.

Los campos, para estas operaciones, deberán considerarse en formato binario


(FORMAT=BI) y el espacio para los ficheros de trabajo se tomara de un dispositivo de
acceso directo (WORK=DA). (Este ultimo parámetro no es necesario).

Si se utilizara el parámetro EQUALS (como en la ficha 32) nos indicaría que, para los
registros en los que los campos a partir de los cuales se realiza la clasificación fueran
iguales, se res-petase el orden de entrada (es decir, en el fichero de salida estarán en el
mismo orden que tenían en el fichero de entrada).

FICHA: 33 a 34 - OUTREC, INREC


Nos van a permitir “diseñar” el registro de salida.
Por ejemplo, en la ficha 33 decimos que el registro de salida se configure de la siguiente
manera:

Las 22 primeras posiciones a blancos (22X).


Las siguientes 27 posiciones con las 27 primeras del registro de entrada (1,27).
Las siguientes 2 posiciones a ceros binarios (2Z).
Las ultimas 224 posiciones con las que van de la 28 a la 251 del fichero de entrada
(28,224).

La INREC tiene el mismo formato que la OUTREC. La única diferencia entre ambas es
que la primera modifica el registro después de realizado el sort y la segunda lo hace
antes.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 40 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

FICHA: 35 - SUM
Nos permite sumar los valores de las posiciones especificadas creando un solo registro
por cada clave igual (campos que cumplan los criterios dados en la ficha SORT) con la
suma que se pidió.
Por ejemplo, en esta ficha 35 se pide que se sumen los valores de las posiciones 19 a 25
(19,7) en formato decimal empaquetado con signo (PD).
Si se produce overflow (se sobrepasa la capacidad del campo) se crea otro registro donde
se continua con la suma.

FICHA: 36 - OPTION
Nos permite darle al sort una serie de opciones. Por ejemplo:

SKIPREC, indicara el número de registro del fichero de entra-da en el que comenzara a


realizarse el sort. (En este caso, en el registro 10).

STOPAFT, indicara el número máximo de registros que se aceptan para el sort. (En este
caso son 500).

FICHA: 37 - RECORD
Nos indica el formato y la longitud de los registros que trata el programa.
En este caso los registros son de longitud fija (F) de 350.

FICHA: 38 - END
Nos indica el final de las instrucciones del sort.

FICHA: 39 a 42
Instrucciones para la intercalación (MERGE).
Los formatos son iguales a los del SORT.

3.1.10 UTILITY
Una UTILITY es un programa de utilidad proporcionado con el sistema operativo.

En OS/VS hay tres tipos de UTILITYS:

Programas de utilidad del sistema (se utilizan para mantener datos de control del
sistema).

Programas de utilidad de ficheros (se utilizan para crear, modificar, listar o reorganizar
ficheros).

Programas de utilidad independientes (se utilizan para preparar dispositivos para uso del
sistema).

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 41 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

3.1.11 IEFBR14.
Es utilizada para realizar actividades sencillas, como crear archivos en vacio, borrado de
archivos, crear librerías etc.

//* Borrado de un fichero


//BORRADO EXEC PGM=IEFBR14
//DD1 DD DSN=DLIP.CUENTAS.PREREO,DISP=(OLD,DELETE)
//DD2 DD DSN=DLIP.SECOND.INDEX,DISP=(OLD,DELETE)
//DD3 DD DSN=DLIP.INDICE.UNLD,DISP=(OLD,DELETE)
//DD4 DD DSN=DLIP.TRABAJO.REL,DISP=(OLD,DELETE)
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//

//* Creacion de un fichero (vacio)


//CREAR EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSDBOUT DD SYSOUT=*
//TRANOMSD DD DSN=XXXX.XXXXXXX.DISKPRSD,DISP=(NEW,CATLG,CATLG),
// DCB=(LRECL=180,BLKSIZE=18000,RECFM=FB),UNIT=SYSCR,
// SPACE=(CYL,(1,1),RLSE)
//

3.1.12 IEBCOPY.
Esta utilidad realiza varias funciones:
Copiar de un fichero particionado a otro fichero particionado o a un secuencial.
Copiar de uno o más ficheros secuenciales a un fichero particionado.
Copiar o mezclar varios ficheros particionado.
Comprimir un fichero particionado (copiándolo sobre sí mismo).
Reemplazar miembros de un particionado. Renombrar miembros de un particionado.

Se utiliza para crear y reorganizar librerías.


//* Reorganizar librerías

//COPIA EXEC PGM=IEBCOPY


//SYSPRINT DD SYSOUT=X
//LIBRERIA DD DSNAME=CALP.XXXXXX.FUENTE,UNIT=SYSCR,DISP=SHR
//COPIALIB DD DSNAME=CALP.XXXXXX.FUENTE,DISP=SHR
//SYSUT3 DD UNIT=SYSCR,SPACE=(TRK,(1))
//SYSUT4 DD UNIT=SYSCR,SPACE=(TRK,(1))
//SYSIN DD *
COPYLIB COPY OUTDD=COPIALIB,INDD=LIBRERIA
/*

//XXXXXX1 JOB CLASS=G,MSGCLASS=X,NOTIFY=XXXXXX,MSGLEVEL=(0,0)


//PASO010 EXEC PGM=IEBCOPY
//SYSPRINT DD SYSOUT=*
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 42 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

//ENTRADA DD DSN= ,DISP=SHR


//SALIDA DD DSN= ,DISP=SHR
//SYSUT3 DD UNIT=SYSCR,SPACE=(TRK,(1))
//SYSUT4 DD UNIT=SYSCR,SPACE=(TRK,(1))
//SYSIN DD *
COPY OUTDD=SALIDA,INDD=ENTRADA
SELECT MEMBER=((MEMBER,,R))
/*

3.1.13 HMBLIST.

//XXXXXX1 JOB CLASS=G,MSGCLASS=X,NOTIFY=XXXXXX,MSGLEVEL=(1,1)


//PASO020 EXEC PGM=HMBLIST
//SYSPRINT DD SYSOUT=*
//SYSLIB DD DSN=CALP.LINKBAT,DISP=SHR
//SYSIN DD *
LISTLOAD OUTPUT=XREF,TITLE=(„PUNTOS DE
ENTRADA‟,50),MEMBER=CULBC012
/*

3.1.14 IEBGENER
Se utiliza para imprimir o listar registros de un archive, copia datos de un sitio a otro. O
copia datos a un fichero

//* Imprime fuentes


//HCFUEN EXEC PGM=IEBGENER,COND=EVEN
//SYSIN DD *
//SYSUT1 DD DSN=CALP.XXXXXXX.FUENTE(XXXXXXX),
// DISP=(SHR,KEEP)
//SYSUT2 DD SYSOUT=9,
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//SYSPRINT DD DUMMY
//SYSIN DD DUMMY

3.1.15 IEBPTPCH
Tiene las siguientes entradas:

Un fichero de entrada que contiene datos a imprimir y que debe ser secuencial.

Los registros del fichero de entrada pueden ser de longitud fija o variable Si la longitud
del registro de entrada es superior a una línea impresa, la Utilitys divide el registro en
tantas líneas como sean necesarias.

Un fichero de control que contiene las informaciones de control para la utility. Estos datos
de control son necesarios para todos los usos del IEBPYPCH y, normalmente, están
incluidos en la misma corriente de control.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 43 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Codificación:

//LISTAR EXEC PGM=IEBPTPCH


//SYSPRINT DD SYSOUT=X
//SYSUT1 DD DSN=PREP.HISTORIC.DISKPRSD,DISP=SHR
//SYSUT2 DD SYSOUT=X
//SYSIN DD *
PRINT TOTCONV=XE,STOPAFT=25,MAXLINE=66 TITLE ITEM=(„LISTADO
REGS.PRUEBA CONVERSION CINTA‟)
/*

Instrucciones de control:

Las opciones del IEBPTPCH se controlan mediante las instrucciones de control PRINT,
TITLE y RECORD.

PRINT: Indica a la utility que se debe iniciar la impresión del fichero.

Su formato es:

PRINT [TOTCONV=XE][,STRTAFT=N][,STOPAFT=N][,MAXFLDS=N]
[,INITPG=N][,MAXLINE=N]
donde:

TOTCONV=XE, indica que los datos hay que listarlos en hexadecimal en vez de en
caracteres.

STRTAFT=N, indica el número de registros del fichero


de entrada que deben saltarse antes de comenzar la impresión, Si no se codifica se lista
desde el primer registro del fichero. Si se codifica, el valor de „N‟ no puede ser mayor de
„32767‟.

STOPAFT=N, indica el número de registros del fichero


de entrada que se deben de imprimir. La impresión finaliza cuando se haya listado el
número de registros indicado en „N‟ o al detectar el final del fichero.
Si no se codifica, se listan registros hasta detectar el final del fichero. Si se codifica, el
valor de „N‟ no puede ser mayor de „32767‟.

MAXFLDS=N, indica el número de Parámetros FIELD codificados en una instrucción


RECORD posterior.

INITPG=N, indica el primer número de pagina del listado. A partir de este número las
páginas se numeran secuencialmente de 1 en 1. Si no se codifica se asumen 1. Si se
codifica, el valor de „N‟ no puede ser mayor de 9999.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 44 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

MAXLINE=N, indica el número máximo de lineas por pagina, incluidas lineas en blanco,
títulos y subtítulos.

Si no se codifica asume 60.


TITLE: Indica a la utility los títulos del listado. Permite un titulo y un subtitulo. Si se
codifica esta sentencia debe ir a continuación de la PRINT.

Su formato es:
PRINT ITEM=(„Titulo‟[,Situación-salida])[,ITEM=...]
donde:

En el primer campo ITEM se codifica el titulo y en el


segundo el subtitulo.
„Titulo‟: Es el literal del titulo o subtitulo. Puede
contener hasta 40 caracteres encerrados entre comillas.

„Situación-salida‟: Indica la posición de comienzo del


literal en la línea de impresión. Si no se codifica asume 1.

RECORD: Indica a la utility los campos del registro que de-be de imprimir.

Su formato es:

RECORD FIELD=(Longitud[,Situación-entrada][,Conversión]
[,Situación-salida])[,FIELD=...]
donde:

Cada parámetro FIELD indica un campo a listar.

„Longitud‟: es la longitud en bytes del campo en el registro de entrada.

„Situación-entrada‟: es la posición en la que comienza


el campo en el registro de entrada. Si no se codifica asume 1.

„Conversión‟: Indica, en dos bytes, el tipo de conversión que se debe realizar con el
campo de entrada. Si no se codifica se mueve el campo a la línea de impresión tal y como
esta. Si se codifica puede ser „PZ‟ (indica que hay que desempaquetarlo) o

„XE‟ (indica que hay que listarlo en hexadecimal).

„Situación-salida‟: es la posición a partir de la que


hay que listar el campo en la línea de impresión. Si no se codifica asume 1.

Ejemplo:

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 45 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

El fichero de facturas pendientes es secuencial, reside en disco y tiene el siguiente


formato:

|Número|Número| Nombre |Importe |Fecha | |


| de | de | del | de la |de la | |
|Factu.|Clien.| Cliente |Factura |Factu.| |
|------|------|----//---|--------|------|-------//----------|
1 6 7 12 13 52 53 59 60 65 66 100

El importe de la factura tiene 13 caracteres numéricos empaquetados.

Se desean listar los siguientes campos de cada registro del fichero:

Número de factura en las posiciones 20 a 25.

Importe de la factura, desempaquetado, en las posiciones 30 a 42.

Fecha de la factura en las posiciones 45 a 49.

El listado debe llevar el titulo „listado de facturas‟ a partir de la columna 23.

//LISTAR EXEC PGM=IEBPTPCH


//SYSPRINT DD SYSOUT=X
//SYSUT1 DD DSN=PREP.facpendi.DISKPRSD,DISP=SHR
//SYSUT2 DD SYSOUT=X
//SYSIN DD *
PRINT MAXFLDS=3
TITLE ITEM=(„LISTADO DE FACTURAS‟,23)
RECORD FIELD=(6,1,,20),FIELD=(7,53,PZ,30),FIELD=(6,60,,45)
/*

3.1.16 IEBCOMPR.
La utilidad de IEBCOMPR se utiliza para comparar dos secuencial o modems repartidos.
Esta comparación del modem se realiza en el nivel del registro lógico. Por lo tanto,
IEBCOMPR es de uso general verificar que un copiado de reserva de un modem es
actual.
Durante el proceso, IEBCOMPR compara cada expediente de cada modem, uno por uno.
Si los expedientes son desiguales, IEBCOMPR enumera la información siguiente en el
SYSOUT:
Los números del expediente y de bloque en la pregunta.
Los nombres de las declaraciones de DD en las cuales la inconsistencia ocurrió.
Los expedientes desiguales.
Al comparar modems secuenciales, IEBCOMPR considera los modems iguales si se
resuelven las condiciones siguientes:
Los modems contienen el mismo número de expedientes.
Los expedientes y las llaves correspondientes son idénticos.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 46 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

//* Compara dos ficheros


//COMPARE EXEC PGM=IEBCOMPR
//SYSUT1 DD DSN=DB2P.DB2BC008.DISKPRSD,DISP=OLD
//SYSUT2 DD DSN=DB2P.VIEJO008.DISKPRSD,DISP=OLD
//SYSPRINT DD SYSOUT=X
//SYSOUT DD SYSOUT=X
//SYSIN DD *
COMPARE TYPORG=PS
/*

3.1.17 Ejemplos de cadenas de jcls.


1 //BRB0902S JOB (CONTAB),‟ MJDG „,CLASS=G,
// MSGLEVEL=(1,1),MSGCLASS=X,NOTIFY=BRB0902,
// USER=SYSDBP,PASSWORD=SYSDBP
2 //JOBLIB DD DSN=CALP.LINKBAT,DISP=SHR
// DD DSN=SYS1.DSN210.DSNLOAD,DISP=SHR
3 //PASO01 EXEC PGM=IKJEFT01,DYNAMNBR=20
4 //SYSOUT DD SYSOUT=*
5 //SYSPRINT DD SYSOUT=*
6 //SYSTSPRT DD SYSOUT=*
7 //SYSUDUMP DD SYSOUT=*
8 //SYSDBOUT DD SYSOUT=*
9 //MOVCORSD DD *
3040000662821 890125 890124 6 59 714 +00000380000
3040090694064 890209 880706 6 66 337 +00000010000
10 //FICCON01 DD *
3040000XXXXXX
11 //CINREDB2 DD DSN=XXXX.XXXXXXXX.XXXXXXXX,DISP=(,CATLG,DELETE),
// UNIT=SYSCR,SPACE=(CYL,(5,1),RLSE),
// DCB=(RECFM=FB,LRECL=49,BLKSIZE=4900)
12 //IMPRES01 DD SYSOUT=9,
// DCB=(RECFM=FA,LRECL=133,BLKSIZE=133)
13 //SYSTSIN DD *
14 DSN SYSTEM(DB3) RETRY(0) TEST(0)
15 RUN PROGRAM(PROCOB9) PLAN(PROCOB9) -
LIB(„CALP.LINKBAT‟)
16 END
/*

1 //BRB0902S JOB MSGLEVEL=(1,1),MSGCLASS=X,CLASS=H,NOTIFY=BRB0902,


2 //COND=(0,LT),TYPRUN=HOLD,TIME=1440
//*
3 //JOBLIB DD DSN=CALP.LINKBAT,DISP=SHR
4 //PASO0 EXEC PGM=XXXXXXXX,PARM=2035
5 //PASO1 EXEC RDRDKT
6 //RDRDKT.IEFRDER DD DATA,DLM=‟ZZ‟
7 //XXXXXXXP JOB CLASS=C,MSGCLASS=W,MSGLEVEL=(1,1),COND=(0,LT)
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 47 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

8 //*
9 //PASO2 EXEC PGM=SQLEPRES,REGION=4096K
10 //STEPLIB DD DSN=CALE.LINKBAT,DISP=SHR
11 //SYSOUT DD SYSOUT=*
12 //SYSUDUMP DD SYSOUT=*
13 //SYSDBOUT DD SYSOUT=*
14 //FICHERO1 DD LABEL=(,NL,EXPDT=98000),UNIT=581,
// VOL=SER=(QUINO1,QUINO2),
// DCB=(RECFM=FB,LRECL=800,BLKSIZE=9600)
15 //DBPRESTD DD DSN=PREE.BDPRE418.AL311286,DISP=OLD,UNIT=HTAPE,
// VOL=SER=(800196)
16 //DBCIN3TD DD DUMMY
17 //SALAHOKD DD DUMMY,AMP=AMORG
18 //HISTORA1 DD DSN=PREE.HISTOPRE.DE77AFIN(0),DISP=SHR,UNIT=HTAPE
19 //PERIODSD DD DSN=PREP.PERIODI1.DISKPRSD,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSCR,SPACE=(CYL,(45,10),RLSE),VOL=SER=338080,
// DCB=(RECFM=FB,LRECL=400,BLKSIZE=22400)
20 //FICHERO4 DD DUMMY,
// UNIT=SYSCR,SPACE=(TRK,(10,5),RLSE),
// DCB=(RECFM=VB,LRECL=300,BLKSIZE=30000)
21 //SQLPEST2 DD DSN=PREP.BASESQL1.SQLEPRES,DISP=(NEW,KEEP),
// UNIT=HTAPE,LABEL=(1,SL,EXPDT=98004),
// DCB=(RECFM=FB,LRECL=300,BLKSIZE=30000)
22 //CLIENTSD DD DSN=AHOP.SALCLISD.DISKPRSD,DISP=(,PASS),
// UNIT=SYSCR,SPACE=(CYL,(10,3),RLSE),
// DCB=(RECFM=VB,BLKSIZE=16000)
23 //SYSLIN DD DSN=&&LOADSET,UNIT=SYSDA,DISP=(MOD,PASS),
// SPACE=(TRK,(3,3)),DCB=BLKSIZE=800
24 //IMPRES01 DD SYSOUT=(X,,STD),FCB=3262,COPIES=2,
// DCB=(LRECL=00133,BLKSIZE=00133,RECFM=FA)
25 //FICCON01 DD *
26 13M 24-04-89
27 070587 C00003 MAYO
28 /*
29 //* ULTIMO PASO
30 //PASO3 EXEC PGM=XXXXXXXX
31 //SYSOUT DD SYSOUT=*
32 //SYSUDUMP DD SYSOUT=*
33 //SYSDBOUT DD SYSOUT=*
34 //PREPERSD DD
DSN=PREP.PERIODI1.DISKPRSD,DISP=(SHR,DELETE,KEEP)
35 //CTACLISD DD DSN=CLIP.CTASCLTE.DISKPRSD,DISP=SHR
36 //HISTORN2 DD DSN=PREE.HISTOPRE.DE77AFIN(+1),DISP=(,CATLG),
// UNIT=HTAPE
37 //SYSLIN DD DSN=&&LOADSET,DISP=(OLD,DELETE)
38 //IMPRES01 DD SYSOUT=9,
// DCB=(LRECL=00133,BLKSIZE=00133,RECFM=FA)
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 48 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

39 //IMPRES02 DD SYSOUT=(X,,STD),FCB=3262,
// DCB=(LRECL=133,BLKSIZE=0133,RECFM=FA),FREE=CLOSE
40 ZZ
41 //

FICHA: 1 y 7

Identifican el trabajo para el sistema.

BRB0902S: nombre del JOB.

JOB: nombre de la operación.

MSGLEVEL=(1,1): indica que se impriman todas las sentencias de control y todos los
mensajes de asignación/terminación.

MSGCLASS=X: especifica que la clase de salida donde queremos que vayan todos los
mensajes del sistema y las sentencias de control es la “X”.

CLASS=H: indica que la cola de entrada donde se va a colocar el JOB en espera de su


ejecución es la clase “H”.

NOTIFY=CE15420: le indica al sistema que envie un aviso al usuario de TSO „BRB0902‟


cuando termine la ejecución del traba - jo.

COND=(0,LT): especifica que el JOB se debe de dejar de ejecutar si algún paso devuelve
un código de retorno mayor de „0‟.

TYPRUN=HOLD: indica que el JOB se coloca en cola de entrada pero que no se llamara
a ejecución hasta que sea liberado por un operador.

TIME=1440: indica que el JOB no tiene limitación de tiempo.

FICHA: 2-8-29
Nos indican lineas de comentarios.

FICHA: 3 - JOBLIB
Indica que los programas especificados en las fichas EXEC de-ben buscarse en la librería
„CALP.LINKBAT‟ que ya existe y se comparte (DISP=SHR).

FICHA: 4-5-9-30
Identifican pasos de trabajo dentro del JOB.
PASOX: nombre del paso.

PGM=XXXXXXXX: indica el nombre del programa que se va a ejecutar.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 49 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

PARM=2035: indica que se debe pasar la constante „2035‟ al programa que se esta
ejecutando.

REGION=4096K: se limita a 4096 k‟s la memoria virtual que se puede tomar.

La sentencia DD nos va a permitir referenciar los ficheros con los que se va a trabajar.
Su codificación es la siguiente:
//NOMBRE DD PARAMETROS COMENTARIOS

FICHA: 6 - DATA
Nos indica que entre los datos que componen el fichero figuran sentencias de control.
Para indicar cual es el delimitador que actúa como fin de fichero se utilizara el parámetro
DLM.

DLM=‟ZZ‟: nos define un delimitador distinto del estándar (en este caso „ZZ‟) que nos
indicara el fin del fichero. (En este caso el fin de fichero se especifica en la ficha 40).

FICHA: 10 - STEPLIB
Indica que lel programa especificado en la ficha EXEC de ese paso debe buscarse en la
libreria „CALE.LINKBAT‟ que ya existe y que se comparte (DISP=SHR).
.

FICHA: 11-31 - SYSOUT


Indica que el fichero queda asignado a la misma clase de salida que la especificada en el
parámetro MSGCLASS.

FICHA: 12-13-32-33 - SYSUDUMP, SYSDBOUT


Nos definen ficheros donde se va a efectuar un vuelco de memoria en caso de que el
paso termine anormalmente.

FICHA: 14
FICHERO1: DDname del fichero a utilizar.

LABEL: especifica el tipo de etiquetas de la cinta.

lugar para la secuencia.

NL: sin etiquetas.

EXPDT: expiración.

UNIT=581: nos indica que la cinta debe de ser montada en la unidad 581.

VOL=SER: nos indica el volumen donde reside y el número de serie del fichero que
deseamos (QUINO1 y QUINO2).

DCB: nos describe internamente el fichero.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 50 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

RECFM=FB: los registros son de longitud fija y bloqueados.

LRECL=800: los registros son de 800 octetos.

BLKSIZE=9600: el bloque es de 9600 octetos (debe ser un múltiplo de la longitud de


registro).

FICHA: 15
Nos indica que el fichero a utilizar tienen por DDNAME „DB - PRESTD‟ y como DSNAME
„PREE.BDPRE418.AL311286‟, que es de utilización compartida (DISP=SHR), que esta en
un dispositivo HTAPE y que el volumen y el número de serie en donde se encuentra es el
800196.

FICHA: 16-17
Los ficheros „DBCIN3TD‟ y „SALAHOKD‟ se definen como ficticios (el parámetro
AMP=AMORG se pondrá en los VSAM al definir - los como DUMMY).

FICHA: 18
Nos indica que el fichero HISTORA1 que se encuentra en el dispositivo HTAPE y que
sera compartido (SHR), es el primero del grupo de generación
„PREE.HISTOPRE.DE77AFIN‟.

FICHA: 19
Nos define un nuevo fichero, el PERIODSD, cuya DSNAME sera
„PREP.PERIODI1.DISKPRSD‟.

DISP: decimos que el fichero se crea en ese paso (NEW) y que si el paso termina bien
debe ser catalogado (CATLG) y si termina mal debe ser borrado (DELETE).
UNIT=SYSCR: el fichero se creara en la unidad SYSCR.

SPACE=(CYL,(45,10),RLSE): Indicamos el espacio que asignamos a ese nuevo fichero.


El espacio se medirá en cilindros (CYL) y será, inicialmente, de 45, cogiendo, en caso
necesario, extensiones de 10 cilindros.

Con RLSE indicamos que el espacio que no se haya utilizado en la creación del fichero
deberá liberarse cuando se cierre el fichero.

VOL=SER=338080: le indicamos el volumen y el número de serie en donde queremos


que se cree el fichero (338080).

DCB=(RECFM=FB,LRECL=400,BLKSIZE=2400): los registros serán de 400 octetos de


longitud, fija y bloqueada a 22400.

FICHA: 20
El fichero se crea como ficticio (DUMMY).
El espacio se mide en pistas (TRK).
Los registros son de longitud variable y bloqueados (VB).
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 51 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

(En el parametro LRECL, para el caso de longitud variable, se da la mayor longitud de los
registros).

FICHA: 21
El fichero se crea en ese paso y se le dice que, si el paso termina bien, lo guarde para
pasos posteriores.

El fichero se creara en el dispositivo HTAPE (cinta).

LABEL=(1,SL,EXPDT=9800): aquí le explicamos que el fichero será el primero dentro de


la cinta, que tiene etiqueta están - dar IBM y la expiración del mismo.

FICHA: 22
El fichero se crea y, si el paso termina normalmente, se guarda para pasos posteriores
(PASS) conservando toda la información sobre el mismo.

FICHA: 23
Aquí se define un fichero temporal (la DSN comienza por „&&‟)
que será utilizado en el PASO3 (ficha 37) de forma exclusiva, borrándose al final de dicho
paso.

FICHA: 24-38-39
Nos definen ficheros de impresora.

SYSOUT=(X,,STD): nos indica que la clase a la que queda asignada esa impresora es la
„X‟ y que el tipo de formulario es el estándar (STD).

FCB=3262: especifica que el programa de control de carro es el 3262.

COPIES=2: indica el número de copias que deseamos (por de-fecto asume 1).
DCB=(LRECL=133,BLKSIZE=133,RECFM=FA): se indica que es un fichero de
impresora con una longitud de registro de 133 y un blocaje tambien de 133.

FREE=CLOSE: el fichero se libera cuando se cierra (por de-fecto es END, que libera al
terminar el paso).

FICHA: 25
Definimos un fichero (que ya existe) y le decimos que los da-tos relativos al mismo van en
las fichas siguientes.
Los datos van en las fichas 26 y 27 y la ficha 28 indica el final de los mismos.

FICHA: 34
Definimos un fichero que ya existe y que sera tratado de for-ma compartida. Si el paso
termina normalmente el fichero se bo - rrara y si no se guardara.

FICHA: 41
Indica la finalización de un JOB. Cualquier ficha posterior a esta no seria tratada.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 52 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

4 CAPITULO IV
4.1 BASES DE DATOS.

El DB2 es un sistema de manejo de bases de datos basado en un modelo relacional de


datos. Rueda bajo sistema operativo MVS/SP como un sub-sistema de este:

4.1.1 Conceptos básicos.


DB2 es un gestor de bases de datos relacionales que permite a los usuarios crear,
modificar y controlar bases de datos relacionales utilizando SQL.
Está diseñado para satisfacer la búsqueda de información y está disponible en una gran
variedad de plataformas, incluyendo grandes sistemas cómo OS/390, sistemas
intermedios cómo OS/400 y otros.

4.1.2 Tablas.
Los datos en las bases de datos DB2 están disponibles para un programa de aplicación
como un conjunto de tablas. Las tablas son estructuras de datos de dos dimensiones,
compuestas de FILAS y COLUMNAS.
Un nombre de tabla esta formado por un identificador de la persona que creo la tabla, y de
un nombre descriptivo de esta, separados por punto.

4.1.3 Elementos de las bases de datos relacionales.


Valor: Parte elemental de una fila
Fila(registro) : Colección de valores en horizontal.
Tabla: Colección de filas
Base de Datos: Colección de tablas

Tipos de datos que puede contener una columna de una tabla.

Cadenas de caracteres ebcdic:


CHAR : - Cadenas de longitud fija
VARCHAR: - Cadenas de longitud variable

Datos numéricos:
SMALLINT: Enteros binarios de media palabra
INTEGER: Enteros binarios de una palabra
DECIMAL: Números decimales
FLOAT: Números de coma flotante

Cadenas de caracteres gráficos:


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 53 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

GRAFHIC: - DBCS (Double Byte Character Data) de longitud fija


VARGRAPHIC : - DBCS de longitud variable
INDICES

4.1.4 Mecanismos de seguridad de los datos.

El DB2 proporciona dos mecanismos de acceso a tablas, acceso secuencial y acceso


directo mediante índices.

El índice debe ser único.


Están basados en los valores de los datos de una o más columnas, y son mantenidos
automáticamente por el DB2 cuando se produce un cambio en los datos contenidos en la
tabla.

Un programa no se refiere a los índices, sino que el DB2 selecciona el índice para
acceder a los datos que el programa requiere.

El DB2 nunca usa como índice una columna que va a ser actualizada, o una columna que
esta siendo comparada con otra de la misma fila.

VISTAS: Permiten a un usuario acceder solo a ciertas filas o columnas de una tabla.

RACF (RESOURCE ACCESS CONTROL FACILITY): Proporciona control de acceso al


DB2 por usuarios o aplicaciones no autorizados, a los ficheros vsam que contienen las
bases de datos, a un dispositivo de acceso directo, etc.

PASSWORDS DE FICHEROS VSAM: Se usan en ficheros no protegidos con RACF.


AUTORIZACION

Mediante instrucciones GRANT y REVOKE de identificadores de usuarios.


MECANISMOS DE INTEGRIDAD DE LOS DATOS

CONCURRENCIA: El DB2 permite que más de un programa acceda a los mismos datos
al mismo tiempo.
La concurrencia es controlada mediante LOCKS. Consisten en asociar un recurso DB2
con un programa, de forma que esta asociación afecta a como pueden acceder otros
programas al mismo recurso. Existen varios tipos:

S (Share), U (Update), X (Exclusive), etc.


Ningún programa podrá acceder a los datos que hayan sido cambiados por otro
programa, pero que todavía no estén en la base.

4.1.5 Instrucciones básicas.


Las instrucciones en lenguaje S.Q.L. (STRUCTURED QUERY LANGUAGE) permiten
comunicar peticiones de acceso a datos al DB2.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 54 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Es usado por el administrador de la base de datos para crear y cambiar definiciones de


datos, por el administrador del sistema en cuanto a autorizaciones a usuarios de los
datos, y por el programador de aplicaciones para recuperar y actualizar datos.

4.1.5.1 Cláusulas y consultas


Si necesitamos hacer una consulta de una tabla, en un momento concreto y con unos
datos muy específicos lo podemos hacer mediante las cláusulas SELECT y FROM.

SELECT sirve para seleccionar columnas.


FROM sirve para seleccionar tablas.

4.1.6 Estructura de una sentencia SQL


Las instrucciones en lenguaje SQL. (STRUCTURED QUERY LANGUAGE) permiten
comunicar peticiones de acceso a datos al DB2. Es usado por el administrador de la base
de datos para crear y cambiar definiciones de datos, por el administrador del sistema en
cuanto a autorizaciones a usuarios de los datos, y por el programador de aplicaciones
para recuperar y actualizar datos.

La primera cláusula de una instrucción SQL dice al DB2 que operación se


quiere realizar.
En SQL tenemos bastantes sentencias que se pueden utilizar para realizar diversas
tareas.
Dependiendo de las tareas, estas sentencias se pueden clasificar en tres grupos
principales (DML, DDL,DCL), aunque nos quedaría otro grupo que a mi entender no está
dentro del lenguaje SQL sino del PLSQL.

SENTENCIA DESCRIPCION
DML MANIPULACION DE DATOS
SELECT Recupera datos de la base de datos.
INSERT Añade nuevas filas de datos a la base de datos
DELETE Suprime filas de datos de la base de datos.
UPDATE Modifica datos existentes en la base de datos.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 55 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

SENTENCIA DESCRIPCION
DDL DEFINICION DE DATOS
CREATE TABLE Añade una nueva tabla a la base de datos.
DROP TABLE Suprime una tabla de la base de datos.
ALTER TABLE Modifica la estructura de una tabla xistente.
CREATE VIEW Añade una nueva vista a la base de datos.
DROP VIEW Suprime una vista de la base de datos.
CREATE INDEX Construye un índice para una columna.
DROP INDEX Construye un índice para una columna.
CREATE SYNOYM Define un alias para un nombre de tabla.
DROP SYNONYM Suprime un alias para un nombre de tabla.

SENTENCIA DESCRIPCION
DCL CONTROL DE ACCESO
GRANT Concede privilegios de acceso a usuarios
GRANT Concede privilegios de acceso a usuarios
CONTROL DE
TRANSACCIONES
COMMIT Finaliza la transacción actual.
ROLLBACK Aborata la transacción actual.

SENTENCIA DESCRIPCION
PLSQL SQL EN POGRAMAS
DECLARE Define un cursor para una consulta.
OPEN Abre un cursor para recuperar resultados de consulta
FETCH Recupera una fila de resultados de consulta.
CLOSE Cierra un cursor

4.1.7 Componentes SINTÁCTICOS.

La mayoría de sentencias SQL tienen la misma estructura.


Todas comienzan por un verbo (select, insert, update, create), a continuación le sigue una
o más clausulas que nos dicen los datos con los que vamos a operar (from, where),
algunas de estas son opcionales y otras obligatorias como es el caso del from.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 56 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

4.1.7.1 Cláusula WHERE.


Especifica una condición de búsqueda que, identificara la fila o filas que se quieren
recuperar, borrar o actualizar.

La condición de búsqueda puede estar formada por uno o varios predicados separados
por AND y OR.

El DB2 primero evalúa las cláusulas NOT, luego AND y por ultimo OR. Se puede cambiar
el orden de evaluación por medio de paréntesis, que son examinados primero.

Ejemplos:

. WHERE NOT WORKDEPT = 'C01'


. WHERE EMPNO = :EMPID
. WHERE JOBCODE + EDUCLVL > 70
. WHERE SEX = 'V' AND (DEPT = 'C1' OR DEPT = 'C2')

4.1.7.2 UPDATE CON SELECT.


Muy a menudo tenemos la necesidad de actualizar ciertos campos que requieren de una
consulta previa, para estos casos podemos realizar todo en una misma sentencia.

Para realizar dicha sentencia utilizaremos un update y dentro del where o el set
colocaremos el select con la consulta que necesitemos.

Tenemos que tener en cuenta que cuando la consulta forma parte del set debemos
seleccionar una única fila y el mismo número de columnas que hay entre paréntesis al
lado del set.
La sintaxis es la siguiente:

update <nombre tabla>


set columna1=valor1, columna1=valor2, ..
where columna3=(select ...);

Si utilizamos el set seria esta otra:

update <nombre tabla>


set (columna1,columna2, ?)=(select col1, col2,..)
where condición;

4.1.7.3 LA SENTECIA SELECT.


Es la sentencia mas utilizada durante todo el acceso a bases de datos.

Para recuperar información de las base de datos, utilizamos la sentencia select, que tiene
la siguiente sintaxis:

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 57 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

select [ALL|DISTINCT]
[expre_column1, expre_colum2, ..., expre_column | *]
FROM [nombre_tabla1, nombre_tabla2, ..., nombre_tablan]
[WHERE condicion]
[ORDER BY expre_colum [DESC|ASC] [,expre_colum [DESC|ASC]]...];

Donde expre_colum puede ser una columna de una tabla, una constante, una o varias
funciones, incluso expresiones aritméticas.

La única cláusula obligatoria es la cláusula FROM, las demás son opcionales todas.

4.1.7.4 FROM .
Nos indica la tabla o lista de tablas de las que vamos a recuperar la información.
Si un usuario de la base de datos no es el propietario de la tabla, tendrá que especificar el
nombre de usuario delante de la tabla, como se ve en el siguiente ejemplo.
select * from profesor.alumnos;
Donde profesor seria el nombre de usuario y alumnos el nombre de la tabla.

También podemos darles nombres distintos o más cortos a las tablas mediante lo que se
donomina alias.
select a.nombre, a.edad from alumnos a;
La tabla alumnos toma el alias a.

4.1.7.5 WHERE.
Nos devuelve las filas que cumplen la condición expresada. El formato de la condición es
el siguiente:
expresión operador expresión.

Podemos construir condiciones múltiples usando los operadores lógicos AND OR y NOT,
así mismo podemos utilizar los parentesis para forzar el orden de ejecución de las
expresiones.

Un ejemplo de utilizacion del where muy simple es la siguiente:

select nombre from alumno where nota>7 and edad<7;

Esta sentencia solo nos mostraría el nombre de los alumnos que cumplieran las dos
condiciones expresadas.

ALL : Con esta cláusula recuperamos todas las filas aunque tengamos repetidas,
es la cláusula por defecto.

DISTINCT: Es la contraria que la anterior, solo nos recupera las filas que no están
repetidas.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 58 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

ORDER BY: Esta cláusula nos especifica el criterio de ordenación del resultado obtenido
en la consulta. ASC nos especifica una ordenación ascendente y DES descendente.

Podemos anidar criterios siendo el situado más a la izquierda el principal. Ponemos un


ejemplo para verlo más claro:

select * from alumnos oder by nombre, curso desc;

cláusulas GROUP BY y HAVING.


Con estas clausulas vamos a poder hacer consultas más complejas y avanzadas que nos
permitiran filtrar mejor la información o sacar conjuntos de informaciones ordenadas de
una determinada forma.

La sentencia select nos deja agrupar uno o más conjuntos de filas si utilizamos la cláusula
gruop by por las columnas especificas y el orden especificado, siendo el formato el
siguiente:

select ...
from ...
group by columna1, columna2, columnaN....
having condicion
order by....

Los datos seleccionados en la sentencia que lleva el group by deben ser o una constante,
o una funcion de grupo o una columna que aparezca en el group by también.

Cláusulas avanzadas de selección.

Combinación externa (outer join).


Esta clausula nos permite seleccionar filas de una tabla aunque no tengan
correspondencia con flas de la otra tabla con la que se la combina.

Su formato es el siguiente:

select tabla1.columna1, tabla1.columna2, tabla2.columna2


from tabla1, tabla2
where tabla1.columna1=tabla2.columna1;

Como se puede apreciar es bastante fácil y no crea mayor duda. Los registros que no
tengan correspondencia con la otra tabla no aparecerán. Para que aparezcan tendremos
que colocar el símbolo (+) al final del where y la columna que queremos que aparezca.

Un ejemplo de select seria el siguiente:

select departamento.num, departamento.nombre, emple.nombre


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 59 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

from departamento, nombre


where departamento.num=emple.num;

Aquí agrupamos por el num del departamento que se encuentra en las dos tablas.

Operadores aritméticos.

Los operadores aritméticos sirven para formar expresiones con constantes, funciones de
valores de columnas.
Operador aritmético Operación

+ suma

- resta

* multiplicación

/ división

4.1.7.6 Operadores de comparación y lógicos


Operadores lógicos

Operador Función

and Devuelve el valor TRUE cuando los dos condiciones son verdaderas

or Devuelve el valor TRUE cuando una de las dos condiciones es verdadera

not Devuelve el valor TRUE si la condición es falsa.

Operadores de comparación

Operador Función

= Igual a

> Mayor que

>= Mayor o igual que

< Menor que

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 60 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

<= Menor o igual que

¡= <> Distinto de

4.1.7.7 Operadores de comparación de cadenas de caracteres.


Para comparar cadenas de caracteres utilizamos el símbolo =. Ponemos un ejemplo.
Select * from emple where oficion='analista'

Este operador no nos sirve si queremos hacer una consulta del tipo de: "sacar los datos
del empleado cuyo oficio empiece por P"

Para especificar este tipo de consultas, en SQL usamos el operador LIKE que permite
utilizar los siguientes caracteres especiales en las cadenas de comparación:

% Comodín: Representa cualquier cadena de 0 o más caracteres

'_' Marcador de posición: representa un carácter cualquiera.

Ponemos un ejemplo para que quede algo más claro:

Select * from emple where nombre LIKE 'P%'

Esta consulta nos mostraría todos los datos de los empleados cuyo nombre empezará por
P

4.1.7.8 Null y Not Null


Se dice que una columna de una fila es NULL si está completamente vacía.
Podemos utilizar estos términos a la hora de hacer consultas si queremos saber si una
columna esta vacía o no.
Por ejemplo, A partir de una tabla de empleados consultamos los apellidos de aquellos
que no tengan comisión, que es lo mismo que decir, aquellos que su comisión sea nula.

Select apellido from empleado where comisión IS NULL;

De esta misma forma podemos preguntar por los que tengan comisión.

Select apellido from empleado where comisión IS NOT NULL;

4.1.7.9 Operador IN
Hasta ahora todas las comprobaciones lógicas que hemos visto comparan una columna o
expresión con valor, pero también podemos comparar conjunto de valores.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 61 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

El operador IN nos permite comprobar si una expresión pertenece a un conjunto de


valores. Su sintaxis es la siguiente:

IN (lista de valores separados por comas)

De la misma forma utilizamos el NOT IN para saber si no están dentro de ese conjunto de
valores.

Un ejemplo de utilización de IN y NOT IN:

Queremos mostrar los apellidos de la tabla empleado cuyo número de departamento sea
el 10 o el 30
Select apellido from empleado where departamento IN (10,30);

Queremos mostrar los apellidos de la tabla empleado cuyo número de departamento no


sea ni el 10 ni el 30
Select apellido from empleado where departamento NOT IN (10,30);

También lo podemos aplicar a lista de valores con cadenas:

Queremos mostrar los apellidos de la tabla empleado cuyo oficio sea peón o capataz

Select apellidos from empleado where oficio IN ('peon','capataz');

4.1.7.10 Operador BETWEEN.


Este operador comprueba si un valor está comprendido o no dentro de un rango de
valores. Su sintaxis es la siguiente:

<expresión> [NOT] between valor_inicial AND valor_final

Ponemos un ejemplo:
Queremos mostrar el apellido y el salario de los empleados cuyo salario este comprendido
entre 2000 y 2500 euros

Select apellido,salario from empleado where salario between 2000 and 2500

4.1.7.11 Operadores AND y OR combinados


Estos operadores se pueden combinar para sacar resultados más complicados en
nuestras sentencias selects, pero siempre con cuidado y utilizando los paréntesis para
agrupar las expresiones que se desean evaluar.
El orden de prioridad de los operadores lógicos es el siguiente, primero NOT, luego AND y
por último OR.

Ejemplo de uso:
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 62 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Queremos obtener el apellido, salario y departamento de los empleados cuyo salario sea
mayor de 1000 euros en los departamentos 10 o 30

Select apellido,salario, departamento from empleado where salario>1000 and


(departamento=10 or departamento=30);

4.1.7.12 Operador UNIÓN.


Este operador combina los resultados de dos columnas. Si existe alguna fila duplicada
solo aparece una en el resultado.

Su formato es el siguiente:

select col1, col2, ... from tabla1 where condición


union
select col1, col2, ... from tabla2 where condición;

Si queremos que nos aparezcan también las filas duplicadas tenemos que utilizar el
operador unión all

Por ejemplo si quisiéramos mostrar todos los trabajadores de una empresa, tanto los
nuevos como los dados de baja tendríamos que hacer una sentencia como esta:

select nombre from trabajadores_nuevos


union
select nombre from trabajadores_viejos;

4.1.7.13 Operador INTERSECT.


Este operador nos devuelve las filas que son iguales en ambas consultas. Como en el
anterior por defecto las filas duplicadas se eliminan y no se muestran en el resultado.

Su formato es el siguiente:

select col1, col2, ... from tabla1 where condición


intersect
select col1, col2, ... from tabla2 where condición;

Un ejemplo muy sencillo seria mostrar los alumnos que todavía están estudiando.

select nombre from alumnos_activos


intersect
select nombre from alumnos;

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 63 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

4.1.7.14 Operador MINUS.


El operador minus nos devuelve las flas que están en la primera select y no en la
segunda. Como en los casos anteriores las filas duplicadas no se muestran en el
resultado.

Su formato es:

select col1, col2, ... from tabla1 where condición


minus
select col1, col2, ... from tabla2 where condición;

Un ejemplo para este operador seria mostrar los alumnos que no están en actives .

select nombre from alumnos


minus
select nombre from alumnos_activos;

Además es importante saber que si vas a realizar este tipo de consultas siempre tiene que
haber el mismo número de columnas en las dos select y que los tipos de datos deben
coincidir.

4.1.7.15 SUBCONSULTAS.
Una subconsulta no es más que un select dentro de otro select. Las subconsultas son
aquellas sentencias select que forman parte de la clausula where de otra sentencia select.
El formato es el siguiente:

SELECT …
FROM ….
WHERE columna operador_comparativo (SELECT….. FROM… WHERE…);

Cuando se ejecuta esta sentencia primero se realiza la subconsulta y luego el resto de


sentencia.

4.1.8 Condiciones de búsqueda en subconsultas


Las subconsultas normalmente aparecen como parte de la condición de una búsqueda
dentro del where o having.
Condiciones de búsqueda que puede haber dentro de una subconsulta:

Comparación de subconsultas: Comparan el valor de la expresión con un valor único


obtenido en la subconsulta. Son los simbolos típicos de comparación (<,>,=,<=,>=).

Select * from empleado where oficio=(select oficio from empleado where apellido='Lopez');

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 64 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Pertenencia a un conjunto de valores devueltos por la subconsulta: Comprueba si el valor


esta dentro del conjunto de valores devuelto por la subconsulta.

Select * from empleado where oficio IN (select oficio from empleado where
departamento=20);

Existencia: nos dice si la subconsulta devuelve alguna fila o no. Para ello utilizamos las
palabras EXISTS o NOT EXITS.

Select * from departamento where EXISTS (select * from empleado where


empleado.id_departamento = departamento.id_departamento);

Comparación cuantificada: Para esto también utilizamos los comparadores basicos unidos
a ANY o ALL.

ANY compara el valor de una expresión con cada uno del conjunto de valores obtenidos
en la subconsulta. Con que una de las comparaciones de TRUE la consulta da TRUE

Select * from empleado where salario = ANY (select salario from empleado where
id_departamento=30);

ALL compara el valor de una expresión con cada uno del conjunto de valores obtenidos
en la subconsulta. Tienen que ser todos TRUE para que la subconsulta devuelva TRUE

Select * from empleado where salario < ALL (select salario from emple where
id_departamento=20);

Subconsultas que generan valores simple


Son las subconsultas que obtienen un solo registro. Para ello utilizamos los operadores de
comparación básicos. Si la subconsutla devuelve más de un registro nos sale un mensaje
de error.

Subconsultas que generan listas de valores: Son las subconsultas que nos devuelven
más de un registro. Para estas subconsultas utilizamos el operador IN.

Subconsultas correlacionadas: Estas subconsultas hacen referencia a una columna o


varias de la consulta principal. Para verlo mejor ponemos un ejemplo.

Queremos obtener los datos de los empleados cuyo salario sea el máximo salario del
departamento.

Select * from empleado E where salario = (select max(salario) form empleado where
id_empleado=E.id_empleado);

Esta sentencia devuelve para cada fila que se obtiene el máximo salario del departamento
que se está obteniendo en la consulta principal.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 65 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Funciones aritméticas en SQL: Este tipo de funciones trabajan únicamente con datos
númericos del tipo number, y se pueden dividir en tres grupos principales.

Funciones de valores simples: Estas funciones son las más sencillas y trabajan con un
único número, variable o columna de la tabla.

Función Propósito
ABS(n) Nos devuelve el valor absoluto de n
CEIL(n) Nos devuelve el valor entero igual o inmediatamente superior a n
FLOOR(n) Nos devuelve el valor entero igual o inmediatamente inferior a n
MOD(m,n) Nos devuelve el resto de la división de m entre n
POWER(m,
Calcula la potencia de m elevado a exponente
exponente)
SIGN(valor) Nos devuelve el signo de valor
Función que nos sustituye valor por expresión siempre que valor
NVL(valor, expresión)
sea NULL
ROUND(número[, m]) Nos redondea numero a m decimales
SQRT(n) Nos devuelve la raíz cuadrada de n
TRUNC(número[,m ]) Trunca los números para que tengan m decimales.

Pasamos a poner algunos ejemplos para que os quede más claro como se utilizan:

Select ceil(2.3) from tabla; (esta consulta nos devolvería 3)

Select mod (11,4) from tabla; ( nos devolvería 3)

Select round(22.38,1) from tabla; (nos devolvería 22.4)

Funciones de grupos de valores: Este tipo de funciones se utilizan principalmente para


realizar estadísticas, por lo que los valores nulos no se toman en cuenta.

Dentro de este grupo se encuentran las siguientes funciones:


Función Propósito
AVG(n) Nos devuelve la media de n
COUNT(*|expresión) Nos devuelve el número de veces que aparece expresión.
MAX(expresión) Nos devuelve el valor máximo de expresión
MIN (expresión) Nos devuelve el valor mínimo de expresión
VARIANCE(expresión) Nos devuelve la varianza de expresión
SUM(expresión) Nos devuelve la suma de valores de expresión.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 66 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Pasamos a poner algunos ejemplos:

Select avg(salario) from empleado; (nos devolvería el salario medio de todos los
empleados)

Select count(*)from empleado; (nos devuelve el numero de empleados que tenemos)

Select min(salario) from empleado; (nos devuelve el menor salario encontrado en la tabla
empleado)

Funciones de listas: Estas funciones trabajan con grupos de columnas dentro de una
misma fila.

Dentro de este grupo de funciones se encuentran las siguientes :

Función Propósito
GREATEST(valor1, valor2,…) Obtiene el mayor valor de la lista
LEAST(valor1, valor2,...) Obtiene el menor valor de la lista

Para explicar estas funciones vamos a poner un ejemplo un poco más complicado, donde
el enunciado sería el siguiente:

Queremos mostrar por cada alumno su mayor nota de todas las que tiene.

Select alumno, greatest(nota1,nota2,nota2,nota4,nota5) "nota" from alumnos;

4.1.9 Manipulación de datos.


Para insertar datos en una tabla utilizaremos la orden

INSERT con el siguiente formato:

Insert into nombre_tabla [(columna [, columna]...)] values (valor [,valor]...);

Donde el nombre_tabla es el nombre de la tabla donde queremos insertar los nuevos


datos.
[(columna [, columna]…)] representas las columnas donde vamos a insertar los datos. Si
no las especificamos por defecto se entiende que vamos a introducir datos en todas las
columnas de la tabla.

(valor [,valor]…) representan los valores que vamos a insertar en dichas columnas. Estos
valores deben estar colocados en las mismas posiciones que las columnas a las que
pertenecen.

Cualquier columna que no aparezca en el insert se rellenara con NULL siempre y cuando
dicha columna no esté definida como NOT NULL. Si la columna es NOT NULL y no
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 67 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

aparece en el insert la orden nos devolverá error.

Ejemplo: Damos de alta un nuevo alumno en la tabla alumno

Insert into alumno (nombre, dni, apellidos) values ('PEPE','47334562T','SANCHEZ');

Ejemplo 2: Damos de alta una asignatura nueva

Insert into asignatura (nombre, horas, dept_no) values ('Lengua',4,10);

También podemos añadir valores directamente desde una consulta select.

Para ello realizamos una consulta select en la que añadimos un insert y como resultado
tendremos tantas nuevas filas como resultados tenemos en el select. El formato de estas
inserciones es el siguiente:

Insert into nombre_tabla1 [(columna[,columna]...)]


Select {columna [,columna?|*}
From nombretabla2 [claúsulas de select];

Para que se vea mejor os dejo un ejemplo donde se ve bastante bien.

Ejemplo: Insertamos los datos de los empleados del departamento 10 (tabla emple10) en
la tabla de ejemplo.

Insert into emple


Select *
from emple10
Where
Departamento=10;

hay que tener en cuenta es que necesitamos conocer las columnas de la tabla donde
queremos insertar dichos datos.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 68 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

5 CAPITULO V
5.1 ARQUITECTURA.
Es el núcleo central responsable directo de la gestión del entorno técnico de Altamira.

5.1.1 Características de arquitectura.


Integración - Interfaz único y común para toda la aplicación, los programas y el sistema de
teleproceso.

Estandarización.

Flexibilidad- Soporta todas las transacciones de un teleproceso bancario,


independientemente del tipo de terminal conectado.

Apertura- Facilita la incorporación de nuevas aplicaciones.


Parametrización.

Desarrollo- Facilita el mantenimiento de aplicaciones.


Versatilidad.

Rendimiento- Minimiza el número de accesos DB2, usando recursos en memoria para el


intercambio de datos con las aplicaciones.

5.1.2 Funciones de arquitectura.


Gestionar la comunicación entre terminales y aplicaciones:
Independiza las aplicaciones del tipo de terminal

Controla el flujo de la navegación entre pantallas

Controlar la seguridad

Proporcionar servicios específicos bancarios

Soportar la carga transaccional del entorno on-line

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 69 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

5.1.3 Esquema general de arquitectura.

5.1.4 Esquema detallado de arquitectura.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 70 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

5.1.5 Aplicaciones.
Generalidades de Arquitectura Central

Núcleo fundamental del sistema.

Gestiona recursos, mensajes, flujo desde la entrada hasta la salida, pantallas, impresoras,
acceso base de datos, etc.

Simplifica los programas aplicativos.

Se encarga de que los programas reciban los datos de pantalla en un formato común.

Maneja el área de comunicaciones, proporcionando a las aplicaciones toda la información


del sistema que pudieran necesitar (fechas contable y de operación, hora de inicio,
terminal ejecutante, usuario, etc.).

Arquitectura Central (QC)


Arquitectura General (QG)
Arquitectura de Rutinas (QR)
Arquitectura de Mantenimiento (QM)

QM

QR

QG

QC

Generalidades de arquitectura general.


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 71 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Programas y transacciones de consulta general y de apoyo a los programas aplicativos:


Utilerías de la Arquitectura para Sign-on
Consultas específicas de Totales
Última transacción
Mensajes de error
Consulta de journal

Generalidades de arquitectura de rutinas.


Servicios generales a programas aplicativos que requieren:
Revisión de datos de entrada (i.e. campos que deban ser numéricos).
Operaciones con fechas (i.e. suma de días a una fecha, cálculo de días entre dos fechas,
etc.).

Generalidades de arquitectura de mantenimiento.


Menú principal de mantenimiento que permite configurar:
Aplicaciones.
Transacciones.
Formatos y preformatos.

Mensajes de error y aviso.

Medio sencillo, consistente y completo para la parametrización del control del


sistema y del funcionamiento de los elementos de Altamira.

Detalle menú de manteniento.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 72 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

5.1.6 Listado de mantenimiento.

Aplicaciones
Transacciones
Formatos
Preformatos
Mensajes de Error o Aviso
Totales Contables

Listado de aplicaciones. parámetros:


APL: Código de la aplicación.

DESCRIPCION: Descripción de la aplicación.

TRANS: Número de transacciones de la aplicación en la tabla de

transacciones.
ESTADO: Estado de la aplicación:

<blanco>: Activada.

DESACT: Desactivada.

CAMBIO: En cambio de sesión.

RECUPER: En Recuperación (ya no se usa).

CAMBIO ESTADO: Fecha y hora del último cambio de estado.

FHA.PROD: Fecha de pase a producción de la aplicación

5.1.6.1 Parámetros:

NEW COPY: Indicador para “refrescar” la modificación en memoria volátil.

CODIGO DE APLICACIÓN: Identificador.

DESCRIPCION EN 20: Descripción mediana.

DESCRIPCION EN 30: Descripción larga.

ESTADO (A/D/C). Estado de la aplicación:

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 73 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

A: Activada.

D: Desactivada.

C: En cambio de sesión.

R: En Recuperación (no usado actualmente).

Cambio de sesión automática (s/n) : Indica si el cambio de sesión diario actualiza el


estado de la aplicación.

Multidivisa : Indica si la aplicación es multidivisa.

Aplicación Altamira : Solo para aplicaciones de Arquitectura Altamira

Estándar. Se informa el nombre de la aplicación Altamira Nativa.

Idioma : Indica el idioma para la tabla de descripciones de la Arquitectura.

Origen aplic (P/O): Indica el origen de la aplicación:

P: Plataforma. Aplicaciones Altamira.

O: Otros. Aplicaciones no Altamira.


Fecha de pase a producción

Menú de transacciones. parámetros.

APLICACION: Código de la aplicación asociada.

TRANSACCION: Código de la transacción.

PROGRAMA: Nombre del programa asociado.

PLAN DB2: Plan DB2 asociado.

FORMATO: Nombre del formato de entrada asociado.

IDIOMA: Código de idioma para tabla de descripciones de Arquitectura.

CONTABLE (S/N): Indica si la transacción es contable.

INICIO DESDE TERM (S/N): Arrancable de terminal.

TIPO (TRANS/CONV): Transaccional o Conversacional.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 74 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

TIPO OPERACION: Operación que realiza.

O Operación Ent/Sal, A Alta, B Baja, M Modificación,C Consulta, E Edición, P


Petición de Batch.

5.1.6.2 Listado de transacciones. parámetros:

TRN: Código de la transacción.

A: Indica si la transacción está activa.

DESCRIPCION: Descripción de transacción.

AP: Código de aplicación asociada a transacción.

PROGRAM.: Programa asociado a transacción.

FOR/MAP: Formato o mapa de entrada a transacción.

PL.DB2: Plan DB2 asociado.

ULT.USO: Fecha de última utilización de transacción.

CONT: Indica si es contable (SI/NO).

I.TERM: Arrancable directamente de terminal (SI/NO).


TRAN/CONV: Transacción conversacional o transaccional.

T.OPER: Tipos de operación que realiza la transacción (O operación de Entrada/Salida, A


Alta, B Baja, M Modificación, C Consulta, E Edición, P Petición al Batch).

CAMB.SES: Ejecutable con su aplicación en

estado de cambio de sesión (SI/NO).

RECUPER: Ejecutable con su aplicación en estado de recuperación (SI/NO).

INI.ARQ: Estado inicio controlado por la arquitectura (SI/NO).

PF.ST: Indica si el prog. aplicativo tiene teclas PF estándar.

A TCL: Aplicación actualiza la tabla de tecleos (SI/NO).

P.FAST: Pintar línea de FastPath en pantalla asociada a la transacción.

APB: Para uso con terminales 4700. No aplica y es indistinto.


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 75 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

LONG.COMM: Longitud del Commarea. Sólo necesario para transacciones que puedan
iniciar alguna conversación.

5.1.6.3 Mantenimiento de transacciones. parámetros.

TRANSACCION: Código de transacción.

DESCRIPCION: Descripción de la transacción.

NEWCOPY: Refrescar registro en memoria al cambiar.

ENTRADA: Entrada de la transacción Altamira Nativa.

SALIDA/JOURNAL: Indicador de tipo de salida Journal.

N: No actualiza Journal.

S: Actualiza Journal Altamira.

D: Actualiza Journal Altamira.

X: Actualiza ambos.

SALIDA A LIBRETA (S/N): Trans. Altamira tiene salida a líneas de libreta.

Listado de transacciones parámetros.

CODIGO: Código del formato.

PRV: Indicador de Alta provisional o definitiva.

NC: Número total de campos.

LNG: Longitud total de la Copy BMS asociada al formato.

T: Tipo de formato (E entrada, S Salida, E/S ambos).

DAUT: Indicador de asignación automática de delimitador.

RUT: Indicador de Rutina de validación asociada.

RELC: Indicador de relación entre campos del formato.

DESCRIPCION: Descripción del formato.


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 76 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

P.DOC: Preformato para salida a documento asociado (impreso).

P.STD: Preformato estándar asociado al formato.

ULT.USO: Fecha del último uso del formato.

FORMATO: Clave del formato.

DESCRIPCION: Descripción del formato.

NEWCOPY: Refrescar copia en memoria.

TIPO (E/S/A): Tipo de formato (Entrada/Salida/Ambos).

DELIMIT. AUTOMATICO: Indicador de asignación automática de delimitador.

ESTADO (P/D): Alta P provisional o D definitiva.

NUM. CAMPOS: Número de campos asociados.

LONGITUD COPY: Longitud total de copy BMS.

RELACION CAMPOS (S/N): Indica que existe relación entre campos que verificar.

IDIOMA: Código de idioma para tabla de descripciones.

Listado de campos de un formato.

LNG: Longitud total del campo.

TIP: Tipo de campo (R requerido, O opcional, S salida).


RUTINA: Rutina de validación asociada al campo.

VRUT: Indica necesidad de usar rutina con terminales inteligentes (S/N).

LIT4700: Para terminales 4700. Código de literal para el campo.

AYU: Indica si el campo tiene ayuda activa asociada (S/N).

DECIMALES: Número de decimales del campo.

DELIMITADOR HEX.: Delimitador que identifica al campo en mensajes enviados a


terminal.

TIPO DE ENTRADA: El campo debe informarse a la entrada (R), es opcional (O) o de


salida (S).
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 77 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

RUTINA DEPURACION: Rutina de validación asociada al campo.

SIEMPRE: Se debe usar siempre la rutina (S/N).

ENVIAR SIEMPRE: El campo debe viajar siempre (S), sólo cuando su contenido ha
variado (N) o nunca (X).

COMPRIMIR:
S: Elimina espacios a la derecha (campos alfanuméricos) o ceros a la izquierda (campos
numéricos).

N: Envía el campo completo.

Listado de preformatos.

parámetros:

CODIGO: Código del preformato.

LI: Número de líneas del preformato.

CO: Anchura máxima de líneas del preformato.

M: Margen izquierdo del preformato.

VA: Número total de variables usadas en el preformato.

DESCRIPCION: Descripción del preformato.

TRN: Código de la última transacción que utilizó el preformato.

FORMATO: Código del último formato que lo utilizó.

UTL.USO: Fecha del último uso del preformato.

Mantenimiento de preformatos.

Parámetros:. newcopy: refrescar copia en memoria.

PREFORMATO: Código del preformato de 6 caracteres. Los primeros dos

caracteres deberán coincidir con la aplicación.

DESCRIPCION: Descripción del preformato.

IDIOMA: Código del idioma para tabla de descripciones.


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 78 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

NUMERO DE LINEAS: Número total de líneas del preformato (calculadas internamente).

NUM. CARACTERES APROX: Número de caracteres que tiene la línea de preformato.

MODELO: Nombre preformato modelo ya existente (para dar de alta uno nuevo).

Mantenimiento de líneas de preformato.

En la parte de las características de las variables,

para cada una de ellas, existen tres campos en la

parte derecha de la línea:

CAMP-0n: Nombre del campo cuyo contenido debe ir en la parte variable.

T: Tipo de variable. Puede tener tres valores:


H: Variable con contenido en el host.
L: Variable cuyo contenido se encuentra en local.
S: Variables del sistema.
ED: Tipo de edición.

Listado de errores y avisos. parámetros.

CODIGO: Código de error o aviso.


MENSAJE ASOCIADO: Literal asociado al mensaje.
EXPLICACION ADICIONAL: Información adicional agregada al mensaje para mejor
comprensión del mensaje.

Mantenimiento de errores y avisos. parámetros.


CODIGO DE MENSAJE : Código del mensaje de
aviso o error de 7 caracteres, en formato AATNNNN
AA : Código de Aplicación.

T : Tipo de mensaje (A aviso, E error, B ABEND).


NNNN : Secuencial único por aplicación.

TIPO DEL MENSAJE : A partir del código, determina el tipo de mensaje conforme a la
nomenclatura explicada.

DESCRIPCION DE APLICACION : Nombre de la aplicación a la cual pertenece el


mensaje.

MENSAJE ASOCIADO : Literal del mensaje asociado al código.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 79 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

INFORMACION ADICIONAL : Hasta 4 líneas de información adicional para aclarar el


motivo del mensaje.

Mantenimiento de totales de referencia parámetros.


CODIGO DE TOTAL : Código del total de referencia con formato AANNN (AA: código de
la aplicación; NNN: consecutivo único por total por aplicación).

IDIOMA : Código de idioma para tabla de descripciones.


CUENTA CONTABLE : Asociada al total.
FORMATEO EN JOURNAL : Número de registros a formatear en Journal.
TIPO DE TOTAL : Indica si es contable (C), nominal (N), o representa a una cuenta
validadora (V).

ARQUITECTURA ANTIGUA : Indica si el total es gestionado por un programa que no


pasa por la nueva Arquitectura.

IND. FORMATEO : Indica el tipo de formateo del total, estático (E), dinámico (D) o no
acumular (N).

Menú de acceso a otras tablas opciones.

Log del sistema


Mensajes enviados y recibidos
Listados de tablas
Mantenimiento tabla de descripciones
Mantenimiento tabla de literales
Mantenimiento tabla de entidades

Menú de log del sistem. parámetros.

FECHA/HORA: Orden ascendente ('A') o


descendente ('D') de timestamp.
FECHA/HORA DESDE: Rango inicial de fecha y/o hora a partir de la cual se quiere el log
del sistema.
FECHA/HORA HASTA: Rango final de fecha y/o hora hasta donde se quiere ver el log del
Sistema.
CICS: Identificador CICS cuyas incidencias se desean listar.
TRANSACCION: Código de transacción asociada a las filas de log que se desean listar.
ORIGEN: Programa que registró la transacción
DESTINO: Nombre de la impresora a la que se envió el mensaje de la incidencia.
USUARIO: Usuario identificado.
TERMINAL: Terminal.
Listado del log del sistema parámetros.
TRAN: Código de transacción que produjo la
incidencia.
TERM: Código de terminal que produjo la incidencia.
__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 80 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

FECHA ST: Fecha de la incidencia


HORA ST: Hora de la incidencia.
ORIGEN: El nombre del programa que produjo la incidencia.
MENSAJE: Contenido del mensaje.
DESTINO: Nombre de la impresora que recibió el mensaje.
USUARIO: Usuario identificado cuando se produjo la incidencia.
CICS: Identificador del CICS donde se produjo la incidencia.
TAREA: Número de la tarea CICS en que se produjo la incidencia.
TIME STAMP: Timestamp de inserción en la incidencia.

5.1.7 Flujo de una transacción.

5.2 CHANGE MAN.

5.2.1 CONCEPTOS BÁSICOS.


La administración de versiones de software es una tarea que requiere dinamismo y
agilidad, No es posible que una compañía que maneje más 300 ingenieros
desarrolladores de software se pueda administrar sin la ayuda de un administrador de
gestión de tecnología. Teniendo en cuenta la importancia y lo que significa mantener una
adecuada administración de recursos se creo el administrador de versiones de software
changeman.

5.2.2 Que es changeman?


CHANGE MAN(Change Manager) es un sistema para la gestión y automatización del
proceso de traslado del software, desde Desarrollo hasta Producción.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 81 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

El escenario completo de Change Man lo componen los entornos siguientes:

STAGING Entorno de transición donde los “paquetes de


cambio” se construyen, prueban, revisan y auditan
de forma controlada
DESARROLLO Entorno donde se prueban los cambios
PROMOTION Entorno/s opcional/es que puede/n representar un
TEST- escenario de pruebas de aceptación, de test de
CALIDAD calidad, test de integración, etc.
PRODUCCION Entorno donde reside la versión de Producción del
software de aplicación.
Puede encontrarse en una máquina local y/o „n‟
remotas
BASELINE Librerías que son réplica exacta de las de
Producción. Pueden existir diferentes niveles que
corresponden a versiones anteriores
HOT BACKUP Librerías donde se copian los componentes
existentes en Producción antes de una nueva
instalación, para posibles restauraciones

5.2.3 Que es un paquete de cambios.


CHANGE MAN utiliza el concepto de “paquete de cambios”(package) para mover el
software desde Desarrollo a Producción.

Un paquete de cambios es un agrupamiento de componentes(fuentes, cargables, jcl‟s,


etc.) necesarios para realizar un cambio de Producción

A cada tipo de componente que se incorpora al “paquete” se le asigna una clave(“Library


Type”) que determina el procedimiento que se tiene que aplicar a ese componente en su
paso por cada uno de los escenarios detallados anteriormente(p.e. clase de compilación,
librería sobre la que hay que copiarlo, si hay que hacer bind, etc.)

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 82 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

5.2.3.1 Preparación y creación de un paquete de cambios.


La prelación y creación de un paquete de cambios consiste en lo siguiente:

Creación del paquete de cambios.


Hacer checkout de los componentes (programas,jcls,copys,ctc,etc) a modificar y compilar.
Realizar Stagen de los componentes nuevos (programas,jcls,ctc) y compilar.
Ejecutar VL para validación de estándares exigidos por la instalación.
Promover a desarrollo para la ejecución de pruebas unitarias.
Realizar audit. Al paquete.
Freeze al paquete.
Promover al siguiente entorno para pruebas integrales.

Pasos a seguir para la creación de un expediente.

ingresar a tso

Digitar código de usuario

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 83 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Digitar pasword

Ingresar al menú principal

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 84 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

ir a programas producto PP y luego ch asi

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 85 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

ir Chageman

Seleccionar la opción 1 Build - Create, update and review package data

sleccionar la opción 1 Create - Create a new package

Luego aparece la siguiente pantalla y se llenan los campos.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 86 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Los campos quedan diligenciados de la siguiente forma.

De esta manera indicamos como se crea el paquete.

Continuamos siguiendo las instrucciones.


__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 87 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Llenamos los campos correspondientes a la fecha y hora prevista para instalación en


Producción, así como los de las personas y teléfonos de contacto en caso necesario

En la esquina superior derecha de la siguiente pantalla se indica el nombre del paquete


creado, que utilizaremos para posteriores referencias a este paquete

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 88 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

A finalizado la creación del paquete en changeman con paquete MNT 00002.


Pasos a seguir para realizar checkout de los componentes de um paquete de câmbios.

En El numeral anterior creamos El paquete MNT 00002 el cual lo vamos a utilizar esta
tarea. Y vamos al menú opción 5

Seleccionamos la opción 1 para hacer checkout de las librerías de Producción(Baseline)


e Indicamos, en el “CHANGE PACKAGE ID”, el nombre correspondiente al paquete

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 89 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Llenar con el nombre del paquete los campos correspondientes a

LIBRARY TYPE (SRC, LOD, CPY, JCL, etc.) o * para opciones


SOURCE LIBRARY nivel del entorno de donde se toman los componentes
CHECK OUT TO librerías de destino de los componentes
CHECKOUT MODE Seleccionar 1 ó 2 dependiendo del número de
componentes
CONFIRM REQUEST Es conveniente seleccionar la opción YES
El resto de campos se rellenaría en situaciones en que se escogen, como destino, las
librerías de usuario o para casos especiales.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 90 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Una vez finalizado el checkout hincamos la el proceso para stage, En el panel “BUILD
OPTIONS” seleccionamos la opción 6

Seleccionamos la opción 1 para realizar stage.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 91 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

indicamos la librería de desarrollo donde se encuentran los miembros a instalar.

En esta pantalla se puede apreciar los diferentes tipos de librería para seleccionarla de
acuerdo al componente a ingresar al paquete.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 92 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

En esta pantalla nos muestra nos muestra los componentes de la librería origen y
seleccionamos aquellos que vamos a pasar.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 93 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

De esta manera hemos realizado todos los pasos de desde crear un paquete en
changeman, realizado un checkout y un Staten.

5.3 LOS CONTROLS.


Es una herramienta para la automatización de procesos, empleada en la planificación de
los jobs de producción, programados por condiciones de entrada y requerimientos de los
usuarios.

La planificación de los jobs se realiza mediante mallas que agrupan jcls de una o más
aplicaciones, ordenados uno seguido de otro, con sus condiciones de entrada y salida
según le corresponda su ejecución.

L a herramienta está compuesta básicamente por 4 módulos y el más usado en el módulo


de control-m.

5.3.1.1 IOA.

Las funciones primarias del CONTROL se encuentran en el menú IOA. Dentro de este
menú están las opciones:

COND/RES: Se accede mediante la opción 4. Este menú permite visualizar las


condiciones de Entrada y Salida del CONTROL-M

LOG: Se accede mediante la opción 5. Permite visualizar el LOG de ejecución de los JCL
lanzados por CONTROL-M

UTILITIES: Se accede mediante la opción 6. Permite ver las utilidades en línea activas
bajo el TSO.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 94 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

MANUAL COND: Se accede mediante la opción 7. Permite ver las condiciones que
están pendientes en CONTROL-M y adicionarlas.

CALENDAR DEF: Se accede mediante la opción 8. Permite entrar a las librerías de


calendario y poder visualizarlos.

VARIABLE DB: Se accede mediante la opción IV (VARIABLE DATABASE). Permite


visualizar, definir y actualizar las variables de la base de datos del CONTROL.

5.3.2 CONTROL D/V.


Las funciones para el manejo de reportes se encuentran en el menú de CONTROL D/V
donde están las siguientes funcionalidades:

MISSION STATUS: Se accede mediante la opción A. Permite visualizar el estado de los


procesos que generan los reportes.

MISSION DEF: Se accede mediante la opción M. Permite definir las migraciones,


impresiones, backups y restauración de informes.

REPORT DEF: Se accede mediante la opción R. Permite definir los reportes.

RECIPIENT TREE: Se accede mediante la opción T. Permite visualizar y actualizar el


árbol de usuarios.

USER REPORTS: Se accede mediante la opción U. Permite visualizar y generar un


informe del estado de los usuarios.

PC PACKET STATUS: Se accede mediante la opción F. Permite visualizar el estado


de los reportes que se transfieren desde HOST hasta PC.

5.3.3 CONTROL M.
Esta sección es donde se realiza la planificación y ejecución de las mallas (Donde se
almacenan los JCL). Presenta las siguientes funcionalidades.

5.3.3.1 JOB SHCEDULE DEF.


Esta sección es donde se realiza la planificación y ejecución de las mallas (Donde se
almacenan los JCL). Presenta las siguientes funcionalidades.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 95 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

LIBRARY: Se escribe el nombre de la librería donde esta la malla a visualizar. Esta


opción es obligatoria.

TABLE: Se escribe el nombre de la malla donde están los JCL a visualizar esta
opción no es obligatoria.

JOB: Se escribe el nombre del JCL a buscar. Esta opción no es obligatoria.

Al ingresar solamente escribiendo el nombre de la librería, aparecerá un listado con todos


los componentes que existen en la librería. Para poder ingresar a uno de estos
componentes (Malla) se digita a su izquierda la letra “S”.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 96 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Esto permite entrar a la malla y ver los JCL que la conforman.


Para poder ver las características del JCL y las condiciones de ejecución se escribe la
letra “S” a la izquierda del JCL que vas a mirar y oprimes ENTER. Aparecerá una nueva
pantalla con dichas características.

5.3.4 ACTIVE ENV.

Se accede mediante la opción 3. Permite visualizar los JCL que se están ejecutando, los
que ya se ejecutaron y los que están pendientes de ejecución.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 97 / 98 25/09/2010
FABRICA DE SOFTWARE
Curso de formación
____________________________________________________________________________________________________

Normalmente aparecerá en color ROJO los que han terminado mal, en amarillo los que se
están ejecutando y en Verde los que se ejecutaron y terminaron bien. Los que están
pendientes de ejecución aparecerán sin color con la frase “Wait Schedule”. Para poder ver
las características del JCL (Como se ve en la opción anterior) se escribe a la izquierda la
letra “Z”.

__________________________________________________________________________________________________________
Formación Glokal Consulting sucursal Colombia Pág. 98 / 98 25/09/2010

Potrebbero piacerti anche