Anda di halaman 1dari 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

BIENVENIDOS
En nombre de GESFOR CHILE S.A., empresa del grupo GESFOR ESPAA, les expreso nuestra ms cordial bienvenida al Curso Formacin de Becarios en Ambiente 390 (Cobol CICS DB2) que, por encargo de DMR Consulting, estamos dando inicio en la ciudad de Santiago. El objetivo de este curso es desarrollar las competencias y habilidades tcnicas necesarias en cada uno de ustedes, de modo que a su trmino queden capacitados para desempearse profesionalmente en el ambiente de desarrollo Host propio de DMR Consulting. El curso ha sido diseado especialmente para cumplir con el objetivo sealado, a partir de los programas de formacin que el GRUPO GESFOR imparte desde hace aos en Espaa y en Amrica del Sur, a travs de sus empresas filiales. Como en todo proceso de enseanza aprendizaje, aqu tambin es indispensable contar con la colaboracin y la participacin activa y comprometida de cada unos de los alumnos. Ms an cuando en este curso lo que se pretende es formar personas para que, una vez finalizado, puedan desempearse laboralmente en un medio altamente exigente desde un punto de vista tecnolgico, de su productividad y de la calidad, todo esto inserto en un sector de la economa que se caracteriza por su elevada competitividad. Hoy en da, las organizaciones ms eficientes son aquellas que ms invierten en el desarrollo de sus recursos humanos. DMR Consulting est dando testimonio de su poltica de RR. HH. a travs de la realizacin de estos cursos tendientes a formar una fuerza de desarrollo de alta calidad. Corresponde, entonces, a ustedes estimados alumnos asumir ahora su rol dentro de este proceso formador con la mayor dedicacin, profesionalismo y entrega, lo que sumado a ese entusiasmo y empuje natural propio de personas que se estn jugando una opcin de futuro profesional, nos augura resultados muy promisorios. No me cabe ninguna duda que cada uno de ustedes as lo ha entendido, por lo que solo nos resta iniciar las clases en un ambiente de amplia colaboracin y cario por lo que todos estamos emprendiendo. Les deseo mucho xito en el curso y cuenten con nuestra mejor disposicin para acompaarlos en todo este proceso formativo. Un saludo cordial,

Enrique Urra Gonzlez Director de Formacin GESFOR CHILE S.A.

Pgina 1 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Pgina 2 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

FUNDAMENTOS DE PROGRAMACION.............................................9 ENTORNO TSO ISPF / MVS (OS/390).......................................9 1. ARQUITECTURA DE SISTEMA...........................................10 INTRODUCCION........................................................10 ARQUITECTURAS ANTERIORES AL S/360...................................10 Cientficas.......................................................10 Decimales.........................................................10 De caracteres.....................................................10 SISTEMA 360.........................................................11 SISTEMA 370.........................................................11 2. SISTEMAS OPERATIVOS...............................................12 INTRODUCCION........................................................12 PRIMEROS SISTEMAS OPERATIVOS........................................12 Tape Operating System (TOS).......................................12 Disk Operating System (DOS).......................................13 TIPOS DE SISTEMAS OPERATIVOS (OS)...................................13 Control primario de programas (PCP)...............................13 Multiprogramacin con nmero fijo de tareas (MFT).................14 Multiprogramacin con nmero variable de tareas (MVT).............14 SISTEMAS OPERATIVOS VIRTUALES.......................................15 Almacenamiento Virtual 1 (OS/VS1).................................15 Memoria Virtual Simple (SVS OS/VS2).............................15 Memoria Virtual Multiple (MVS)....................................16 3. SISTEMA S/390.....................................................18 INTRODUCCION........................................................18 Disponibilidad y seguridad........................................18 Eleccin de tecnologa............................................18 Servicio al usuario final.........................................18 Productividad.....................................................18 COMPONENTES PRINCIPALES ............................................19 TSO.................................................................19 ISPF/PDF............................................................19 JES.................................................................20 SDSF................................................................20 VTAM................................................................20 RACF................................................................21 OTROS SUBSISTEMAS IMPORTANTES.......................................22 IMS.................................................................22 DB2.................................................................22 CICS................................................................23 4. CARACTERISTICAS GENERALES ........................................24 INTRODUCCION........................................................24 PANTALLA............................................................24 Lnea 0...........................................................25 Lnea 1 ..........................................................25 Lnea 2 ..........................................................25 Lnea 3...........................................................25 Lneas de detalle ................................................26 Ejemplo de pantalla...............................................26 TECLADO ............................................................26 Teclas estndar ..................................................26

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 3 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Teclas de manejo de pantalla .....................................27 CLEAR.............................................................27 Teclas programables ..............................................28 LIBRERIA (FICHERO PARTICIONADO).....................................30 Directorio........................................................31 Miembros .........................................................31 Mantenimiento de libreras........................................32 FICHERO SECUENCIAL..................................................32 5. SESION DE ISPF....................................................34 INICIAR LA SESION...................................................34 Pantalla de entrada del Grupo Gesfor..............................34 Pantalla de usuario...............................................35 Pantalla de password............................................35 Pantalla LOGON....................................................36 MENU PRINCIPAL......................................................36 Men principal del ISPF/PDF.......................................38 FINALIZAR LA SESION.................................................39 6. PERSONALIZAR EL USUARIO...........................................40 OPCIONES............................................................40 CARACTERISTICAS DEL TERMINAL........................................41 Formato de pantalla...............................................41 Tipo de terminal..................................................41 GENERAL.............................................................41 Campo de relleno de entrada.......................................41 Delimitador de comandos ..........................................42 TECLAS PROGRAMABLES.................................................42 PF1 - HELP.......................................................43 PF2 - SPLIT......................................................43 PF3 - END........................................................43 PF4 - CURSOR o RETURN..........................................43 PF5 - RFIND......................................................43 PF6 - RCHANGE....................................................43 PF7 - UP.........................................................43 PF8 - DOWN.......................................................43 PF9 - SWAP.......................................................44 PF10 - LEFT.......................................................44 PF11 - RIGHT .....................................................44 PF12 - RETRIEVE...................................................44 KEYS................................................................44 PFSHOW..............................................................45 7. VISUALIZAR DATOS..................................................46 VIEW ENTRY PANEL....................................................46 LISTA DE MIEMBROS...................................................47 SELECCION DE UN MIEMBRO.............................................49 VISUALIZACION DE UN MIEMBRO.........................................49 SCROLL..............................................................50 Eliminar mensajes (RESET).........................................51 COMANDOS PRINCIPALES................................................52 COLS................................................................52 HEX.................................................................53 FIND................................................................53 8. EDITAR DATOS......................................................57

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 4 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

EDIT ENTRY PANEL....................................................57 EDICION DE UN MIEMBRO...............................................57 PERFIL DE UN MIEMBRO................................................59 RECOVERY............................................................59 NUMBER..............................................................60 CAPS................................................................60 NULLS ..............................................................62 CREACION DE UN MIEMBRO..............................................62 COPY ...............................................................63 CREATE..............................................................65 COMANDOS GENERALES..................................................66 Comunes a View....................................................66 CHANGE..............................................................67 SAVE................................................................68 CANCEL..............................................................68 UNDO................................................................69 SUBMIT..............................................................69 SORT................................................................69 CUT.................................................................70 PASTE...............................................................70 RENUM...............................................................70 UNNUMBER............................................................71 COMANDOS DE LINEA...................................................71 Insertar lneas...................................................71 Copiar lneas.....................................................73 Mover lneas......................................................74 Repetir lneas....................................................77 Borrar lneas.....................................................78 Ocultar lneas....................................................80 Desplazar columnas................................................81 9. UTILIDADES........................................................83 MENU DE UTILIDADES .................................................83 OPCIONES PARA LIBRERIAS.............................................84 GESTION DE LIBRERIAS................................................84 Comprimir la librera.............................................85 Informacin completa de la librera...............................85 Informacin corta de la librera..................................86 GESTION DE MIEMBROS.................................................87 Lista de miembros.................................................87 Borrar un miembro.................................................88 Renombrar un miembro..............................................89 CREACION DE DATA SET................................................91 Asignacin (creacin) ............................................92 RENOMBRAR UN DATA SET...............................................96 BORRAR UN DATA SET..................................................97 COPIAR Y MOVER DATOS................................................98 LISTA DE DATA SET..................................................101 Informacin sobre data set.......................................102 Informacin del VTOC.............................................105 CAPITULO 2: LENGUAJE JCL..............................................107 1. CARACTERISTICAS DEL JCL..........................................108 INTRODUCCION .....................................................108 Diagrama de la ejecucin de un trabajo...........................108

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 5 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

TIPOS DE SENTENCIAS ...............................................109 COMPONENTES DE LAS SENTENCIAS......................................114 Nombre...........................................................114 Sentencia........................................................114 Parmetros.......................................................114 Comentarios......................................................115 CODIFICACION DE LAS SENTENCIAS.....................................115 Columnas 1-2.....................................................115 Columnas 3-72....................................................115 Columnas 73-80...................................................116 2. SENTENCIA JOB....................................................117 INTRODUCCION.......................................................117 PARAMETROS POSICIONALES............................................117 Informacin de contabilidad......................................117 Nombre de programador............................................118 PARAMETROS DE PALABRA CLAVE........................................118 CLASS..............................................................118 MSGLEVEL...........................................................119 MSGCLASS...........................................................119 NOTIFY.............................................................120 RESTART............................................................120 TYPRUN.............................................................121 COND...............................................................121 IF ..............................................................122 TIME...............................................................124 REGION.............................................................125 PRTY...............................................................125 3. SENTENCIA EXEC...................................................126 INTRODUCCION.......................................................126 PROGRAMAS..........................................................126 PROCEDIMIENTOS.....................................................126 PARAMETROS POSICIONALES............................................127 PGM................................................................127 PROC...............................................................128 PARAMETROS DE PALABRA CLAVE........................................128 TIME...............................................................128 COND...............................................................129 PARM...............................................................130 REGION.............................................................130 4. SENTENCIA DD....................................................132 INTRODUCCION.......................................................132 Concatenar ficheros..............................................132 PARAMETROS POSICIONALES............................................133 DATA...............................................................133 DLM................................................................134 DUMMY..............................................................134 PARAMETROS DE PALABRA CLAVE........................................134 ddname.........................................................135 DSN (dsname)..................................................136 Nombres calificados y no calificados.............................136 Ficheros permanentes.............................................137 Ficheros temporales .............................................137

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 6 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Ficheros diferidos ..............................................138 DISP...............................................................138 UNIT...............................................................140 VOLUME.............................................................140 DCB................................................................141 SPACE..............................................................142 COPIES.............................................................144 OUTLIM.............................................................144 SENTENCIAS DD CON NOMBRES ESPECIALES...............................145 JOBLIB.............................................................145 STEPLIB............................................................146 SYSABEND y SYSUDUMP................................................146 CAPITULO 3: PROGRAMACION ESTRUCTURADA.................................147 1. CONCEPTOS GENERALES..............................................148 PROGRAMACION NO ESTRUCTURADA.......................................148 PROGRAMACION ESTRUCTURADA..........................................148 ESTRUCTURAS BASICAS................................................149 Secuencia........................................................150 Alternativa......................................................150 Repetitiva.......................................................151 RECURSOS ABSTRACTOS................................................152 RAZONAMIENTO DEDUCTIVO "TOP-DOWN"..................................153 PROCESO DE CONSTRUCCION............................................153 Diseo de un programa............................................154 ORGANIGRAMA........................................................154 Smbolos fundamentales...........................................155 SEUDOCODIGO........................................................156 Secuencia........................................................157 Alternativa......................................................157 Repetitiva.......................................................159 Recurso abstracto................................................160 FICHEROS SECUENCIALES: UN EJEMPLO SENCILLO.........................160 El ejemplo.......................................................161 Esquema general de un programa...................................161 Organigrama propuesto............................................162 seudo cdigo propuesto...........................................165 2. CONTROL DE RUPTURAS..............................................166 INTRODUCCION ......................................................166 LISTADO............................................................167 Cabeceras (subcabeceras).........................................167 Detalle .........................................................168 Total............................................................168 Contador de lneas...............................................168 PROCESO DE RUPTURA.................................................170 Programa manual..................................................171 Programa informtico.............................................171 Tratamiento de cabeceras.........................................173 EJERCICIO 1 .......................................................174 EJERCICIO 2 .......................................................175 3. ENFRENTAMIENTO DE FICHEROS ......................................177 INTRODUCCION ......................................................177 PROCESO DE ENFRENTAMIENTO..........................................178 Programa manual..................................................179

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 7 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Programa informtico.............................................181 CONSULTA ..........................................................183 Modelo bsico....................................................183 EJERCICIO 1 .......................................................185 EJERCICIO 2 .......................................................186 4. TABLAS...........................................................190 INTRODUCCION ......................................................190 DEFINICION DE TABLA................................................191 TIPOS DE TABLA.....................................................192 Por nmero de elementos..........................................192 Por estructura del elemento......................................192 Por posicin de los elementos....................................193 Por contenido del elemento.......................................194 Por descomposicin del elemento..................................194 CARGA DE TABLAS....................................................195 Por asignacin de memoria........................................196 Por proceso de programa..........................................196 ACCESO A TABLAS....................................................198 Directo..........................................................198 Secuencial.......................................................198 Dicotmica.......................................................198 EJERCICIO 1 .......................................................200 EJERCICIO 2 .......................................................201 ANEXOS..............................................................204 A. PRINCIPALES METODOLOGIAS.........................................204 INTRODUCCION.......................................................204 BERTINI............................................................205 WARNIER............................................................207 JACKSON............................................................208 B. SOLUCIONES A LOS EJERCICIOS......................................209 EJERCICIO 2-1 .....................................................209 EJERCICIO 2-2 .....................................................211 EJERCICIO 3-1......................................................213

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 8 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

MODULO I
FUNDAMENTOS DE PROGRAMACION

CAPITULO 1
ENTORNO TSO ISPF / MVS (OS/390)

REALIZADO POR GESFOR CHILE S.A. ENERO A FEBRERO DE 2003 SANTIAGO - CHILE

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 9 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

1. ARQUITECTURA DE SISTEMA
INTRODUCCION Arquitectura de sistemas es el trmino utilizado para describir la relacin entre las distintas partes del ordenador y el Sistema Operativo que se va a ejecutar. La implementacin de esa arquitectura es lo que ve el equipo de Desarrollo. La arquitectura incluye la lista de instrucciones que se pueden ejecutar, la forma de realizar operaciones de entrada/salida (lectura y escritura de datos), el nmero de operaciones que pueden efectuarse al mismo tiempo (multiproceso) y la forma de acceso a la memoria del ordenador (real o virtual). La arquitectura se puede dividir en dos partes: hardware y software. El hardware es el conjunto de elementos fsicos del ordenador. El software lo componen programas o aplicaciones que se introducen en el ordenador a travs de un almacenamiento externo (cintas, discos, etc.). Toda la informacin que se incluye en este manual se refiere a arquitecturas de mquinas I.B.M. (International Business Machines) o de sistemas compatibles. ARQUITECTURAS ANTERIORES AL S/360 Antes de hablar de los grandes sistemas actuales de I.B.M., conviene hacer un poco de historia de los primeros ordenadores de esta empresa. Antes de la creacin de la arquitectura 360 haba tres tipos de computadoras: Cientficas Diseadas fundamentalmente para la realizacin de clculos con cantidades muy elevadas. El trmino informtico para este tipo de procesos es de aritmtica en coma flotante y permite trabajar y representar cantidades numricas muy grandes o muy pequeas. Decimales Diseadas para efectuar operaciones de tipo financiero (valores monetarios). Los nmeros pueden ser grandes, pero raramente superan los 15 enteros y 2 decimales. El trmino informtico para este tipo de procesos es de aritmtica decimal. De caracteres

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 10 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Diseadas para efectuar operaciones de tipo general, adems de manejar nmeros pueden trabajar con cadenas de caracteres (nombre, direcciones, etc.). El problema de estas arquitecturas es que, aunque todas podan manejar cualquier tipo de datos, cada una se orientaba a una funcin distinta, obligando a las empresas a elegir entre una de ellas o tener varias. Tanto para las empresas como para los informticos, los cambios de una arquitectura a otra eran muy costosos en tiempo y dinero. SISTEMA 360 Todos los modelos de este sistema tenan un objetivo comn: procesar con un nico ordenador cualquier tipo de operacin. Esto permitira cambios y ampliaciones en los equipos con gran facilidad. La caracterstica principal ofrecida por el fabricante era que todos los modelos eran compatibles. Esto supona que un programa realizado en un modelo del S/360 (o posterior) se poda ejecutar en otro. En la prctica, esto se puede conseguir con ciertas limitaciones. SISTEMA 370 Esta arquitectura se distingue de la 360 en los siguientes aspectos: Traduccin dinmica de direcciones. Permite la independencia del programador con respecto al hardware en el que se ejecutar el programa. Multiproceso. Las aplicaciones pueden trabajar con varias CPU en el mismo ordenador, trabajando al mximo rendimiento. Proteccin. Se incorporan mejoras en las facilidades orientadas a la proteccin de datos. Direccionamiento real extendido. Se eliminan operaciones sobre memoria central. Canal de direccionamiento indirecto. Ms posibilidades diferentes para canales.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 11 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

2. SISTEMAS OPERATIVOS

INTRODUCCION Se puede definir un sistema operativo como el conjunto de procedimientos que controlan los recursos en una instalacin de proceso de datos. Estos recursos comprenden el equipo fsico (hardware), los programas (software), los datos y los operadores humanos, realizndose el control por medio de procedimientos manuales o por soporte lgico. Para abreviar, un sistema operativo se define como un programa que supervisa el desarrollo y ejecucin de otros programas. El principal objetivo de un sistema operativo es extraer la mayor productividad y rentabilidad a los elementos de la instalacin. A la hora de elegir un sistema operativo es fundamental tener en cuenta la mquina en la que se va a utilizar. Tambin hay que tener en cuenta otras consideraciones como la: Disponibilidad. El sistema operativo debe estar compuesto por subsistemas que garanticen el funcionamiento independiente de cada uno de ellos cuando fallen los otros. Seguridad e integridad de la informacin. Cada usuario puede tener distinto nivel de acceso a los recursos. Facilidad de uso del sistema. Esto es muy importante, no slo en el momento de la implantacin del sistema operativo actual sino en las futuras adaptaciones y ampliaciones, tanto de hardware como de software. Actualmente, un sistema operativo tiene que cubrir perfectamente las dos necesidades principales de los usuarios: ptimo servicio de teleproceso (on-line) y procesos rpidos para lotes de datos (batch). PRIMEROS SISTEMAS OPERATIVOS Los primeros sistemas operativos estaban diseados para ejecutarse en ordenadores mucho ms pequeos que los actuales, pero su evolucin a permitido llegar a los sistemas operativos actuales. Tape Operating System (TOS) Se cargaba desde una cinta y el centro de proceso de datos poda ejecutar los programas que haban desarrollado. Los programas estaban escritos para necesidades especficas.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 12 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Disk Operating System (DOS) Diseado para pequeos ordenadores de la gama 360, se llaman sistemas operativos en disco porque se soportaban en una especie de plato redondo (disco), un dispositivo de memoria de acceso directo (DASD). El sistema operativo se cargaba en memoria desde el disco y poda tener dos aplicaciones ejecutndose al mismo tiempo: Foreground (FG) y Background (BG), de tal forma que, mientras una de ellas esperaba recursos, se podan ejecutar instrucciones en la otra.

TIPOS DE SISTEMAS OPERATIVOS (OS) A medida que los ordenadores aumentaban de tamao, el hardware empez a ser capaz de ejecutar ms de dos aplicaciones al mismo tiempo. Se desarrollaron distintos sistemas operativos para ser utilizados en grandes mquinas. I.B.M. utiliz el trmino Operating System (OS) para distinguir este nuevo sistema operativo del anterior (DOS). El OS estaba soportado en un disco (DASD) y se cargaba en el ordenador para ejecutar las tareas de proceso de datos. Control primario de programas (PCP) Es el primer OS y slo poda ejecutar programas de uno en uno: se arrancaba un programa, cuando terminaba entraba otro. De cualquier forma, introduce los servicios del supervisor, que todava existen en los sistemas actuales. Adems, permita el manejo de grandes volmenes de datos, gran cantidad de tratamientos y suficiente trabajo para amortizar un ordenador. La nica ventaja de este sistema es que los programas no sufran retraso ni interferencia con respecto a otros programas, como sucede en sistemas multitarea.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 13 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Multiprogramacin con nmero fijo de tareas (MFT) La mayor ventaja de este sistema con respecto al anterior es la posibilidad de ejecutar ms de una aplicacin al mismo tiempo. La denominacin fijo se debe a que se definan un nmero de particiones de tamao fijo para llevar a cabo los trabajos. Estas particiones se llamaban P0, P1 y as hasta un mximo de 15. El tamao de cada particin poda ser variable (por ejemplo, P0 poda tener 64 Kb y P1 tener 200 Kb). Mientras un programa esperaba un recurso (por ejemplo, el montaje o lectura de una cinta magntica), otro programa poda ejecutar una instruccin propia. Multiprogramacin con nmero variable de tareas (MVT) Con este sistema no hace falta decidir el tamao de los programas que se van a ejecutar. El sistema reserva una regin de memoria adecuada para la ejecucin de cada programa. La diferencia entre particin y regin es mnima y, prcticamente, terminolgica. El MVT es mucho ms flexible y utilizable por la mayora de los grandes ordenadores de la gama 360 y 370, dando origen al MVS. El trmino tarea se refiere al bloque de control de tarea (task control block, TCB) que era utilizado para mantener informacin sobre el programa que se ejecutaba bajo MVT. Una tarea es una unidad de trabajo que corre bajo un sistema operativo. En la mayora de los sistemas primitivos un trabajo slo tena una tarea.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 14 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

SISTEMAS OPERATIVOS VIRTUALES

A pesar de los avances vistos en los anteriores sistemas, los constructores de hardware haban fabricado ordenadores ms grandes y rpidos de lo que los creadores de software podan utilizar con efectividad. Tambin las compaas usuarias escriban cada vez aplicaciones ms grandes y complejas para ejecutar. Un primer problema era la cantidad insuficiente de memoria central y su fragmentacin, de tal forma que podan quedar espacios vacos de memoria, en los que no se podan cargar programas (ver grfico anterior) porque tenan que hacerlo es espacios contiguos. Otro problema era que si el programa necesitaba un determinado espacio y no lo encontraba no se poda ejecutar. Esto se resolvi con la creacin de los sistemas de memoria virtual: DOS/VS y su continuador DOS/VSE, que desembocaron en el MVS. Almacenamiento Virtual 1 (OS/VS1) Es muy similar al MFT, pero con memoria virtual. El operador puede redefinir las particiones dinmicamente. Se pueden utilizar hasta 15 particiones para programas. Es muy compatible con MVS. Soporta los gestores de teleproceso CICS e IMS. Memoria Virtual Simple (SVS OS/VS2) Es un sistema de memoria virtual similar al MVT. El sistema operativo es el encargado de gestionar dinmicamente la memoria virtual, sin que el operador tenga que establecer las particiones. La fragmentacin de memoria deja de ser un problema porque el sistema hace que la memoria para una aplicacin sea siempre contigua, aunque en realidad no lo sea. Es el sistema operativo quien gestiona los recursos. Ningn programa necesita estar en memoria todo el tiempo, por lo que el sistema divide la memoria en bloques del mismo tamao, llamados pginas. Slo las pginas necesarias para un programa en un momento dado estn en memoria, el resto se almacena en disco (DASD). Cargando y descargando pginas de disco a memoria el sistema hace que parezca que el programa est permanentemente en la memoria central. Por tanto, el sistema puede ejecutar ms programas al mismo tiempo.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 15 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Memoria Virtual Multiple (MVS) El MVS introduce el concepto de espacio de direcciones, que es el rango completo de direcciones que puede utilizar un programa dentro del ordenador. Este programa puede ser de cualquier tipo: batch, teleproceso o una tarea del sistema. Cada espacio de direcciones o programa de aplicacin puede acceder a un mximo de 16 Mb de memoria, sin tener en cuenta en absoluto el tamao de la memoria central. Esta es una gran diferencia con el SVS, donde los 16 Mb eran la suma de todos los espacios de direcciones. El lmite en MVS/XA es de 2 Gb y en MVS/ESA de 16 Tb. En realidad, nunca se toman los 16 Mb (entre una cuarta parte y la mitad) porque el sistema operativo reparte la porcin ms alta y la ms baja entre todos los espacios de direcciones. Aunque con algunos problemas iniciales (por ejemplo, la necesidad de rearranque, IPL) en las primeras versiones, el MVS ofreca grandes ventajas con respecto a los sistemas anteriores: 1) Tareas (de terminal y programas de aplicacin) ilimitadas. 2) Memoria virtual ilimitada, que supona la eliminacin de los problemas de gestin de particiones y cambios de trabajo. 3) Menor trabajo para el operador. Con la versin MVS/XA (eXtended Architecture) se proporcionan espacios de direcciones de 2 Gb. Este aumento de espacio se produjo por la necesidad de acceder a ms datos y de procesos ms complejos. Adems aumenta en gran medida la

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 16 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

seguridad, disponibilidad y rentabilidad. La implantacin de nuevo hardware es muy sencilla. La versin MVS/ESA (Enterprise System Architecture) incorpora un mximo de 15 espacios de direcciones exclusivamente para datos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 17 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

3. SISTEMA S/390
INTRODUCCION El S/390 es el resultado ltimo de la evolucin explicada anteriormente, producto de las grandes mejoras en hardware y software de los ltimos aos. El sistema operativo con el que opera es el OS/390 que incluye la infraestructura de cliente/servidor y las herramientas necesarias para agilizar y flexibilizar el desarrollo de aplicaciones en las empresas. Este sistema promete reducir los tiempos de respuesta, aumentar la satisfacin de los clientes y operaciones globales a travs de Tecnologa de la Informacin (IT), que aporta las siguientes soluciones: Disponibilidad y seguridad Capacidad de recuperacin automtica, reconfiguracin dinmica y solidez con un mnimo de infraestructura. Eleccin de tecnologa La demanda de nuevas tecnologas es cada da ms amplia, sobre todo en lo relativo a lenguajes orientados a objetos y el uso de sistemas cliente/ servidor. Asimismo, se buscan ciclos de desarrollo de aplicaciones ms cortos y mantenimiento ms fcil. El OS/390 proporciona las interfases con dichas tecnologas. Servicio al usuario final Se incluyen facilidades que resuelven las necesidades para las aplicaciones de usuario final, as como la disponibilidad continua de esas aplicaciones. Integracin de seguridad, redes y gestin de grandes sistemas empresariales, con la posibilidad de mltiples sistemas concectados a una red, haciendo posible el manejo de todos los sistemas desde un punto central. Productividad Se puede conseguir sin incrementar los recursos disponibles.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 18 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

COMPONENTES PRINCIPALES

TSO Time Sharing Option (Opcin de tiempo compartido) es un componente que permite acceder a varios usuarios a la vez al sistema, de forma conversacional. El acceso se realiza a travs de COMANDOS con los que es posible realizar cualquier tarea informtica (crear ficheros, ejecucin de programas, etc.) de forma interactiva. Esta es la forma de trabajar con TSO nativo. ISPF/PDF Para facilitar la comunicacin con el sistema a los usuarios informticos se desarroll la Interactive System Productivity Facility/Program Development Facility, que tiene las siguientes caractersticas: Ofrece la opcin de reducir el uso de palabras clave de comando, evitando la posibilidad de errores, permitiendo incluso el uso de un solo caracter para las funciones ms usuales (por ejemplo, borrar o insertar registros en un fichero). Facilita la definicin de ficheros e impresin de datos. Genera estadsticas de creacin, mantenimiento, contenido y actividad de los ficheros. Visualiza el contenido de ficheros y listados permitiendo, mediante el uso de determinadas teclas de funcin, el desplazamiento en todos los sentidos. Posibilita la bsqueda rpida y amplia de los datos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 19 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Permite el trabajo con doble pantalla en una sola pantalla fsica, siendo independiente el proceso en cada una de ellas. Ofrece amplias posibilidades para la definicin y mantenimiento de libreras, ficheros, catlogos y volmenes almacenados en dispositivos magnticos. JES El Job Entry Subsystem (Subsistema de entrada de trabajos), en sus dos versiones JES2 y JES3 con pequeas diferencias, controla y gestiona todos los trabajos introducidos en el sistema. La comunicacin con el JES se realiza a travs del Job Control Languaje (Lenguaje de control de trabajos) que enva una unidad de trabajo al sistema, identificndola con un nombre, indicando los programas o procedimientos que se van a utilizar y los ficheros necesarios para la ejecucin de esos programas. Despus de enviar el trabajo, se comprueba que no tenga errores, dndole el JES un nmero de entrada y le proporciona un iniciador para su ejecucin, dependiendo de la clase de ejecucin que se indic para el trabajo. El control de los trabajos se realiza a travs del Spool que contiene informacin sobre colas de trabajos de: entrada (esperando memoria para entrar a ejecutarse), ejecucin (activas en memoria) y salida (terminados y en espera de impresin o borrado). SDSF La System Display and Search Facility (Facilidad de bsqueda y visualizacin del sistema) permite controlar y visualizar la situacin de todos los trabajos del ordenador, es decir, presenta la situacin del spool en un momento determinado. Es un subsistema independiente del PDF, aunque en algunas instalaciones se incluye dentro de su men, como una facilidad ms del ISPF. Con esta facilidad se puede ver la cinta LOG (rastro de todas las operaciones realizadas durante una sesin de TSO), los trabajos de entrada (en espera de memoria para poderse ejecutar), los trabajos activos (en ejecucin), los de salida (pendientes de imprimir o borrar), etc. VTAM El Virtual Telecommunication Access Method es un subsistema que permite la comunicacin entre los usuarios, que manejan los terminales, con la informacin existente en el ordenador. Su objetivo fundamental es obtener un tiempo de respuesta ptimo en el momento de procesar las diferentes peticiones que llegan desde los terminales, tanto en tareas de teleproceso de usuario (CICS o IMS/DC) como de los operadores del sistema.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 20 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Las caractersticas del VTAM son: 1) Permitir que los programas de aplicacin compartan recursos, dispositivos y lneas directamente fuera de las colas. 2) Controlar la disposicin de recursos. 3) Establecer, controlar y terminar las conexiones entre programas de aplicacin y terminales. 4) Transferir datos entre programas de aplicacin y terminales. 5) Permitir la monitorizacin de operaciones de red. 6) Permitir la reconfiguracin dinmica de la red. 7) Utilizar la localizacin dinmica de memoria. RACF La Resource Access Control Facility es un producto externo al sistema operativo y tiene como objetivos: proteger y asegurar la integridad de los datos, as como controlar el acceso de los usuarios a los recursos de la instalacin

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 21 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

OTROS SUBSISTEMAS IMPORTANTES

IMS Information Management System (Sistema de gestin de informacin) es un producto diseado para facilitar al usuario la instalacin y manejo de un sistema de base de datos jerrquica. Esta dividido en dos partes: Data Base (DB) es la encargada de gestionar la informacin de las bases de datos, proporcionando interfases para procesos batch y teleproceso (CICS) Data Communication (DC) se encarga de la gestin del teleproceso para el usuario y utiliza el Data Languaje/I (DL/I) como lenguaje de comunicacin entre los usuarios (y sus programas) y las bases de datos. DB2 Data Base 2 es un gestor de bases de datos de tipo relacional para sistemas grandes y medianos. Posee alto rendimiento, gran potencia, facilidad de uso y gran seguridad e integridad de datos. Pgina 22 de 216

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Para comunicarse con el usuario final o los programas de aplicacin, utiliza el Structured Query Languaje (Lenguaje de consulta estructurado), cuya principal caracterstica es el nmero reducido de sentencias y, por tanto, su fcil aprendizaje y uso para cualquier usuario. A travs del lenguaje SQL se pueden realizar procesos batch, incluyendo las sentencias dentro de lenguajes tradicionales (COBOL, PL/I, etc.), o de teleproceso: IMS/DC, CICS o TSO/ISPF (a travs del SPUFI). Tambin incorpora otros dos subproductos para independizar al usuario final no informtico de los ciclos informticos habituales: Query Management Facility (Facilidad de gestin de consultas), que es un potente generador de informes, y Query By Example (Ejemplo de consulta), que permite otra forma de realizar consultas, de una manera ms grfica. CICS Customer Information Control System (Sistema de control de informacin de clientes) es un sistema de comunicacin de datos orientado a transacciones y es aplicable a la mayora de sistemas grandes y medios, soportando acceso las bases de datos de IBM (IMS/DB y DB2), as como a ficheros indexados. Entre sus caractersticas destacan: respuesta rpida a los terminales, control de la red de telecomunicaciones, gestin de las transacciones en forma recurrente, control de acceso a bases de datos, gestin eficaz de los recursos del sistema y gestin de la jerarqua de acceso a la unidad central de proceso. Tiene una interfase con los lenguajes clsicos de los grandes sistemas (COBOL, PL/I, Ensamblador, etc.) para la realizacin de aplicaciones de usuario a medida.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 23 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

4. CARACTERISTICAS GENERALES
INTRODUCCION Para facilitar la comunicacin con el sistema a los usuarios informticos se desarroll la Interactive System Productivity Facility/Program Development Facility, que tiene las siguientes caractersticas: Ofrece la opcin de reducir el uso de palabras clave de comando, evitando la posibilidad de errores, permitiendo incluso el uso de un solo caracter para las funciones ms usuales (por ejemplo, borrar o insertar registros en un fichero). Facilita la definicin de ficheros e impresin de datos. Genera estadsticas de creacin, mantenimiento, contenido y actividad de los ficheros. Visualiza el contenido de ficheros y listados permitiendo, mediante el uso de determinadas teclas de funcin, el desplazamiento en todos los sentidos. Posibilita la bsqueda rpida y amplia de los datos. Permite el trabajo con doble pantalla en una sola pantalla fsica, siendo independiente el proceso en cada una de ellas. Ofrece amplias posibilidades para la definicin y mantenimiento de libreras, ficheros, catlogos y volmenes almacenados en dispositivos magnticos. PANTALLA La pantalla utilizada ms habitualmentes es de la llamada familia 3270 que tiene un formato de 24 lneas y 80 columnas, es decir, un total de 1920 caracteres. La pantalla es el medio por el que se establece la comunicacin (conversacin) entre el usuario y el ordenador. Si se trabaja con COMANDOS de TSO nativo el dilogo se establece lnea a lnea, en una secuencia de preguntas-respuestas del operador al sistema. En la prctica, esto slo se hace para la apertura y cierre de la sesin. Si se trabaja bajo ISPF/PDF, por cada operacin a realizar, el sistema enva un panel con informacin para el usuario, este incluye los datos requeridos, con una tecla programada, y el sistema enva una respuesta. Las lneas se pueden dividir en: Cabecera: son las lneas 1 a 3 y llevan informacin general sobre la pantalla: ttulo, comando a ejecutar, mensajes sobre los procesos realizados, etc. Detalle: son el resto de las lneas, donde el usuario incluye sus propios datos. En cuanto a la informacin visualizada en la pantalla, se pueden considerar dos tipos de campos:

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 24 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Literales fijos: son zonas protegidas, donde el usuario no puede teclear. Tienen datos permanentes (por ejemplo, el ttulo de la pantalla) o variables (por ejemplo, mensajes de terminacin de operaciones). Campos tecleables: donde el usuario incluye la informacin con la que desea operar. Lnea 0 Esta lnea no existe en versiones antiguas. Incorpora una serie de submens desplegables en forma de ventanas. El contenido de esta lnea depende del panel en el que est. La forma de trabajar con los mens de ventana no se tratan en este manual y no se recomienda su uso a los principiantes. Lnea 1 Esta lnea incluye generalmente el ttulo de la pantalla y, despus de un tratamiento, puede contener un mensaje breve (20 caracteres), indicando el resultado del proceso, en la zona derecha de la lnea. En algunos procesos (por ejemplo, View o Edit) aparecer informacin sobre la operacin que se est realizando: nombre del fichero, lnea y columna de posicionamiento del cursor, etc. Lnea 2 Consta, como la anterior, de dos partes. En la izquierda aparecer la palabra OPTION o COMMAND, dependiendo que en las lneas de detalle est un men o sea una pantalla de campos tecleables o con lneas de detalle. En esta zona se puede teclear la opcin del men con que se quiere trabajar o un comando general, que se vern ms adelante. En la parte derecha puede aparecer, dependiendo del panel en el que se trabaje, la palabra SCROLL y su campo tecleable con un valor por defecto que puede ser: PAGE, HALF, MAX, CSR o un nmero de hasta 4 dgitos. Con este valor se indica la forma en la que ser quieren visualizar los grupos de datos que ocupan ms de una pantalla, que son la mayora. Lnea 3 En esta lnea se puede visualizar un mensaje del tutor indicando errores detectados al realizar un proceso o enviados por otro usuario. En algunos procesos (por ejemplo, View o Edit) indica el comienzo de los datos. En otros, incluso se puede teclear informacin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 25 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Lneas de detalle Son el resto de lneas y sirven para teclear informacin, a travs de campos (paneles), lneas completas (visualizacin y edicin) o seleccionar algn elemento (listas). Ejemplo de pantalla Como ejemplo de una pantalla tpica, en la que se encuentra buena parte de las lneas descritas, estara la visualizacin (View) de un miembro de una librera:
Menu Functions Utilities Help .............................................................................. VIEW UGOPEXX.CURSO.PRUEBA Row 00001 of 00004 Command ===> Scroll ===> PAGE Name VV MM Created Changed Size Init Mod ID . DEJ99A00 01.00 99/10/26 99/10/26 10:40 352 352 0 UGOPEXX . PAP30E09 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX . PJE10E11 . PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

F1=Help F10=Actions

F2=Split F12=Cancel

F3=Exit

F7=Backward

F8=Forward

F9=Swap

TECLADO Las variantes de teclado han sido grandes. En los primeros teclados existan fsicamente teclas que hoy no estn y viceversa. La organizacin y funcionalidad del teclado dependen del modelo de ordenador y, dentro de un mismo modelo, de las necesidades de la instalacin o las decisiones del responsable del departamento de Sistemas. Sin embargo, todas las instalaciones tienen una configuracin de teclado similar a la que se presenta a continuacin.

Teclas estndar Esta parte del teclado soporta los caracteres tpicos de una mquina de escribir clsica y con ellos se introduce la mayora de la informacin de y para los usuarios: Letras: de la A a la Z (27 letras), maysculas o minsculas, aunque estas ltimas estn muy restringidas y la mayora de las veces se convierten en mayslculas.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 26 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Nmeros: del 0 al 9, estn fsicamente sobre las letras. Tienen adems caracteres especiales (que se obtienen con la tecla maysculas). Tambin, en la mayora de los teclados, existe una matriz de nmeros en el extremo derecho del teclado, que se activa o desactiva con la tecla Bloq Num que se incluye en ese bloque. Esas tienen tienen tambin doble funcin. Signos: son un 35 y estn repartidos por el teclado, compartiendo en algunos casos teclas de otro tipo (por ejemplo, las de los nmeros). Se pueden incluir pulsando la tecla correspondiente (para los signos de abajo), la tecla maysculas ms la del signo (para los de arriba) o la tecla AltGr ms la tecla del signo (cuando hay tres en la tecla, el de abajo a la derecha). Teclas de manejo de pantalla Algunas de estas teclas no aparecen en los teclados actuales con la forma en que las utiliza el ISPF/PDF pero, en la mayora de las instalaciones, estn asimiladas a otras. CLEAR Elimina el contenido de la pantalla. Generalmente, se recuperan los datos pulsando la tecla intro. Su situacin es variable, puede ser la tecla Pausa Inter, la tecla + grande del extremo derecho del teclado, etc. ERASE EOF Elimina el contenido de una lnea desde la posicin del cursor hasta el final de la lnea. Suele ser la tecla Fin y hay dos a la derecha del teclado estndar, aunque se suele utilizar la ms cercana. Tabuladores Sirven para saltar de un campo tecleable a otro. Est arriba a la izquierda del teclado estndar (se identifican con dos flechas en direccin contraria). Si se pulsa slo la tecla el sentido es de arrib-abajo, si se pulsa junto a la tecla maysculas es de abajoarriba. Bloq Mays y maysculas Fijan las letras maysculas o proporcionan los caracteres de arriba, en las teclas de doble funcin. Se desactiva pulsando otra vez. Est a la izquierda, en el centro, en el teclado estndar. No confundir con la tecla maysculas temporal, que est debajo y en el lado contrario de la derecha. RESET Restaura el bloqueo del teclado producido, por ejemplo, por intentar teclear en zonas protegidas. Generalmente es la tecla Ctrl que est en el extremo inferior izquierda del teclado estndar.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 27 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

RETURN Enva el cursor a la primera posicin de la pantalla (el punto extremo superior izquierdo). En los teclados actuales se ha sustituido por la tecla Inicio y, generalmente, hay dos, ambas a la derecha del teclado estndar. Insert o Ins Sirven para insertar caracteres, dentro de una cadena existente. Muchas veces hay que desactivarla, volvindola a pulsar, porque bloquea determinadas partes de la pantalla (por ejemplo, la columna de numeracin del editor). Hay dos y estn a la derecha del teclado estndar. Supr Suprime o elimina un caracter previamente tecleado. Si se mantiene pulsada borra varios caracteres, hasta que se deja de pulsar. Hay dos y estn a la derecha del teclado estndar. PA1 Cancela la ejecucin de un comando de TSO. Se debe utilizar slo en casos excepcionales, porque puede provocar la cada del terminal. En teclados actuales es la tecla Impr pant PetSis, que est a la derecha de las teclas programables. Cursores Indican la direccin en la que ir el cursor cuando se pulsan. Estn indicadas con una flecha, mostrando la direccin: arriba, abajo, izquierda y derecha. Hay dos juegos de teclas de cursor a la derecha del teclado estndar, aunque se recomienda el ms cercano. Enter Dependiendo de la configuracin del teclado puede tener dos funciones: pasar al siguiente campo inferior tecleable o ejecutar una peticin al sistema. Es preferible que haga la primera funcin. Es la tecla grande, en el centro en la derecha en el teclado estndar, en forma de L invertida. Intro Sirve para la segunda funcin explicada en la tecla Enter. En la mayora de las isntalaciones se puede pulsar la tecla alargada que est en el extremo inferior del teclado fsico o la tecla Ctrl que est en la misma posicin del teclado estndar. Teclas programables En la parte superior del teclado y en la mayora de los teclados actuales hay 12 teclas marcadas como F1 a F12 (aunque muchos usuarios las llaman teclas PF) que sirven para facilitar el uso de los COMANDOS ISPF/PDF ms habituales. Dicho de otra manera, cada tecla tiene asignado un comando que se ejecutar al pulsarla.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 28 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Aunque cada usuario puede darles el valor que desee, se recomienda encarecidamente el uso de estas teclas tal como se indica a continuacin, ya que esta configuracin es prcticamente universal. PF1 - HELP Proporciona ayuda interactiva de mensajes de finalizacin de una funcin (lnea 3) o de la pantalla que se est procesando (tutor). PF2 - SPLIT Provoca que la pantalla fsica se convierta en dos pantallas lgicas, es decir, se pueden tener dos sesiones desde el mismo terminal. PF3 - END Termina la operacin que se est ejecutando y devuelve el panel anterior. Si est en el Men Principal termina la sesin PF4 - CURSOR o RETURN Es una de las pocas teclas modificables, incluso en algunas instalaciones se usa PRINT. CURSOR provoca que el cursor se site en la primera posicin del campo de la lnea 2 (OPTION o COMMAND). En los terminales actuales, esto no es lo mismo que pulsar la tecla Inicio, que deja el cursor en la primera posicin de la pantalla. Si se ha asignado RETURN se consigue ir al Men Principal desde el panel en el que se est en el momento de pulsar esta tecla. PF5 - RFIND Ejecuta repetidamente el ltimo comando de bsqueda (Repeat FIND). Permite facilitar la bsqueda de cadenas en un fichero (ver el comando FIND ms adelante). PF6 - RCHANGE El mismo efecto que la anterior pero con cambio de cadenas (ver el comando CHANGE ms adelante). PF7 - UP Visualiza informacin que est ms arriba de la posicin actual. Se utiliza en listas de miembros de directorios y en datos de ficheros de usuario que no entran en una sola pantalla. Ms raramente en mens. La forma y cantidad de lneas visualizadas depende del valor del campo Scroll de la lnea 2 (ver el captulo visualizacin de ficheros). PF8 - DOWN Tiene el efecto contrario que PF7, visualiza informacin que est por debajo de la posicin actual. La dems consideraciones son iguales.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 29 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

PF9 - SWAP Desplaza la posicin del cursor de una pantalla a otra cuando est activada la doble pantalla (SPLIT). Una operacin slo se puede realizar en la pantalla donde est situado el cursor. PF10 - LEFT Visualiza informacin que est a la izquierda de la posicin actual. Se utiliza generalmente en ficheros que tienen ms de 80 posiciones, porque previamente se ha desplazado el cursor a la derecha. PF11 - RIGHT Visualiza informacin que est a la derecha de la posicin actual. Tiene el efecto contrario que PF10. PF12 - RETRIEVE Recupera, en la lnea 2, los ltimos COMANDOS emitidos, en orden inverso. Esto facilita la repeticin de la ejecucin de los COMANDOS, sin tener que volverlos a escribir. Notas En algunas versiones, el nombre de algunos COMANDOS no se corresponden con los indicados arriba (por ejemplo, UP se sustituye por BACKWARD y DOWN por FORWARD), pero el efecto es el mismo. La utilizacin de las teclas de desplazamiento (PF7, PF8, PF10 y PF11) con el comando M provoca las siguientes situaciones: M + PF7 se visualiza la primera pantalla M + PF8 se visualiza la ltima pantalla M + PF10 se visualiza el extremo izquierdo de los datos M + PF11 se visualiza el extremo derecho de los datos (ver captulo visualizacin de ficheros). LIBRERIA (FICHERO PARTICIONADO) Uno de los mtodos de almacenamiento de datos ms usados en este entorno de trabajo son las libreras o ficheros particionados (algunos las llaman bibliotecas). Es una estructura dividida en dos partes: rea de Miembros: donde se almacenan conjuntos de datos de las mismas caractersticas. rea de Directorio: donde se almacenan registros con informacin referente a los miembros.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 30 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Una librera se suele denominar, aunque no es obligatorio, por tres niveles de calificacin: Proyecto: identifica un proyecto general dentro de la instalacin, aunque los ms general es que sea el identificador de usuario que crea y mantiene la librera (por ejemplo, UGOPEXX). Grupo: identifica un conjunto particular de libreras dentro de un proyecto (por ejemplo, CONTAB, PERSONAL, CURSO, etc.). Tipo: identifica un tipo especial de miembro dentro de la librera (por ejemplo, COBOL, JCL, etc.). Donde cada nivel de calificacin puede tener como mximo 8 caracteres y empezar por letra. Adems, se puede indicar el nombre del miembro, que tiene las mismas caractersticas que los nombres de los calificadores de la librera, siendo un ejemplo de denominacin completa: UGOPEXX.CURSO.PRUEBA(PJE10E11) Es muy importante tener en cuenta que el sistema no lleva control relativo a la informacin incluida en un miembro, por tanto, es el usuario el que debe gestionar la correcta utilizacin y contenido de las libreras. Directorio Est formado por un conjunto de registros con clave, uno por cada miembro existente en la librera. La clave contiene el nombre del miembro. El resto del registro lleva informacin sobre la direccin fsica de los datos, fechas, nmero de registros del miembro, etc. El orden habitual de los registros es por orden alfabtico ascendente de nombre, aunque al visualizar la lista de miembros se puede modificar este orden con el comando SORT (ver captulo Edicin de ficheros). Miembros Son ficheros independientes entre s, pero debieran ser de las mismas caractersticas. Por ejemplo, programas en un determinado lenguaje, jcls, etc. Como ya se indic anteriormente, el sistema no controla la mezcla de miembros en una librera, por eso, es el usuario el que debe evitar que en una misma librera convivan miembros de distintos tipos. Internamente, los registros de los miembros estn organizados secuenciamente y su contenido puede variar tantas veces como sea necesario. En los sistemas actuales, no hay miembros vacos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 31 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Mantenimiento de libreras Al dar de alta un miembro se colocar donde haya espacio suficiente, dentro del rea de miembros. En el directorio se crea el registro correspondiente, con su nombre como clave, y se reorganiza automticamente. Cuando se modifica un miembro, despus de haberse recuperado previamente, se vuelve a dar de alta, afectando slo al rea de miembros. Al dar de baja un miembro se elimina el registro del directorio y se reorganiza, pero el espacio que ocupaba en rea de miembros sigue ocupada, hasta que se reorganiza la librera. Una librera se debe reorganizar cuando ya no queda ms espacio disponible en el rea de miembros. Consiste, fundamentalmente, en la liberacin de las zonas ocupadas por las bajas. El sistema avisa de la falta de espacio con un cdigo D37 en el mensaje breve de la lnea 1. La forma ms habitual para reorganizar la librera es comprimirla con la opcin 3.1 del ISPF/PDF. Cuando lo que se llena es el rea de directorio no sirve la reorganizacin y hay que seguir los siguientes pasos: Crear una nueva librera, con la opcin 3.2, con ms bloques de directorio y, opcionalmente, con ms espacio en el rea de miembros. Copiar la librera actual en la nueva, con la opcin 3.3. Borrar la librera actual, con la opcin 3.2 3.4. Renombrar la librera nueva con el nombre de la borrada, con la opcin 3.2 3.4. FICHERO SECUENCIAL Un fichero secuencial es un conjunto de registros colocados fsicamente en secuencia de entrada. Los registros pueden ser de longitud fija (con un mximo de 255 caracteres) o de longitud variable (con un mximo de 259 caracteres). La creacin de un fichero secuencial se realizar a travs de la opcin 3.2. El nombre de un fichero consta de 1 a 5 calificadores, de hasta 8 caracteres cada uno de ellos y tienen que empezar todos por una letra. Aunque no es obligatorio, normalmente el primer calificador est reservado para el identificador de usuario y, en muchas instalaciones, se asigna automticamente. En algunas instalaciones hay normativa para dar nombre a los ficheros secuenciales y libreras. Si no la hubiera, se debe dar un nombre al fichero que indique el contenido del mismo, por ejemplo, si los registros recogen la informacin diaria de asientros contables, el nombre podra ser UGOPEXX.CONTAB pero esto slo indicara que el fichero est relacionado con el departamento de Contabilidad. Si el nombre del fichero fuese

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 32 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

UGOPEXX.CONTAB.ASIENTOS.DIARIO.D990926 indicara que son asientos diario contables del 26 de setiembre de 1.999. La creacin, mantenimiento y acceso (copia, visualizacin, etc.) a los ficheros de cada usuario depende del nivel de proteccin establecido a travs del RACF. Normalmente, cualquier usuario puede copiar y visualizar ficheros y libreras de otros usuarios, pero no puede crear ni mantener esos grupos de datos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 33 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

5. SESION DE ISPF
INICIAR LA SESION

Antes de empezar con la materia propiamente dicha, hay que tener en cuenta que todas las instalaciones funcionan igual en el fondo, pero ninguna tiene la misma forma de presentacin de los paneles de entrada. Por ejemplo, en unas la entrada a la sesin se realiza con un panel de logotipo donde se teclea el identificador de usuario, en otras, como en el presente manual, se teclea la opcin de sesin (TSO, CICS, etc.) deseada y luego el identificador de usuario en pantalla vaca, etc. Por lo tanto, en lo referente a la forma de entrar en una sesin ISPF/ PDF, lo indicado ms abajo es una de las muchas formas posibles.

Pantalla de entrada del Grupo Gesfor


* -USSTACRD<< Gesfor Sistemas de Informacin >>Terminal: GLUTN16

/ \ / \ / / / \ *** O P C I O N E S *** / / / / / . / / / / / /// - A CICS Vacaciones - E TSO Produccin / / / / / /////// /___/__/__/_/_///////////. - B DESA Vacaciones - F CICS Formacin / -G E S I -- D E S A R R O L L O ======================= - C TSO Desarrollo - D CICS Horizontes - G DESA Horizontes - T TSPRINT C

Teclear letra de opcin escogida y pulsar Intro ==>

se puede observar, la entrada en este caso consiste en un logotipo de la empresa con un men de opciones, indicando las diferentes sesiones que soporta el sistema. Si se desea entrar al TSO de Desarrollo, se teclea la letra C.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 34 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Pantalla de usuario
IKJ56700A ENTER USERID UGOPEXX

De una u otra forma, bien en pantalla inicial o, como en este caso, en pantalla aparte, hay que indicar el identificador de usuario que desea entrar en la sesin. En este caso se trata del usuario UGOPEXX. Pantalla de password
------------------------------- TSO/E LOGON ----------------------------------Enter LOGON parameters below: Userid Password ===> UGOPEXX ===> New Password ===> Group Ident ===> RACF LOGON parameters:

Procedure ===> PLOPE Acct Nmbr ===> CDRSTROPEG Size Perform Command ===> 4096 ===> ===>

Enter an 'S' before each option desired below: -Nomail -Nonotice -Reconnect PF1/PF13 ==> Help PF3/PF15 ==> Logoff PA1 ==> Attention

-OIDcard PA2 ==>

Una vez aceptado el usuario, se presenta la pantalla de password o de palabra clave. Todo usuario tiene asociada una palabra de clave de acceso personal, que slo l debe conocer. Esta clave se debe teclear en el campo Password de la pantalla anterior. En muchas instalaciones, esta clave se revoca o se cancela peridicamente (normalmente cada mes). El sistema avisa desde tres das antes sobre esta situacin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 35 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

LLegado el momento, se deber dar una nueva clave, en el campo New password y, generalmente, obliga a confirmarla, es decir, a teclearla otra vez. Tambin se debe tener en cuenta que, en la mayora de las instalaciones, se permite un nmero mximo de intentos de acceso (generalmente tres) para entrar en el sistema. Si no se pulsa la clave correcta en esos intentos, el usuario queda cancelado o revocado y se tiene que volver a habilitar en la tabla correspondiente del sistema. Cuando el usuario se queda colgado es posible, algunas veces, volverse a reconectar tecleando la clave y la letra S a la izquierda del literal Reconnect que est en la parte inferior de la pantalla. Pantalla LOGON
ICH70001I UGOPEXX LAST ACCESS AT 12:51:20 ON TUESDAY, OCTOBER 26, 1999 IKJ56455I UGOPEXX LOGON IN PROGRESS AT 14:46:32 ON OCTOBER 26, 1999 IKJ56951I NO BROADCAST MESSAGES ***

Despus de aceptar la clave de acceso es cuando realmente se inicia la sesin. Tcnicamente, se emite el comando LOGON de TSO. Aparecen unas lneas con informacin para el usuario. En la primera lnea se indica cuando fue la ltima fecha y hora en que se accedi al sistema. En la segunda la fecha y hora del acceso actual. En la tercera se indica que no hay mensajes pendientes de la sesin anterior o saldran una o ms lneas de mensajes no visualizados en esa sesin, si los hubiera. En la ltima lnea aparecen tres asteriscos (***) que indican una pausa del sistema, para que el usuario puede leer cmodamente los mensajes. Para continuar se pulsa la tecla Intro. MENU PRINCIPAL Como ya se ha indicado, dependiendo de la instalacin, es posible que entre el panel LOGON y el panel del Men Principal del ISPF/PDF haya uno o ms paneles intermedios: mens de productos, informativos, etc.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 36 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

En este caso, se muestra el Men principal de la instalacin, desde el que se puede acceder a direfentes productos, siendo los principales: SPF/PDF, para realizar el trabajo habitual de desarrollo. SDSF, para obtener informacin sobre las colas de trabajo del sistema. DB/E, para acceder al entorno del DB2 interactivo. RACF, para crear o modificar acceso a recursos, siempre que est permitido.
MENU PRINCIPAL DE APLICACIONES DEL AREA DE OPERACION OPTION ===> P SCROLL ===> PAGE USERID - UGOPEXX TIME - 09:42 P SD IS VS DB OP M N O R S X PDF SDSF ISMF VSAM DB/E OPE MIGR GENCSP EXGECSP RACF DFSORT EXIT ISPF/Program Development Facility System Display and Search Facility Interactive Storage Management Facility Utilidades VSAM Utilidades DB2 Utilidades Operacion Migraciones Desarrollo - Produccin (MAPAS) Generacin de aplicaciones CSP en Produccin Migracin de aplicaciones CSP a Produccin Activar Password de Usuario Data Facility Sort Terminate ISPF using list/log defaults F3=END F9=SWAP F4=RETURN F10=LEFT F5=RFIND F11=RIGHT F6=RCHANGE F12=RETRIEVE

F1=HELP F7=UP

F2=SPLIT F8=DOWN

Si se desea entrar al PDF de Desarrollo, se teclea la letra P.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 37 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Men principal del ISPF/PDF Al final, el objetivo es llegar al panel que se muestra a continuacin, para poder trabajar en el entorno ISPF/PDF.
Menu Utilities Compilers Options Status Help -----------------------------------------------------------------------------ISPF Primary Option Menu Option ===> 0 1 2 3 4 5 6 7 8 9 10 11 S Settings View Edit Utilities Foreground Batch Command Dialog Test LM Facility IBM Products SCLM Workplace SDSF Terminal and user parameters Display source data or listings Create or change source data Perform utility functions Interactive language processing Submit job for language processing Enter TSO or Workstation commands Perform dialog testing Library administrator functions IBM program development products SW Configuration Library Manager ISPF Object/Action Workplace System Display and Search Facility User ID . : Time. . . : Terminal. : Screen. . : Language. : Appl ID . : TSO logon : TSO prefix: System ID : MVS acct. : Release . : UGOPEXX 10:11 3278 1 ENGLISH PDF PROOPE UGOPEXX DESA CDRSTROP ISPF 4.4

Enter X to Terminate using log/list defaults F1=Help F10=Actions F2=Split F12=Cancel F3=Exit F7=Backward F8=Forward F9=Swap

En este men se pueden observar 4 zonas o columnas que, prcticamente, es igual en todas las instalaciones, excepto la ltima: 1. Opcin, aparece un cdigo con un mximo de dos caracteres numricos o alfanumricos. 2. Descripcin breve, con las distintas facilidades incoroporadas en el men, tanto del ISPF/PDF como externas. 3. Descripcin larga. 4. Informacin general, como identificador de usuario, cdigo del terminal, fecha y hora, idioma, etc. Esta columna es muy variable, tanto de una instalacin a otra como, dentro de una misma instalacin, de un usuario a otro. Tampoco las opciones de este men son iguales en todas las instalaciones y algunos incluso no aparecen o tienen otros cdigos de opcin distintos. Por eso en este manual se van a contemplar slo aquellos que son comunes en todas las empresas: 0 1 2 3 Personalizar o parametrizar el usuario Visualizar datos Crear o cambiar datos Utilidades del sistema

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 38 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

FINALIZAR LA SESION Para finalizar la sesin se emite un comando LOGOFF del TSO, que genera una pantalla con la palabra READY

READY LOGOFF

pudindose teclear dos respuestas: LOGOFF, para salir definitivamente del sistema. ISPF, para volver al Men principal del ISPF/PDF. Se puede llegar a la pantalla de LOGOFF de varias formas: 1. Pulsando la tecla PF3 (END) desde el Men principal de aplicaciones o del ISPF/PDF, dependiendo de la instalacin. 2. Tecleando la opcin X en el Men principal del ISPF/PDF. 3. Tecleando los caracteres =X desde cualquier campo tecleable de cualquier panel. Tambin se debe tener en cuenta que entre la peticin de salida de la sesin y el panel LOGOFF pueden aparecer una o ms pantallas solicitando informacin sobre: la utilizacin de la cinta LOG (borrarla, imprimirla, etc.), opinin del servicio, etc.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 39 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

6. PERSONALIZAR EL USUARIO
OPCIONES Pulsando la opcin 0 en el Men principal del ISPF/PDF se presenta una pantalla con campos para la personalizacin o parametrizacin del usuario.

Log/List Function keys Colors Environ Workstation Identifier Help -----------------------------------------------------------------------------ISPF Settings Command ===> More: + Options Print Graphics Enter "/" to select option Family printer type 2 Command line at bottom Device name . . . . / Panel display CUA mode Aspect ratio . . . 0 Long message in pop-up / Tab to action bar choices Tab to point-and-shoot fields General / Restore TEST/TRACE options Input field pad . . N Session Manager mode Command delimiter . ; / Jump from leader dots Edit PRINTDS Command / Always show split line Terminal Characteristics Screen format 1 1. Data 2. Std 3. Max 4. Part 4. 3278A F9=Swap

Terminal Type 3 1. 3277 F1=Help F2=Split F3=Exit F10=Actions F12=Cancel

2. 3277A 3. 3278 F7=Backward F8=Forward

Como se puede observar, a la izquierda de los literales aparece, a veces, el caracter barra (/), indicando que esa opcin est activa. Si no aparece (est en blanco) significa que la funcin esta inactiva, es decir, es la contraria. En general, slo hay dos opciones que interesan: la primera y la ltima, Command lnea at bottom. Si est activada (con /) la lnea de COMANDOS se situar en la parte inferior de la pantalla. Si est desactivada la lnea de COMANDOS se sita en la parte superior de la pantalla, tal como est en el ejemplo y como se recomienda su utilizacin. Always show split line. Si est activa indica que, cuando hay dos pantallas lgicas (PF2 Split), se vea la lnea de separacin entre las ellas. Si est desactivada, la pantalla actual cubre totalmente a la otra. El resto de opciones hace referencia a los colores (CUA), longitud de mensajes, etc.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 40 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

CARACTERISTICAS DEL TERMINAL En la parte inferior de la pantalla se pueden elegir las caractersticas del terminal. Esto viene condicionado ms por la pantalla fsica que se tiene que por los deseos del usuario. Actualmente se usa una emulador que convierte la pantalla de un PC en un terminal del TSO. Formato de pantalla Data Std Max Part Formato basado en el tamao del dato. Formato de 24 lneas por 80 columnas. Formato de 27 lneas por 132 columnas (formato listado). Formato que usa particiones hardware (slo 3290).

Tipo de terminal Los terminales ms habituales son de la familia 3270 y, dentro de ellos el ms general es el modelo 3278. Actualmente ya han desaparecido los terminales clsicos (no inteligentes) y se han sustituido por PC (terminales inteligentes) por lo que se requiere un emulador, para que el TSO considere que est trabajando con un terminal clsico. GENERAL Aunque este apartado no es demasiado importante, si es interesante conocer el valor de los dos campos: Campo de relleno de entrada Indica el caracter que se incluye cuando no se teclea nada en los campos de entrada, sean campos de panel tecleables o lneas de registros de datos de usuario. Esto se produce por el uso de los cursores para desplazarse por las lneas o campos, en lugar de utilizar la barra espaciadora. Se puede utilizar cualquier caracter especial, excepto el que se indica en el campo siguiente (Command delimiter). Habitualmente se usan dos caracteres: N los espacios vacos se rellenan con nulos (valor hexadecimal a ceros binarios) B los espacios vacos se rellenan con blanco o espacios (valor hexadecimal = 40) siendo, en general, preferible los blancos, para evitar desplazamientos al escribir los datos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 41 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Delimitador de comandos En algunos casos puede ser interesante concatenar una serie de COMANDOS, que se ejecuten habitualmente y/o que tengan un cierto inters, colocando sucesivos COMANDOS unidos o separados por el caracter indicado en este campo. Esta forma de trabajar no suele ser habitual. Se puede utilizar cualquier caracter especial, excepto el que se indica en el campo anterior (Input field pad). Habitualmente se usa el caracter punto y coma (;) y, en todo caso, se debe procurar que sea raro, es decir, poco utilizado para los datos usuales. TECLAS PROGRAMABLES Se muestra en este apartado la pantalla de teclas programables porque era la opcin donde se poda solicitar y modificar sus valores en la primeras versiones del ISPF/PDF.
PF Key Definitions and Labels Command ===> Number of PF Keys PF1 . PF2 . PF3 . PF4 . PF5 . PF6 . PF7 . PF8 . PF9 . PF10 PF11 PF12 . . . . . . . . . . . . . . . . . . . . . . . . HELP SPLIT END RETURN RFIND RCHANGE UP DOWN SWAP LEFT RIGHT RETRIEVE . . . . . . . . F2=SPLIT F8=DOWN PF2 Label PF5 Label PF8 Label PF11 Label F3=END F9=SWAP . . . . . . . . F4=RETURN F10=LEFT PF3 Label . . PF6 Label . . PF9 Label . . PF12 Label . . F5=RFIND F6=RCHANGE F11=RIGHT F12=RETRIEVE . . 12 Terminal type

More: . . 3278

PF1 Label PF4 Label PF7 Label PF10 Label F1=HELP F7=UP

En el primer campo (Number of PF Keys) se indica el nmero de teclas programables que se desean utilizar (de 1 a 24 teclas), siendo lo ms frecuente indicar 24, aunque en la prctica, la mayora de usuarios, slo se usan las 12 primeras. En el siguiente cuerpo de pantalla se pueden asociar uno o ms COMANDOS (usando en este caso el delimitador de COMANDOS) para la tecla indicada a la izquierda. Si se tienen ms de 12 teclas, se puede utilizar el comando UP (generalmente PF7) para obtener las anteriores o DOWN (generalmente PF8) para obtener las siguientes. Puesto que los nombres de los COMANDOS hay que indicarlos en ingls, se puede indicar una etiqueta (label) distinta de la original. Esto permite, por ejemplo, visualizar los nombres de los COMANDOS asociados a las teclas en espaol, aunque no se recomienda.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 42 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Aunque ya se ha explicado anteriormente el uso y la importancia de estas teclas, para mayor comodidad del lector de este manual, se reproducen otra vez a continuacin, insistiendo en evitar cambios en su uso general. PF1 - HELP Proporciona ayuda interactiva de mensajes de finalizacin de una funcin (lnea 3) o de la pantalla que se est procesando (tutor). PF2 - SPLIT Provoca que la pantalla fsica se convierta en dos pantallas lgicas, es decir, se pueden tener dos sesiones desde el mismo terminal. PF3 - END Termina la operacin que se est ejecutando y devuelve el panel anterior. Si est en el Men Principal termina la sesin PF4 - CURSOR O RETURN Es una de las pocas teclas modificables, incluso en algunas instalaciones se usa PRINT. CURSOR provoca que el cursor se site en la primera posicin del campo de la lnea 2 (OPTION o COMMAND). En los terminales actuales, esto no es lo mismo que pulsar la tecla Inicio, que deja el cursor en la primera posicin de la pantalla. Si se ha asignado RETURN se consigue ir al Men Principal desde el panel en el que se est en el momento de pulsar esta tecla. PF5 - RFIND Ejecuta repetidamente el ltimo comando de bsqueda (Repeat FIND). Permite facilitar la bsqueda de cadenas en un fichero (ver el comando FIND ms adelante). PF6 - RCHANGE El mismo efecto que la anterior pero con cambio de cadenas (ver el comando CHANGE ms adelante). PF7 - UP Visualiza informacin que est ms arriba de la posicin actual. Se utiliza en listas de miembros de directorios y en datos de ficheros de usuario que no entran en una sola pantalla. Ms raramente en mens. La forma y cantidad de lneas visualizadas depende del valor del campo Scroll de la lnea 2 (ver el captulo visualizacin de ficheros). PF8 - DOWN

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 43 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Tiene el efecto contrario que PF7, visualiza informacin que est por debajo de la posicin actual. La dems consideraciones son iguales. PF9 - SWAP Desplaza la posicin del cursor de una pantalla a otra cuando est activada la doble pantalla (SPLIT). Una operacin slo se puede realizar en la pantalla donde est situado el cursor. PF10 - LEFT Visualiza informacin que est a la izquierda de la posicin actual. Se utiliza generalmente en ficheros que tienen ms de 80 posiciones, porque previamente se ha desplazado el cursor a la derecha. PF11 - RIGHT Visualiza informacin que est a la derecha de la posicin actual. Tiene el efecto contrario que PF10. PF12 - RETRIEVE Recupera, en la lnea 2, los ltimos COMANDOS emitidos, en orden inverso. Esto facilita la repeticin de la ejecucin de los COMANDOS, sin tener que volverlos a escribir. Notas En algunas versiones, el nombre de algunos COMANDOS no se corresponden con los indicados arriba (por ejemplo, UP se sustituye por BACKWARD y DOWN por FORWARD), pero el efecto es el mismo. La utilizacin de las teclas de desplazamiento (PF7, PF8, PF10 y PF11) con el comando M provoca las siguientes situaciones: M + PF7 se visualiza la primera pantalla M + PF8 se visualiza la ltima pantalla M + PF10 se visualiza el extremo izquierdo de los datos M + PF11 se visualiza el extremo derecho de los datos (ver captulo visualizacin de ficheros). KEYS Actualmente, se puede pedir informacin para visualizar y/o modificar el contenido de las teclas de funcin desde cualquier panel, tecleando la palabra KEYS en la lnea de comando. Como resultado de esta accin se obtendr la pantalla explicada anteriormente.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 44 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

De hecho, se debe observar que muchos paneles tienen inicialmente distintos contenidos en estas teclas, por lo que conviene, lo antes posible o a medida que se va trabajando con ellos, normalizar todos los paneles, para evitar sorpresas posteriores. PFSHOW Otra posibilidad es que se quiera visualizar el contenido de las teclas de forma permanente o no. Esto se obtiene tecleando la palabra PFSHOW en la lnea de comando, obteniendo dos lneas en la parte inferior de la pantalla con las 12 primeras teclas y sus etiquetas (slo aparecen las que tienen contenido). La desventaja de esta forma de trabajar es que elimina dos lneas para otros posibles usos, pero se recomienda a los principiantes, hasta que estn habituados a su utilizacin. La forma de eliminar estas dos lneas es tecleando PFSHOW OFF en la lnea de comando de cualquier panel.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 45 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

7. VISUALIZAR DATOS
VIEW ENTRY PANEL Pulsando la opcin 1 en el Men principal del ISPF/PDF se presenta una pantalla con campos para la visualizacin (View) de los datos almacenados en ficheros secuenciales y/o libreras.
Menu RefList RefMode Utilities Workstation Help -----------------------------------------------------------------------------View Entry Panel Command ===> More: + ISPF Library: Project . . . Group . . . . . . . . . . . . . Type . . . . Member . . . (Blank or pattern for member selection list) Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Workstation File: File Name . . . . . Initial Macro . . . . Profile Name . . . . . Format Name . . . . . Data Set Password . . F1=Help F2=Split F10=Actions F12=Cancel Options / Confirm Cancel/Move/Replace Browse Mode View on Workstation F7=Backward F8=Forward F9=Swap

F3=Exit

La forma de indicar una librera es a travs del primer bloque de campos, debajo de ISPF Library, donde se deben teclear los siguientes datos: Proyecto: identifica un proyecto general dentro de la instalacin, aunque los ms general es que sea el identificador de usuario que crea y mantiene la librera (por ejemplo, UGOPEXX). Grupo: identifica un conjunto particular de libreras dentro de un proyecto (por ejemplo, CONTAB, PERSONAL, CURSO, etc.). Se pueden indicar hasta cuatro grupos distintos, pero no es aconsejable mezclar miembros de varias libreras. Tipo: identifica un tipo especial de miembro dentro de la librera (por ejemplo, COBOL, JCL, etc.). aunque en situaciones excepcionales podra faltar el ltimo calificador (por ejemplo, en libreras del sistema). El campo Member se puede rellenar, si se conoce el nombre del miembro concreto que se desea visualizar, o dejarlo en blanco, con lo que se proporciona la lista de miembros en la siguiente pantalla. Tambin se puede indicar el nombre de un fichero rellenando los tres primeros calificadores, si el fichero no tiene ms, pero no conveniente.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 46 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Si el fichero tiene ms de tres calificadores (bastante habitual) o si se quiere utilizar otra librera que la indicada en los campos de ISPF Library, se debe utilizar el campo Data Set Name del grupo Other Partitioned or Sequential Data Set, teniendo en cuenta dos situaciones, dependiendo de la instalacin: Puede que se prefije el nombre que se indica con el identificador del usuario. Puede que se necesite incluir el nombre entre comillas simples (apstrofes) o que al hacerlo se evite el efecto anterior. LISTA DE MIEMBROS

Menu RefList RefMode Utilities Workstation Help -----------------------------------------------------------------------------View Entry Panel Command ===> More: + ISPF Library: Project . . . UGOPEXX Group . . . . CURSO . . . . . . . . . Type . . . . PRUEBA Member . . . (Blank or pattern for member selection list) Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Workstation File: File Name . . . . . Initial Macro . . . . Profile Name . . . . . Format Name . . . . . Data Set Password . . F1=Help F2=Split F10=Actions F12=Cancel Options / Confirm Cancel/Move/Replace Browse Mode View on Workstation F7=Backward F8=Forward F9=Swap

F3=Exit

Como se indic anteriormente, al teclear el nombre de la librera sin nombre de miembro se proporciona la lista de todos los miembros incluidos en esa librera. En la lnea 1 aparecer el nombre de la librera y el nmero del primer y ltimo miembro visualizados, dentro de la lista. Por cada miembro se visualiza una lnea con las siguientes columnas de informacin: SELECCION. Es la columna ms a la izquierda y se identifica con un punto (.) (Ver el apartado SELECCION de un miembro). Nombre. Indica el nombre del miembro. VV MM. El sistema lleva un control estadstico en cuanto versiones y modificaciones. Fecha de creacin. Indica la fecha de creacin del miembro. Actualizacin. Informa sobre la fecha y hora de la ltima modificacin. Tamao. Indica el nmero de registros actuales del miembro.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 47 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Inicial. Indica el nmero de registros iniciales del miembro, antes de la primera modificacin. Modificaciones. Informa sobre el nmero de modificaciones que ha tenido el miembro. Usuario. Identifica al usuario que ha realizado la ltima actualizacin sobre el miembro. Las operaciones que se realicen sobre los miembros pueden afectar, al menos, a parte de esta informacin. Cuando un miembro se importa desde otro sistema (por ejemplo, desde un PC a travs del FTP) no tiene inicialmente esta informacin.
Menu Functions Utilities Help -----------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA Row 00001 of 00004 Command ===> Scroll ===> PAGE Name VV MM Created Changed Size Init Mod ID . DEJ99A00 01.00 99/10/26 99/10/26 10:40 352 352 0 UGOPEXX . PAP30E09 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX . PJE10E11 . PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

F1=Help F10=Actions

F2=Split F12=Cancel

F3=Exit

F7=Backward

F8=Forward

F9=Swap

Normalmente, aunque no es este el caso de la pantalla, la lista de miembros ocupa ms de una pantalla. Para visualizar el resto de la lista se utilizan las teclas PF7 para la anterior y PF8 para la siguiente, pudindose combinar con la palabra M en la lnea de comando, para obtener la primera pantalla o la ltima. Para saber si se est en la primera pantalla, observar la lnea 1 despus del literal Row. La ltima pantalla se identifica con el literal End, debajo del ltimo nombre de miembro. Normalmente, la clasificacin de los miembros de la lista est por orden alfabtico ascendente, que es como estn en el directorio. Si se quiere modificar este orden, se puede utilizar el comando SORT indicando la columna por la que se quiere la clasificacin. Por ejemplo, SORT ID agrupara los miembros por el usuario que los cre o que ha realizado la ltima actualizacin sobre ellos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 48 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

SELECCION DE UN MIEMBRO Para seleccionar un miembro de la lista, basta con situar el cursor en el punto de SELECCION y pulsar la tecla Intro o teclear la letra S (no puede ser otro caracter) ms la tecla Intro.
Menu Functions Utilities Help -----------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA Row 00001 of 00004 Command ===> Scroll ===> PAGE Name VV MM Created Changed Size Init Mod ID . DEJ99A00 01.00 99/10/26 99/10/26 10:40 352 352 0 UGOPEXX . PAP30E09 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX S PJE10E11 . PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

F1=Help F10=Actions

F2=Split F12=Cancel

F3=Exit

F7=Backward

F8=Forward

F9=Swap

VISUALIZACION DE UN MIEMBRO Una vez seleccionado el miembro, aparecer la primera pantalla con la lnea 1 indicado la librera y el miembro visualizado y los lmites de las columnas. Tambin se vern los primeros registros del miembro y, seguramente, algn mensaje de aviso, identificado por los caracteres ==MSG> en la zona de numeracin de las lneas.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00001 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ***************************** ==MSG> -Warning- The UNDO command is not available until you change ==MSG> your edit profile using the command RECOVERY ON. 000001 000001 ID DIVISION. 000002 000002 PROGRAM-ID. PJE10E11. 000003 000003**************************************************************** 000004 000004* PROYECTO CURSO ENTORNO S/390 000005 000005* 000006 000006* PROGRAMA PJE10E11 000007 000007* TIPO BATCH 000008 000008* 000009 000009* AUTOR(ES) FRANCISCO M. RUIZ MATE 000010 000010* FECHA 11-10-1999 000011 000011* 000012 000012* DESCRIPCION 000013 000013* ----------000014 000014* OBTENER EL LISTADO DE LOS DATOS GENERALES DE LOS PEDIDOS 000015 000015* INTRODUCIDOS POR SYSIN. F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 49 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

SCROLL Lo ms habitual es que el contenido de un miembro tenga ms registros de los que caben en una pantalla, en la zona de lneas de detalle. Como se ha visto en otras ocasiones similares, se pueden ver los siguientes registros pulsando PF8 o los anteriores pulsando PF7. La cantidad y forma de ver los registros se controla con el campo SCROLL de la lnea 2 o de comando, que puede tener los siguientes valores: PAGE Presenta una pantalla completa de registros. Si se puls PF8, los que estn a continuacin del ltimo actualmente visualizado. Si se puls PF7, los anteriores al primero visualizado en la pantalla actual. HALF Deja la mitad de los registros visualizados en este momento. Si se puls PF8, deja la mitad inferior actual, situndola en la parte superior, y rellena esa mitad inferior con los siguientes registros. Si se puls PF7, pasa la mitad superior actual a la parte inferior y sita en la mitad superior los registros anteriores. CSR Es la abreviatura de Cursor. La visualizacin de los datos depende de donde est situado el cursor en el momento de pulsar la tecla de desplazamiento. Si se pulsa PF8, deja la lnea donde est situado el cursor como primera de la nueva pantalla, rellenando el resto con los siguientes registros. Si se pulsa PF7, deja la lnea del cursor como ltima de la nueva visualizacin, rellenando las lneas precedentes con los registros anteriores. nnnn Indica un nmero de 1 a 9999. Su uso es bastante complicado y se recomienda no utilizar esta forma. MAX Significa al lmite mximo. Si se pulsa PF8, se presentarn los ltimos registros. Si se pulsa PF7, se ver la primera pantalla de registros. Se recomienda usar este mtodo indicando una letra M en la zona de comando, en vez del campo SCROLL, como se explic anteriormente y se ve a continuacin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 50 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00001 00072 Command ===> M Scroll ===> PAGE 014154 014154* 014155 014155 CANCELAR. 014156 014156* 014160 014160 DISPLAY ERR-DB2-ASTERISCO. 014200 014200 DISPLAY 'PROGRAMA ' ERR-DB2-PROGRAMA. 014300 014300 DISPLAY 'SENTENCIA ' ERR-DB2-SENTENCIA. 014400 014400 DISPLAY 'TABLA ' ERR-DB2-TABLA. 014500 014500 DISPLAY 'CODIGO ERROR ' ERR-DB2-CODIGO. 014600 014600 DISPLAY 'REG. ACTUAL ' ERR-DB2-AREA. 014700 014700 DISPLAY ERR-DB2-ASTERISCO. 014800 014800 PERFORM TERMINAR. 014900 014900* 015500 015500 TERMINAR. 015600 015600* 015700 015700 CLOSE LPEDIDOS. 015800 015800* 015900 015900 STOP RUN. ****** **************************** Bottom of Data *************************** F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel

si se quiere ir a la primera pantalla, habr que pulsar PF7. Se puede cambiar tantas veces como se desea el valor de este campo. Para modificar su valor slo es necesario teclear la primera letra (por ejemplo, P para PAGE). La forma ms cmoda y usual es cursor (CSR). Eliminar mensajes (RESET) Aunque no tienen ningn efecto sobre el contenido del miembro, los mensajes enviados por el sistema, antes o mezclados con los registros, se suelen limpiar, una vez ledos. Este efecto se consigue con el comando RES[ET] [ERROR] donde, dependiendo de los mensajes que se quieran eliminar, se indica el tipo de mensaje concreto o simplemente RESET (abreviado RES). [CHANGE]

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 51 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

COMANDOS PRINCIPALES COLS


File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00001 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ***************************** =COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7-000001 000001 ID DIVISION. 000002 000002 PROGRAM-ID. PJE10E11. 000003 000003****************************************************************** 000004 000004* PROYECTO CURSO ENTORNO S/390 000005 000005* 000006 000006* PROGRAMA PJE10E11 000007 000007* TIPO BATCH 000008 000008* 000009 000009* AUTOR(ES) FRANCISCO M. RUIZ MATE 000010 000010* FECHA 11-10-1999 000011 000011* 000012 000012* DESCRIPCION 000013 000013* ----------000014 000014* OBTENER EL LISTADO DE LOS DATOS GENERALES DE LOS PEDIDOS 000015 000015* INTRODUCIDOS POR SYSIN. 000016 000016* SE ESCRIBIRA UN TOTAL DEL IMPORTE DE LOS PEDIDOS Y DE LAS F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel

El comando COLS proporciona una regleta de numeracin que sirve para situar la columna en la que est un determinado dato. El nmero de la regla se debe multiplicar por 10 y el signo ms (+) indica las medias decenas (por ejemplo, 5, 15, etc.). En las versiones antiguas o en la versin actual en la forma BROWSE, COLS era un comando general: se indicaba en la lnea de comando y slo aparece una regla fija en la lnea 4 de la pantalla. En la versin actual, COLS es un comando de lnea: se puede poner en cualquier lnea de la pantalla y en cualquier registro del miembro, apareciendo tantas veces como se desee.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 52 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

HEX
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00001 00072 Command ===> HEX Scroll ===> PAGE ****** ***************************** Top of Data ****************************** -----------------------------------------------------------------------------000001 000001 ID DIVISION. FFFFFF4CC4CCECECDD444444444444444444444444444444444444444444444444444444 000001094049592965B00000000000000000000000000000000000000000000000000000 -----------------------------------------------------------------------------000002 000002 PROGRAM-ID. PJE10E11. FFFFFF4DDDCDCD6CC44DDCFFCFF444444444444444444444444444444444444444444444 00000207967914094B071510511B00000000000000000000000000000000000000000000 -----------------------------------------------------------------------------000003 000003****************************************************************** FFFFFF555555555555555555555555555555555555555555555555555555555555555555 000003CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC -----------------------------------------------------------------------------000004 000004* PROYECTO CURSO ENTORNO S/390 FFFFFF5444DDDECCED44444CEDED4CDEDDDD4E6FFF444444444444444444444444444444 F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel

Cuando en un fichero hay caracteres no representables en EBCDIC (por ejemplo, campos decimales empaquetados) se representan en visualizacin como un punto (.). Para ver el contenido hexadecimal de los caracteres visualizados, se utiliza el comando

HEX
[VERT] [OFF]

[ON]

[DATA]

donde la forma por defecto es VERT, que significa que cada lnea normal tendr debajo sus correspondientes valores hexadecimales en columna, que es la forma ms cmoda de ver los datos. La forma DATA es como estn situados fsicamente en memoria y hay desplazamiento en la visualizacin que la dificulta. Para activar la visualizacin hexadecimal se teclea HEX en la lnea de COMANDOS. Para desactivarla, se teclea HEX OFF. FIND Una de las actividades ms frecuentes en la visualizacin de datos es buscar caracteres o cadenas de caracteres (por ejemplo, para ver la utilizacin de una variable en un programa). El comando FIND (abreviado F) proporciona distintas y amplias formas de bsqueda, siendo el formato general

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 53 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

F[IND] [ALL] [FIRST] [LAST] [PREV]

cadena [NEXT] [PREFIX] [SUFFIX] [WORD] [NX]

[CHARS]

[X]

[col1 [col2]]

y en su forma bsica se indica la letra F, seguida de uno o ms blancos y el caracter o cadena que se desea buscar. cadena Es una cadena de caracteres. Si es continua (no incluye el signo espacio ni el delimitador de COMANDOS) se puede escribir sin comillas. Si la cadena es discontinua o siempre que se desee, se debe escribir entre comillas. NEXT Es la posicin de bsqueda por defecto. Indica que se empezar a buscar a partir de la posicin del cursor y hacia el final del fichero. ALL Comienza la bsqueda desde el principio de los datos y proporciona informacin sobre el nmero de veces que aparece la cadena en el fichero. FIRST Comienza desde el inicio del fichero y proporciona la primera cadena que encuentra. LAST Empieza la bsqueda desde el final del fichero y presenta la ltima cadena. PREV Empieza desde la posicin del cursor y va buscando hacia el principio de los datos. CHARS Es la opcin por defecto para la forma de la cadena. Indica que buscar los caracteres tal como se indica en la cadena. PREFIX Busca las cadenas que comiencen por los caracteres indicados. SUFFIX Busca las cadenas que terminen por los caracteres indicados.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 54 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

WORD Localiza cadenas con los caracteres especificados delimitados por blancos o caracteres especiales. X Busca slo en las lneas excluidas de visualizacin. NX Busca slo en las lneas no excluidas de visualizacin. col1 col2 Identifica un intervalo de columnas de bsqueda. Si slo se indica la primera columna, busca desde esa posicin hasta el extremo derecho del fichero. Si se indica el intervalo completo, slo busca en esos lmites.

Notas
Dado el uso frecuente de este comando, se recomienda la utilizacin desde el principio de la forma abreviada: F. Cuando no se encuentra ninguna lnea que contenga la cadena buscada, el sistema enva un mensaje en la lnea 1: No .... found. Si se encuentra al menos una cadena, el cursor se sita siempre en la primera que encuentra, dependiendo de las especificaciones de bsqueda, y se envia un mensaje a la lnea 1: Chars .... found. Para seguir buscando la misma cadena, no hace falta volverla a escribir, se utiliza la tecla PF5 (RFIND, repetir bsqueda). Cuando se utiliza la opcin ALL, el cursor se sita en la primera lnea donde se encuentra la cadena y en la lnea 1 enva un mensaje indicando el nmero de veces que aparece en el fichero.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 55 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

En algunas instalaciones, las cadenas encontradas se ven en video inverso.


File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------VIEW UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 CHARS 'FILLER' found Command ===> F FILLER Scroll ===> PAGE 000081 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS. 000082 000082 10 FILLER PIC X(01) VALUE '-'. 000083 000083 10 DB2-MES PIC 9(02) VALUE ZEROS. 000084 000084 10 FILLER PIC X(01) VALUE '-'. 000085 000085 10 DB2-DIA PIC 9(02) VALUE ZEROS. 000086 000086* 000088 000088 01 WS-ERROR-DB2. 000089 000089 05 ERR-DB2-ASTERISCO PIC X(80) VALUE ALL '*'. 000090 000090 05 ERR-DB2-PROGRAMA PIC X(08) VALUE 'PJE10E11'. 000091 000091 05 ERR-DB2-SENTENCIA PIC X(08) VALUE SPACES. 000092 000092 05 ERR-DB2-TABLA PIC X(08) VALUE SPACES. 000093 000093 05 ERR-DB2-CODIGO PIC -999 VALUE ZEROS. 000094 000094 05 ERR-DB2-AREA PIC X(80) VALUE SPACES. 000095 000095* 000096 000096 EXEC SQL 000097 000097 INCLUDE SQLCA 000098 000098 END-EXEC. 000099 000099* F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 56 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

8. EDITAR DATOS

EDIT ENTRY PANEL Pulsando la opcin 2 en el Men principal del ISPF/PDF se presenta una pantalla con campos para la creacin y mantenimiento (Edit) de los datos a guardar o almacenados en ficheros secuenciales y/o libreras.
Menu RefList RefMode Utilities LMF Workstation Help -----------------------------------------------------------------------------Edit Entry Panel Command ===> ISPF Library: Project . . Group . . . Type . . . Member . . . UGOPEXX . CURSO . PRUEBA .

. . .

. . .

. . .

(Blank or pattern for member selection list)

Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Workstation File: File Name . . . . . Initial Macro . . . . Profile Name . . . . . Format Name . . . . . Data Set Password . . F1=Help F2=Split F10=Actions F12=Cancel Options / Confirm Cancel/Move/Replace Mixed Mode Edit on Workstation F7=Backward F8=Forward F9=Swap

F3=Exit

Como puede observase, la pantalla es igual a la de visualizacin de datos (ver captulo Visualizar datos). EDICION DE UN MIEMBRO Para conseguir la edicin existente de un miembro, se pueden utilizar las dos formas indicadas en el captulo anterior: Indicar el nombre del miembro: en el campo correspondiente de la zona ISPF Library o con el nombre completo en el campo Data Set Name. No indicar ningn nombre de miembro. El sistema proporciona la lista de miembros de la librera solicitada y se SELECCIONa el deseado. En caso de crear un nuevo miembro, se debe indicar obligatoriamente el nombre que va a tener (ver apartado Creacin de un miembro, ms adelante).

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 57 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Menu RefList RefMode Utilities LMF Workstation Help -----------------------------------------------------------------------------Edit Entry Panel Command ===> ISPF Library: Project . . Group . . . Type . . . Member . . . . . . UGOPEXX CURSO . . . PRUEBA PJE10E11

. . .

. . .

(Blank or pattern for member selection list)

Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Workstation File: File Name . . . . . Initial Macro . . Profile Name . . . Format Name . . . Data Set Password . . . . . . . . Options / Confirm Cancel/Move/Replace Mixed Mode Edit on Workstation

Como resultado de la peticin contemplada en esta pantalla, pueden resultar dos situaciones: El miembro solicitado no existe en la librera. Aparecer una pantalla en blanco para empezar a trabajar en los que se considera un nuevo miembro (ver apartado Creacin de un miembro, ms adelante). El miembro requerido existe. Aparecer una pantalla con los primeros registros de ese miembro y, muy posiblemente, mensajes de aviso del sistema, como se indic en la visualizacin. Estos mensajes suelen hacer referencia a las caractersticas del perfil del miembro.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00001 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ****************************** ==MSG> -Warning- The UNDO command is not available until you change ==MSG> your edit profile using the command RECOVERY ON. ==MSG> -CAUTION- Profile is set to STATS ON. Statistics did not exist for ==MSG> this member, but will be generated if data is saved. 000001 000001 ID DIVISION. 000002 000002 PROGRAM-ID. PJE10E11. 000003 000003****************************************************************** 000004 000004* PROYECTO CURSO ENTORNO S/390 000005 000005* 000006 000006* PROGRAMA PJE10E11 000007 000007* TIPO BATCH 000008 000008* 000009 000009* AUTOR(ES) FRANCISCO M. RUIZ MATE 000010 000010* FECHA 11-10-1999 000011 000011* 000012 000012* DESCRIPCION 000013 000013* ----------000014 000014* OBTENER EL LISTADO DE LOS DATOS GENERALES DE LOS PEDIDOS 000015 000015* INTRODUCIDOS POR SYSIN.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 58 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

PERFIL DE UN MIEMBRO Es conveniente leer los mensajes del sistema para comprobar y/o ajustar el perfil (o caractersticas de edicin) del miembro a las necesidades especficas deseadas. Para ver el perfil concreto del miembro que se est editando, se utiliza el comando PROFILE, cuyo formato bsico es PR[OFILE] que se puede abreviar PR.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00001 00072 Command ===> PROFILE Scroll ===> PAGE ****** ***************************** Top of Data ****************************** =PROF> ....PRUEBA (FIXED - 80)....RECOVERY OFF WARN....NUMBER ON STD........... =PROF> ....CAPS ON....HEX OFF....NULLS OFF....TABS OFF......................... =PROF> ....AUTOSAVE ON....AUTONUM OFF....AUTOLIST OFF....STATS ON.............. =PROF> ....PROFILE UNLOCK....IMACRO NONE....PACK OFF....NOTE ON................ =PROF> ....HILITE OFF CURSOR FIND.............................................. 000001 000001 ID DIVISION. 000002 000002 PROGRAM-ID. PJE10E11. 000003 000003****************************************************************** 000004 000004* PROYECTO CURSO ENTORNO S/390 000005 000005* 000006 000006* PROGRAMA PJE10E11 000007 000007* TIPO BATCH 000008 000008* 000009 000009* AUTOR(ES) FRANCISCO M. RUIZ MATE 000010 000010* FECHA 11-10-1999 000011 000011* 000012 000012* DESCRIPCION 000013 000013* ----------000014 000014* OBTENER EL LISTADO DE LOS DATOS GENERALES DE LOS PEDIDOS

Donde se da informacin sobre el nombre del perfil (PRUEBA), el tipo de registro del miembro (FIXED, de longitud fija), la longitud del registro lgico (80 caracteres), forma de visualizacin de datos (HEX OFF, normal), indicacin de perfil desbloqueado o modificable (PROFILE UNLOCK), etc. En todos los casos, para cambiar las opciones del perfil no se pueden teclear directamente sobre el comando correspondiente, sino que se escriben ntegramente en la lnea de comando. Despus de pulsar la tecla Intro, se ver la modificacin automticamente sobre la lnea correspondiente donde est el comando. La caractersticas ms interesantes del perfil se detallan a continuacin. RECOVERY Es la opcin ms importante pues permite la posibilidad de recuperacin de datos cuando hay una cada del sistema o, ms frecuentemente, cuando el usuario ha sido cancelado por cualquier motivo, generalmente por tiempo sin usarlo.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 59 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Cuando se ha quedado una edicin pendiente, al volver a iniciar la sesin el usuario, el sistema le avisa que tiene una recuperacin pendiente, solicitando la accin a realizar: Volver a la situacin en la que se estaba en el momento de la cancelacin y seguir editando. Salvar el fichero, tal como estaba en el momento de la cancelacin, y seguir con otra operacin. Cancelar los cambios realizados hasta el momento de la cancelacin. Diferir la recuperacin. Para activar el sistema de recuperacin automtico, se debe teclear la orden RECOVERY ON NUMBER Esta opcin es tambin bastante importante, porque se refiere a los distintos tipos de numeracin automtica que se pueden incluir en un miembro y que controla el propio editor NUM[BER ON] [OFF] [STD] [COB[OL]]

[STD COB[OL]] La opcin por defecto es activada (ON). Para eliminar la numeracin automtica se indicara NUM OFF. Adems de la numeracin de lnea del editor, la que est a la izquierda, algunos tipos de miembros pueden considerar otros tipos de numeracin. STD Es la numeracin estndar, que se sita entre las columnas 73 y 80. Esta numeracin no tiene ninguna validez actual y se usaba, para las fichas perforadas, como elemento de clasificacin. Actualmente la siguen manteniendo los programas COBOL, JCL, etc. COB Es la numeracin de lneas de programacin COBOL, va de la columna 1 a 6. Slo se debe poner en este tipo de miembros, porque el editor ocupa esta zona automticamente para esta numeracin, machacando el contenido que pudiera haber en esa zona. Actualmente, no tiene ninguna validez. CAPS Si est activada (ON) efecta la conversin automtica de los caracteres tecleados como letras minsculas en letras maysculas. Esto es importante en algunos casos,

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 60 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

como los programas escritos en lenguaje COBOL, porque hay compiladores que no admiten instrucciones o nombres en letras minsculas. Si est desactivada (OFF) deja las letras en el fichero tal como se teclearon.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 61 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

NULLS Cuando esta activa (ON) elimina los caracteres no tecleados, es decir, aquellos en los que ha habido desplazamiento por el uso de teclas de cursor (por ejemplo, si se escribe: ESTO SE VA A PEGAR y el recorrido entre la primera y la segunda palabras se ha hecho con la tecla de cursor a la derecha, el resultado ser: ESTOSE VA A PEGAR). Si esta desactivada (OFF) los caracteres de desplazamiento de cursor los convierte en blancos, por lo que en el ejemplo anterior, el texto quedara tal como se escribi. Se recomienda esta opcin. (Ver apartado General del captulo Personalizar el usuario).
File Edit Confirm Menu Utilities Compilers Test Help sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 Columns 00007 00072 Command ===> Scroll ===> PAGE ****** ***************************** Top of Data ****************************** =PROF> ....PRUEBA (FIXED - 80)....RECOVERY ON....NUMBER ON STD COB............. =PROF> ....CAPS ON....HEX OFF....NULLS OFF....TABS OFF......................... =PROF> ....AUTOSAVE ON....AUTONUM OFF....AUTOLIST OFF....STATS ON.............. =PROF> ....PROFILE UNLOCK....IMACRO NONE....PACK OFF....NOTE ON................ =PROF> ....HILITE OFF CURSOR FIND.............................................. 000001 ID DIVISION. 000002 PROGRAM-ID. PJE10E11. 000003 ****************************************************************** 000004 * PROYECTO CURSO ENTORNO S/390 000005 * 000006 * PROGRAMA PJE10E11 000007 * TIPO BATCH 000008 * 000009 * AUTOR(ES) FRANCISCO M. RUIZ MATE 000010 * FECHA 11-10-1999 000011 * 000012 * DESCRIPCION 000013 * ----------000014 * OBTENER EL LISTADO DE LOS DATOS GENERALES DE LOS PEDIDOS

CREACION DE UN MIEMBRO Para crear un nuevo miembro, se le debe dar un nombre en el campo Member de la pantalla Edit Entry Panel. Esto proporciona una pantalla vaca, donde se podrn introducir los datos directamente o, en muchas situaciones, copiar datos desde otro miembro y modificarlos a continuacin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 62 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

COPY
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PXX00X00) - 01.00 Columns 00007 00072 Command ===> COPY Scroll ===> PAGE ****** ***************************** Top of Data ****************************** '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' '''''' ''''''

Una vez que se obtiene una pantalla vaca, se puede emitir un comando COPY, teniendo en cuenta dos posibilidades: El miembro que se quiere copiar est en la misma librera. La forma ms rpida y cmoda es escribir COPY nombre-miembro

en la lnea de comando. Automticamente, se obtendr una copia del miembro mencionado completo. El miembro no est en la misma librera o, en cualquiera de los casos, no se quiere copiar completo. Se debe indicar solamente la palabra COPY en la lnea de comando. En caso contrario, cuando el miembro indicado est en otra librera, enviar a la lnea 1 un mensaje de error.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 63 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

En caso correcto, se enviara la siguiente pantalla:


Menu RefList Utilities Help -----------------------------------------------------------------------------Edit/View - Copy Command ===> More: + "Current" Data Set: UGOPEXX.CURSO.PRUEBA(PXX00X00) From ISPF Library: Project . . . UGOPEXX Group . . . . CURSO Type . . . . PRUEBA Member . . .

. . .

. . .

. . .

(Blank or pattern for member selection list)

From Other Partitioned or Sequential Data Set: Data Set Name . . Volume Serial . . (If not cataloged) Data Set Password . . (If password protected)

Line Numbers (Blank for entire member or sequential data set) First line . . . . Last line . . . . . Number type . . . . (Standard, ISPFstd, COBOL, or Relative)

La primera informacin que proporciona esta pantalla es el miembro en el que se va a copiar, en el campo Current Data Set. En la siguiente zona, se indica la librera y el miembro que se quiere copiar. Si se desea, no hace falta indicar el miembro, mostrndose en este caso la lista de miembros. Se puede opcionalmente utilizar otro fichero o librera, usando el campo Data Set Name, como se ha visto en otras ocasiones. Por ltimo, en el bloque final se le indicar cual es la primera lnea, la ltima lnea y el tipo de numeracin del miembro original. Se recomienda la numeracin Relative (relativa), que es la posicin fsica que ocupan los registros dentro del fichero. En cualquier caso, es conveniente la renumeracin previa del fichero original (ver comando RENUM, ms adelante). Una vez tecleada esta informacin, el resultado es la copia parcial o total del miembro origen sobre el destino. A partir de aqu, se puede empezar a modificar o, simplemente, salvarlo para utilizaciones posteriores. Si no fuera un nuevo miembro, es decir, el fichero ya contiene registros, se debe indicar la lnea despus de la que se quiere copiar (con la letra A (after) en la numeracin del editor) o antes de la que se quiere copiar (con la letra B (before)). Esta es la forma ms til de copiar un solo miembro, puesto que deja el nuevo disponible para su uso inmediato. Si se quisieran copiar ms de un miembro, se debe usar la utilidad 3.3 (ver captulo Utilidades).

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 64 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

CREATE Otra forma de copiar es la contraria a la vista anteriormente: situarse en el miembro original y crear un nuevo miembro, copiando total o parcialmente desde el origen.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.01 Columns 00007 00072 Command ===> CREATE Scroll ===> PAGE ****** ***************************** Top of Data ****************************** C99999 ID DIVISION. 000002 PROGRAM-ID. PJE10E11. 000003 ****************************************************************** 000004 * PROYECTO CURSO ENTORNO S/390 000005 * 000006 * PROGRAMA PJE10E11 000007 * TIPO BATCH 000008 * 000009 * AUTOR(ES) FRANCISCO M. RUIZ MATE 000010 * FECHA 11-10-1999 000011 * 000012 * DESCRIPCION 000013 * ----------000014 * OBTENER EL LISTADO DE LOS DATOS GENERALES DE LOS PEDIDOS 000015 * INTRODUCIDOS POR SYSIN. 000016 * SE ESCRIBIRA UN TOTAL DEL IMPORTE DE LOS PEDIDOS Y DE LAS 000017 * DEVOLUCIONES, AL FINAL DEL PROCESO. 000023 * 000024 * FICHEROS (L = LECTURA / E = ESCRITURA / M = MODIFICACION)

Para indicar la parte del fichero original que se desea copiar se va a usar un comando de lnea C (ver apartado COMANDOS de lnea, ms adelante), pudiendo haber varias posibilidades: Copiar una lnea. Se indicara una sola letra C en la zona de numeracin de lnea a copiar. Esta forma no es til. Copiar un bloque de lneas. Se indicaran dos letras C en la primera y ltima zona de numeracin de las lneas a copiar. Copiar desde un punto hasta el final. Se colocara la serie C99999 en la zona de numeracin de la lnea a partir de la que se quiere copiar. Si esa lnea es la primera, se copiar todo el miembro. Es la forma ms habitual y til. Tambin se puede indicar la letra M en lugar de C. El efecto es que mover la(s) lnea(s), desapareciendo del origen y quedando en el destino. Esta forma es de uso delicado y, en lo posible, se debe evitar. Si el nuevo miembro se quiere crear en la misma librera, basta indicar el nombre detrs de la palabra de comando CREATE nombre-miembro

en la lnea de comando. Automticamente, se obtendr una copia del miembro mencionado.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 65 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Si el nuevo miembro se quiere crear en otra librera, se teclear la palabra CREATE, pulsando la tecla Intro, aparece la siguiente pantalla:

Menu RefList Utilities Help -----------------------------------------------------------------------------Edit/View - Create Command ===> "Current" Data Set: UGOPEXX.CURSO.PRUEBA(PJE10E11) To ISPF Library: Project . . . UGOPEXX Group . . . . CURSO Type . . . . PRUEBA Member . . . To Other Partitioned Data Set Member: Data Set Name . . Volume Serial . . (If not cataloged) Data Set Password . . (If password protected)

Enter "/" to select option Specify pack option for "CREATE" Data Set Press ENTER key to create. Enter END command to cancel create.

donde se le indicar el miembro de la librera o el fichero que se quiere crear, con las consideraciones vistas anteriormente. La desventaja de este mtodo con respecto a COPY es que para poder trabajar en el nuevo miembro hay que acceder a l (hay que abrirlo en edicin) mientras que en COPY su utilizacin era inmediata. COMANDOS GENERALES Se debe tener en cuenta que en este manual no se recogen exhaustivamente todos los COMANDOS, sino aquellos que se han considerado ms usuales y tiles. Para una informacin ms completa, consultar ISPF/PDF Edit and Edit macros. Comunes a View Los COMANDOS que se vieron en el captulo Visualizar datos, anteriormente, tienen la misma validez y uso que se indic en su momento. Para informacin sobre ellos, consultar dicho captulo.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 66 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

CHANGE Una actividad bastante frecuente es modificar datos dentro de los ficheros, de forma individual o mltiple. El comando CHANGE (abreviado C) proporciona distintas y cmodas formas de cambio, siendo el formato general C[HANGE] cadena1 cadena2 [NEXT] [ALL] [CHARS] [X] [col1 [col2]]

[PREFIX] [NX]

[FIRST] [SUFFIX] [LAST] [PREV] y en su forma bsica se indica la letra C, seguida de uno o ms blancos, con una cadena origen (cadena1) y otra de cambio (cadena2). Cadenas Tiene la misma consideracin que en el comando FIND, pero teniendo en cuenta que las cadenas pueden tener distintas longitudes y que si una de las cadenas necesita comillas, tambin la otra las debe llevar, se recomienda siempre el uso de comillas para las dos cadenas.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.00 CHARS 'FILLER' changed Command ===> C FILLER FILLER99 ALL Scroll ===> PAGE 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS. ==CHG> 10 FILLER99 PIC X(01) VALUE '-'. 000083 10 DB2-MES PIC 9(02) VALUE ZEROS. ==CHG> 10 FILLER99 PIC X(01) VALUE '-'. 000085 10 DB2-DIA PIC 9(02) VALUE ZEROS. 000086 * 000088 01 WS-ERROR-DB2. 000089 05 ERR-DB2-ASTERISCO PIC X(80) VALUE ALL '*'. 000090 05 ERR-DB2-PROGRAMA PIC X(08) VALUE 'PJE10E11'. 000091 05 ERR-DB2-SENTENCIA PIC X(08) VALUE SPACES. 000092 05 ERR-DB2-TABLA PIC X(08) VALUE SPACES. 000093 05 ERR-DB2-CODIGO PIC -999 VALUE ZEROS. 000094 05 ERR-DB2-AREA PIC X(80) VALUE SPACES. 000095 * 000096 EXEC SQL 000097 INCLUDE SQLCA 000098 END-EXEC. 000099 * 000100 * AREAS DE ENTRADA/SALIDA (EXCEPTO LISTADOS). 000101 *

[WORD]

En la pantalla anterior se puede contemplar el resultado de un cambio, donde las lneas que han sufrido modificacin quedan marcada con la serie ==CHG> en la zona de numeracin de la lnea.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 67 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Si, por problemas de longitud, no se ha podido reemplazar la cadena original en alguna lnea, se indicar como ==ERR>. Hay dos formas generales de usar este comando y se recomienda un estudio previo de las necesidades de cada caso, antes de realizar las modificaciones: Masivo. Se realiza al indicar la opcin ALL en la lnea del comando. El resultado es el cambio de la primera cadena por la segunda en cualquier punto del fichero en el que se encuentre. Es un uso tan cmodo como peligroso, pues puede afectar a cadenas o partes de cadena que no interesaba modificar. Antes del uso de esta forma, se recomienda la realizacin de un FIND previo. Uno a uno. Se trata de usar las teclas de bsqueda (PF5), para encontrar la cadena original, y la de cambio (PF6), para reemplazarla por la nueva. Es un mtodo ms lento que el anterior, pero mucho ms seguro. Al cambiar ficheros de datos, hay que tener especial cuidado con las columnas que ocupa el campo que se quiere modificar, para evitar cambios en campos que no estn involucrados en la modificacin deseada. Por ejemplo, si se quiere cambiar una fecha a ceros por la del da, no se debe indicar C 00000000 19990926 ALL porque se podran modificar accidentalmente aquellos saldos que contengan 8 dgitos a cero. En este caso, se debe especificar el intervalo de columnas, para evitar ese grave error C 00000000 19990926 120 127 ALL SAVE Se puede teclear este comando cuando se quieren consolidar los cambios producidos hasta ese momento, sin tener que salirse del miembro editado. De no emitir este comando, los cambios slo se producen fsicamente cuando se abandona la edicin (generalmente pulsando PF3). Esta forma de trabajo tiene la ventaja de que, si hubiera que cancelar la edicin por cualquier motivo, slo se pierden las modificaciones desde la ltima emisin de este comando. Tambin se puede hacer para evitar prdida de modificaciones ante una cada general del sistema o de usuario, pero esta posibilidad queda cubierta mejor con el comando RECOVERY (ver apartado Perfil de un miembro, ms atrs). CANCEL Provoca la anulacin de todas las modificaciones que se han realizado en el miembro, desde el comienzo de la edicin o desde la emisin del ltimo comando SAVE, si se ha hecho alguno. Si el nmero y complejidad de los cambios es grande, se recomienda emitir peridicamente el comando SAVE. Por el contrario, si las modificaciones son escasas y fciles de controlar, se debe evitar usar dicho comando. Pgina 68 de 216

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Aunque no hay ninguna normativa que lo impida, no es nada recomendable asignar una tecla programable a este comando, pues una vez que se teclease no habra manera de recuperar las modificaciones canceladas accidentalmente. Se puede y se suele abreviar como CAN. UNDO Tiene el mismo efecto que el comando CANCEL, pero deshaciendo los cambios es uno en uno y hacia atrs. Tambin tiene las mismas consideraciones que el comando CANCEL con respecto al comando SAVE. Para poder emitir el comando UNDO, debe estar activa la recuperacin automtica en caso de cada (RECOVERY ON). SUBMIT Provoca la ejecucin del contenido del miembro sobre el que se aplica. Por tanto, slo se debe emitir este comando cuando se trate de miembros cuyo contenido sean registros con lenguaje JCL. En caso de emitirlo con cualquier fichero (por ejemplo, un programa en lenguaje COBOL), se intentara ejecutar el trabajo, pero lo rechazara el convertidor/interprete del JES. Se puede y se suele abreviar como SUB. SORT Aunque es preferible y ms habitual clasificar los ficheros a travs de la utilidad SORT del JCL, a veces puede ser interesante clasificar el contenido de un miembro de una librera o de un fichero de forma interactiva e inmediata. Al modificar la posicin de los registros, el uso de este comando se debe analizar cuidadosamente, antes de usarlo, ya que puede provocar problemas no deseados con la informacin original. SORT [campo1 ..... campo5]

donde cada campo tiene la forma [A] [B] Si se emite un comando SORT sin ms parmetros, la clasificacin se har sobre los lmites del registro, en general, sobre todo el registro. Se pueden establecer hasta 5 campos de clasificacin, con las siguientes consideraciones: Por defecto, se considera clasificacin ascendente, aunque se puede indicar explcitamente con la letra A. Si se desea realizar una clasificacin de alguno o todos [col-inicio col-final]

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 69 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

los campos, se debe indicar la letra B. El orden de clasificacin se puede indicar antes o despus de las columnas de clasificacin. El orden de los campos de clasificacin no tiene por que ser ascendente (por ejemplo, se pueden indicar la secuencia: 25 30 1 6). Col-inicio representa la primera columna y col-final la ltima del campo a clasificar. Por tanto, col-inicio no podr ser mayor que col-final. No puede haber solapamiento parcial o total de campos: la columna de un campo no puede empezar dentro del intervalo de otro campo, ni un campo puede englobar a otro. La columna final de un campo no puede superar el valor de la longitud del registro. Si slo se indica la columna inicial se asume que la columna final es el lmite (final) del mbito del registro, generalmente la ltima posicin del registro. CUT Es una alternativa interesante y cmoda para copiar o mover datos de un miembro a otro. La forma de copiar una parte de un miembro consiste en marcar la(s) lneas que se quieren duplicar con el comando de lnea C en el texto original. Despus escribir el comando CUT en la lnea 2. El sistema enviar un mensaje a la lnea 1 como: nnn lines cutted. Estas lneas se podrn copiar en cualquier fichero y en cualquier momento, dentro de la sesin. Si se utiliza el comando de lnea M, las lneas desaparecen del original en el momento de cortarlas. Esta forma es menos recomendable. Se puede hacer un corte acumulativo incluyendo la opcin APPEND, detrs de la palabra CUT. La acumulacin se produce cada vez que se ejecuta este comando. Hay que se cuidadoso con esta manera de trabajar. En algunas instalaciones actuales, este comando no est disponible. PASTE Es el complemento del comando CUT. Para pegar un bloque cortado previamente, en el miembro o fichero destino se debe indicar la lnea despus de la que se quiere situar el texto (con una letra A (after) en la zona de numeracin de la lnea) o en la lnea antes de la que se quiere copiar (con la letra B (before) de la zona de numeracin de la lnea) y escribir la palabra PASTE en la lnea de comando. Se debe tener en cuenta que se copiar o mover el ltimo bloque que se haya cortado, a no ser que haya acumulacin (ver CUT, ms atrs). En algunas instalaciones actuales, este comando no est disponible. RENUM

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 70 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Aunque, como se explic en su momento (ver apartado Perfil de un miembro, ms atrs), las numeraciones internas en los ficheros no tienen validez, el sistema controla esas numeraciones si estn activas. Por ejemplo, si se han hecho muchas modificaciones en un programa COBOL, posiblemente se ver, de vez en cuando, en la lnea 1 el mensaje: RENUM recommended. Este comando se emitir para mantener la limpieza del sistema de numeracin que tenga el miembro o fichero. UNNUMBER Si un miembro o fichero se cre con una numeracin o se copi de otro fichero que tena determinada numeracin, esta permanece como parte del fichero siempre y no se pueden incluir datos en esas zonas. Para eliminar las numeraciones y poderlas utilizar como parte del registro, se emite este comando. Hay que tener en cuenta que no elimina los nmeros, sino que permite que se puedan machacar. Se puede y se suele abreviar como UNNUM. COMANDOS DE LINEA Para poder manipular registros dentro de un miembro de una librera o un fichero, son necesarios determinados COMANDOS especiales, llamados de lnea porque se escriben en la zona de numeracin del editor en la lnea sobre la que se quiere actuar. Se escriben con una sola letra, que identifica la operacin a realizar, si slo afecta a una lnea o con dos letras y en dos lneas distintas, si afecta a un bloque de lneas. Estos COMANDOS permiten mantenimiento de los datos: Insertar una o ms lneas. Copiar una lnea o un bloque de lneas en otro punto del fichero. Mover una lnea o un bloque de lneas en otro punto del fichero. Repetir una lnea o un bloque de lneas detrs de la lnea indicada. Borrar una lnea o un bloque de lneas del fichero. Ocultar un bloque de lneas, para mejorar la visin del fichero. Desplazar verticalmente los datos, para mejorar la claridad de la informacin. Mientras que no se sobrepase la numeracin del editor, se puede escribir el comando a partir de cualquier columna de esa numeracin: no es necesario que empiece en la primera columna. Insertar lneas realizar las operaciones necesarias para el

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 71 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

El comando para la insercin de una o ms lneas es la letra I. Se coloca en la lnea despus de la que se quiere insertar. Este comando tiene dos posibles utilizaciones: I Provoca la insercin de una lnea en blanco, detrs de la lnea donde se ha escrito el comando. In Provoca la insercin de n lneas a continuacin de la que se escribi el comando.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.01 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000063 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 I50070 VALUE ZEROS. 000073 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS. 000079 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000080 05 DB2-FECHA. 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS.

La ejecucin del comando I5 en la lnea 000070 provoca la apertura de un bloque de cinco lneas, para la introduccin de datos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 72 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.01 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000063 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. '''''' '''''' '''''' '''''' '''''' 000073 * 000075 01 FECHAS. 000076 05 SYS-FECHA.

Se debe tener especial cuidado en no usar la tecla Supr despus de escribir la letra I o el nmero de lneas a insertar: el sistema considera que el resto de la numeracin de lnea forma parte del nmero de lneas a insertar (por ejemplo, si la lnea es 003400, se escribe I5 y se pulsa la tecla de supresin de caracteres, el sistema entiende I5400). Los usuarios expertos deben evitar el uso de este comando. Copiar lneas El comando para la copiar una o ms lneas en otra posicin del fichero es la letra C. Se coloca en la lnea que se quiere duplicar en otro lugar. Este comando tiene tres posibles utilizaciones: C Indica que slo se va a copiar esa lnea. Cn Indica que se van a copiar n lneas a partir de la incluye el comando. CC Indica que se quiere copiar un bloque de lneas: desde la que tiene la primera serie CC hasta la que tiene otra serie CC. Adems se debe indicar la posicin donde se quiere copiar: A B Despus (after) la lnea que incluye esta letra. Antes (before) la lnea que incluye esta letra.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 73 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.01 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. CC0061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 00CC63 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 0000A0 VALUE ZEROS. 000073 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS. 000079 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000080 05 DB2-FECHA.

Se quiere copiar un bloque que va de la lnea 000061 a la 000063 despus de la lnea 000070. El resultado es:
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 COBOL renumbered Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000063 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000071 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000072 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000073 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000074 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS.

Mover lneas El comando para la mover una o ms lneas a otra posicin del fichero es la letra M. Se coloca en la lnea que se quiere desplazar a otro lugar. Es muy parecida a la copia, pero aqu las lneas desaparecen de la posicin original para aparecer en un nuevo lugar. Este comando tiene tres posibles utilizaciones:

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 74 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

M Indica que slo se va a mover esa lnea. Mn Indica que se van a mover n lneas a partir de la incluye el comando. MM Indica que se quiere mover un bloque de lneas: desde la que tiene la primera serie MM hasta la que tiene otra serie MM. Adems se debe indicar la posicin a la se quiere mover: A B Despus (after) la lnea que incluye esta letra. Antes (before) la lnea que incluye esta letra.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. MM0061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 00MM63 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 0000A0 VALUE ZEROS. 000074 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS. 000079 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000080 05 DB2-FECHA. 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS.

Se quiere mover un bloque que va de la lnea 000061 a la 000063 despus de la lnea 000070. El resultado es:

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 75 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000071 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000072 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000073 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000074 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS. 000079 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000080 05 DB2-FECHA. 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS.

Se debe tener en cuenta que este comando puede descolocar una buena parte del fichero original. Por tanto, cuando se quiera mover un bloque, utilizar preferentemente la forma MM-MM a la Mn.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 76 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Repetir lneas El comando para la repetir una o ms lneas a continuacin de la que lleva el comando es la letra R. Se coloca en la lnea que se quiere duplicar. Es muy parecida a la copia, pero en este caso no hace falta indicar donde se quiere repetir, puesto que es siempre a continuacin de la lnea que emite el comando. Este comando tiene tres posibles utilizaciones: R Indica que slo se va a repetir esa lnea a continuacin. Rn Indica que se van a repetir n lneas a partir y despus de la incluye el comando. RR[n] Indica que se quiere repetir un bloque de lneas: desde la que tiene la primera serie RR hasta la que tiene otra serie RR y a continuacin de la que tiene la ltima serie. Se puede indicar la repeticin n veces.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. RR0067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 00RR70 VALUE ZEROS. 000071 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000072 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000073 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000074 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS. 000079 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000080 05 DB2-FECHA. 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS. .

Se quiere repetir el bloque que va de la lnea 000067 a la 000070 a continuacin de la lnea 000070. El resultado es:

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 77 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 RENUM recommended Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000071 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000072 VALUE ZEROS. 000073 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000074 VALUE ZEROS. 000075 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000076 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000077 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000078 * 000079 01 FECHAS. 000080 05 SYS-FECHA. 000081 10 SYS-AAA PIC 9(02) VALUE ZEROS.

Borrar lneas El comando para la borrar una o ms lneas del fichero es la letra D. Se coloca en la lnea que se quiere borrar. Es, sin duda, el comando que requiere ms cuidado en su uso. Este comando tiene tres posibles utilizaciones: D Indica que slo se va a borrar esa lnea. Dn Indica que se van a borrar n lneas a partir de la incluye el comando. DD Indica que se quiere borrar un bloque de lneas: desde la que tiene la primera serie DD hasta la que tiene otra serie DD.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 78 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 COBOL renumbered Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000063 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. DD0071 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000072 05 WS-MAX-LIN PIC 9(02) VALUE 60. 00DD73 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000074 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS.

Se quiere borrar un bloque que va de la lnea 000071 a la 000073. El resultado es:


File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000061 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000062 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000063 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000074 * 000075 01 FECHAS. 000076 05 SYS-FECHA. 000077 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000078 10 SYS-MES PIC 9(02) VALUE ZEROS. 000079 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000080 05 DB2-FECHA. 000081 10 DB2-SYA PIC 9(04) VALUE ZEROS.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 79 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

El uso de este comando en la forma Dn es muy peligroso, porque se pueden borrar, por error al teclear el nmero, muchas ms lneas que las deseadas. Slo se recomienda para borrar desde un punto del fichero hasta el final (por ejemplo, si se quieren borrar todos los registros se escribira en la primera lnea D99999). Ocultar lneas El comando para ocultar una o ms lneas en la visualizacin del fichero es la letra X. Se coloca en la lnea que se quiere ocultar y no significa que desaparezcan fsicamente del fichero, sino de su visualizacin. Es til para agilizar determinados procesos (por ejemplo, bsqueda visual), porque ahorra desplazamientos de pantalla. Este comando tiene tres posibles utilizaciones: X Indica que slo se va a ocultar esa lnea. No merece la pena este uso. Xn Indica que se van a ocultar n lneas a partir de la incluye el comando. XX Indica que se quiere ocultar un bloque de lneas: desde la que tiene la primera serie XX hasta la que tiene otra serie XX.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. XX0067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000071 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000072 VALUE ZEROS. 000073 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000074 VALUE ZEROS. 000075 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000076 05 WS-MAX-LIN PIC 9(02) VALUE 60. 00XX77 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000078 * 000079 01 FECHAS. 000080 05 SYS-FECHA. 000081 10 SYS-AAA PIC 9(02) VALUE ZEROS.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 80 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Se desea ocultar un bloque que va de la lnea 000067 a la 000067. El resuLtado es:


File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. - - - - - - - - - - - - - - - - - 11 Line(s) not Displayed 000078 * 000079 01 FECHAS. 000080 05 SYS-FECHA. 000081 10 SYS-AAA PIC 9(02) VALUE ZEROS. 000082 10 SYS-MES PIC 9(02) VALUE ZEROS. 000083 10 SYS-DIA PIC 9(02) VALUE ZEROS. 000084 05 DB2-FECHA. 000085 10 DB2-SYA PIC 9(04) VALUE ZEROS. 000086 10 FILLER PIC X(01) VALUE '-'. 000087 10 DB2-MES PIC 9(02) VALUE ZEROS. 000088 10 FILLER PIC X(01) VALUE '-'. 000089 10 DB2-DIA PIC 9(02) VALUE ZEROS. 000090 * 000091 01 WS-ERROR-DB2.

Se puede observar como el sistema indica, con una lnea rayada, que en esa zona hay lneas ocultas, no visualizadas. Para recuperar estas lneas, la forma ms cmoda es el uso del comando RESET (ver apartado Eliminar mensajes (RESET) del captulo Visualizar datos, ms arriba). Desplazar columnas Hasta ahora se ha visto la forma de realizar desplazamientos horizontales o de lnea. Algunas veces es interesante recolocar el texto para mayor claridad y eso puede implicar el desplazamiento lateral o vertical dentro de algunos resgistros. El comando para realizar estas operaciones en una o ms lneas del fichero son los caracteres ( y ). Se coloca en la lnea que se quiere desplazar. Hay que se muy cuidadoso con estos desplazamiento puesto que pueden generar prdida de informacin (por ejemplo, si se desplazan 20 columnas a la derecha, todos los caracteres que, en este momento, estn a la derecha de la columna 52 se perdern). Este comando tiene seis posibles utilizaciones: ( Indica que los datos, desde el primer carcter ms a la izquierda de la lnea, se van a desplazar 2 columnas a la izquierda, que es el valor por defecto. (n Indica que los datos de una lnea se van a desplazar n columnas a la izquierda.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 81 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

((n Indica que los datos del bloque seleccionado se despalzarn n columnas a la izquierda. El nmero de columnas ser de 2 si no se indica nmero y, si se indica, se puede poner en la primera lnea o en la ltima. ),)n,))n Utilizan las mismas consideraciones que (, pero realizando el desplazamiento hacia la derecha.
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 RENUM recommended Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. ))5067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000071 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000072 VALUE ZEROS. 000073 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000074 VALUE ZEROS. 000075 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000076 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000))7 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000078 * 000079 01 FECHAS. 000080 05 SYS-FECHA. 000081 10 SYS-AAA PIC 9(02) VALUE ZEROS.

Se quieren desplazar los datos de un bloque que va de la lnea 000067 a la 000077 cinco columnas a la derecha. El resultado es:
File Edit Confirm Menu Utilities Compilers Test Help ------------------------------------------------------------------------------EDIT UGOPEXX.CURSO.PRUEBA(PJE10E11) - 01.02 Columns 00007 00072 Command ===> Scroll ===> PAGE 000056 01 REG-LPEDIDOS PIC X(132). 000057 * 000058 WORKING-STORAGE SECTION. 000059 * 000060 01 VARIABLES. 000067 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000068 VALUE ZEROS. 000069 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000070 VALUE ZEROS. 000071 05 WS-TOT-PEDIDOS PIC 9(15)V99 COMP-3 000072 VALUE ZEROS. 000073 05 WS-TOT-DESCTOS PIC 9(15)V99 COMP-3 000074 VALUE ZEROS. 000075 05 WS-CONT-LIN PIC 9(02) VALUE ZEROS. 000076 05 WS-MAX-LIN PIC 9(02) VALUE 60. 000077 05 WS-CONT-PAG PIC 9(03) VALUE ZEROS. 000078 *

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 82 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

9. UTILIDADES
MENU DE UTILIDADES Prcticamente ninguno de los procesos anteriores se podran haber realizado si antes no se hubiesen creado las libreras y ficheros de datos para su uso. Para la creacin y mantenimiento de los grupos de datos se pueden utilizar distintas utilidades, que proporcionan herramientas de amplias posibilidades y fcil manejo.
Menu Help -----------------------------------------------------------------------------Utility Selection Panel Option ===> 1 2 3 4 5 6 7 8 9 * 11 12 13 14 15 Library Compress or print data set. Print index listing. Print, rename, delete, browse, edit or view members Data Set Allocate, rename, delete, catalog, uncatalog, or display information of an entire data set Move/Copy Move, copy, or promote members or data sets Dslist Print or display (to process) list of data set names. Print or display VTOC information Reset Reset statistics for members of ISPF library Hardcopy Initiate hardcopy output ISPF C/S Install ISPF C/S workstation code from MVS to your workstation. Outlist Display, delete, or print held job output Commands Create/change an application command table Reserved This option reserved for future expansion. Format Format definition for formatted data Edit/Browse SuperC Compare data sets (Standard Dialog) SuperCE Compare data sets Extended (Extended Dialog) Search-For Search data sets for strings of data (Standard Dialog) Search-ForE Search data sets for strings of data Extended (Extended Dialog)

Donde los principales puntos son: 1. Gestin de libreras: informacin y comprimir libreras, operaciones sobre los miembros de la librera. 2. Gestin de grupo de datos: creacin y mantenimiento de grupos de datos (libreras y ficheros). 3. Mover/copiar grupos de datos: Copiar y mover miembros de libreras y ficheros de datos. 4. Lista de grupos de datos: informacin sobre todos los grupos de datos catalogados.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 83 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

OPCIONES PARA LIBRERIAS Con la opcin 1 del submen de utilidades, se ofrecen una serie de posibilidades para el tratamiento de toda la librera, como para cada uno de sus miembros.
Menu RefList Utilities Help -----------------------------------------------------------------------------Library Utility Option ===> More: + blank Display member list E Edit member C Compress data set V View member X Print index listing B Browse member L Print entire data set D Delete member I Data set information R Rename member S Short data set information P Print member ISPF Library: Project . . Group . . . Type . . . Member . . New name . . UGOPEXX . CURSO . PRUEBA . .

. . .

. . .

. . .

(If B, D, E, P, R, V, or blank selected) (If R selected)

Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Enter "/" to select option

donde se pueden ver dos columnas de men: la izquierda afecta a toda la librera, la derecha a los miembros de una librera. GESTION DE LIBRERIAS Las funciones que se pueden realizar desde esta pantalla sobre una librera son las siguientes: blanco C X L I S Visualiza la lista de los miembros de la librera

Comprime el rea de datos de la librera Imprime la lista de miembros de la librera Imprime la librera completa Informa sobre la caracterscas fsicas de la librera Informacin ms corta sobre la librera

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 84 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Comprimir la librera Segn se explic en su momento, el borrado y modificacin de los miembros de las libreras van generando huecos no utilizados en el rea de datos. Por precaucin o por aviso del sistema, se debe reorganizar una librera cada cierto tiempo, para liberar el espacio no utilizado y agrupar la informacind de los ficheros.
Menu RefList Utilities Help -----------------------------------------------------------------------------Library Utility Compress successful Option ===> C More: + blank Display member list E Edit member C Compress data set V View member X Print index listing B Browse member L Print entire data set D Delete member I Data set information R Rename member S Short data set information P Print member ISPF Library: Project . . Group . . . Type . . . Member . . New name . . UGOPEXX . CURSO . PRUEBA . .

. . .

. . .

. . .

(If B, D, E, P, R, V, or blank selected) (If R selected)

Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Enter "/" to select option

Despus de pedir la compresin correcta de una librera, el sistema enva un mensaje a la lnea 1 de la pantalla: Compress successful. En caso de no poder comprimir la librera por algn motivo, enviara el mensaje correspondiente. Informacin completa de la librera Se proporciona informacin completa sobre las caractersticas fsicas de la librera: volumen de almacenamiento, gestin de espacio, cantidad de espacio, caractersticas de los registros, asignacin y ocupacin actual de la librera o fichero. Ninguno de los datos presentados son modificables. Para ms informacin sobre las caractersticas de los datos, ver el apartado Datos de la librera, ms adelante.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 85 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Data Set Information Command ===> Data Set Name . . . : UGOPEXX.CURSO.PRUEBA . . . . . . . . : : : : : : : : GDK2AC 3390 PO FB 80 24000 5 1 Current Allocation Allocated tracks . : 5 Allocated extents . : 1 Maximum dir. blocks : 2 Current Utilization Used tracks . . . . Used extents . . . Used dir. blocks . Number of members .

General Data Volume serial . . Device type . . . Organization . . Record format . . Record length . . Block size . . . 1st extent tracks Secondary tracks

Creation date . . . : 1999/10/26 Expiration date . . : ***None***

: : : :

3 1 1 3

Despus de pedir la compresin correcta de una librera, el sistema enva un mensaje a la lnea 1 de la pantalla: Compress successful. En caso de no poder comprimir la librera por algn motivo, enviara el mensaje correspondiente. Informacin corta de la librera
Data Set Information Command ===> Data Set Name . . . : UGOPEXX.CURSO.PRUEBA . . . . . . . . : : : : : : : : GDK2AC 3390 PO FB 80 24000 5 1 Current Allocation Allocated tracks . : 5 Allocated extents . : 1

General Data Volume serial . . Device type . . . Organization . . Record format . . Record length . . Block size . . . 1st extent tracks Secondary tracks

Current Utilization Used tracks . . . . : 3 Used extents . . . : 1

Creation date . . . : 1999/10/26 Expiration date . . : ***None***

Proporciona la misma informacin que el apartado anteior, excepto los datos relativos al directorio de la librera, si este fuera el grupo de datos a considerar.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 86 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

GESTION DE MIEMBROS Las funciones que se pueden realizar para cada miembro de la librera, bien desde el panel 3.1 o desde la lista de miembros, son las siguientes: E V B D R P Edita el miembro seleccionado (equivalente a la opcin 2 del Men principal) Visualiza el miembro seleccionado (equivalente a la opcin 1 del Men principal) Similar a la opcin anterior, pero sin posibilidad de cambio de los datos Permite borrar un miembro de una librera. Permite renombrar un miembro de una librera Imprime el contenido de un miembro de una librera

Lista de miembros La forma ms habitual con los miembros de una librera, a travs de esta utilidad, en a partir de la lista de miembros, obtenida con la opcin blanco de la opcin 3.1. Las operaciones de edicin, visualizacin y browsing se dan por conocidas, porque se corresponde a otras opciones del ISPF/PDF que se han visto anteriormente. Hay usuarios que suelen trabajar desde esta opcin, puesto que contempla prcticamente todas las posibilidades de manejo de miembros de libreras. Sin embargo, se aconseja utilizarlo slo para las funciones que se detallan a continuacin.
Menu Functions Confirm Utilities Help -----------------------------------------------------------------------------LIBRARY UGOPEXX.CURSO.PRUEBA Row 00001 of 00004 Command ===> Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID _ DEJ99A00 01.00 99/10/26 99/10/26 10:40 352 352 0 UGOPEXX _ PAP30E09 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX _ PJE10E11 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 87 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Para elegir un miembro y la operacin que se desea realizar sobre l, basta situar el cursor en el punto de la izquierda correspondiente al miembro deseado y teclear la letra que representa la operacin. Borrar un miembro
Menu Functions Confirm Utilities Help -----------------------------------------------------------------------------LIBRARY UGOPEXX.CURSO.PRUEBA Row 00001 of 00004 Command ===> Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID D DEJ99A00 01.00 99/10/26 99/10/26 10:40 352 352 0 UGOPEXX _ PAP30E09 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX _ PJE10E11 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

Se puede realizar el borrado de uno o varios miembros de una librera, simplemente marcando con la letra D las lneas de la lista sobre las que se quiere actuar. Dado lo delicado de esta operacin, porque se pueden perder definitivamente los datos de los miembros borrados, se debe pedir siempre confirmacin de borrado.
Menu Functions Confirm Utilities Help - +-------------------- ISPF Utilities --------------------+ L | Confirm Member Delete | C | | | Data Set Name: | D | UGOPEXX.CURSO.PRUEBA | _ | | _ | Member to be Deleted: | _ | DEJ99A00 | | | | Set member delete confirmation off | | | | Press ENTER to confirm delete. | | Press CANCEL or EXIT to cancel delete. | | | | | +--------------------------------------------------------+ ----------------ow 00001 of 00004 Scroll ===> PAGE nit Mod ID 352 0 UGOPEXX 352 0 UGOPEXX 352 114 UGOPEXX 352 0 UGOPEXX

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 88 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Despus de aceptar o cancelar las peticiones de borrado, el resultado es una pantalla similar a
Menu Functions Confirm Utilities Help -----------------------------------------------------------------------------LIBRARY UGOPEXX.CURSO.PRUEBA Row 00001 of 00004 Command ===> Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID _ DEJ99A00 *Deleted _ PAP30E09 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX _ PJE10E11 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

Renombrar un miembro Para cambiar el nombre de un miembro slo existe esta opcin. Se puede hacer directamente en la lista, colocando la letra R en la lnea correspondiente y el nuevo nombre a la derecha del actual.
Menu Functions Confirm Utilities Help -----------------------------------------------------------------------------LIBRARY UGOPEXX.CURSO.PRUEBA Row 00001 of 00003 Command ===> Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID R PAP30E09 PJE30E15 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX _ PJE10E11 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

o se puede colocar slo la letra R en la lnea correspondiente y pulsar la tecla Intro, con lo que se proporcionar una ventana, para incluir el nuevo nombre.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 89 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Menu Functions Confirm Utilities Help s +---------- ISPF Utilities -----------+ L | Member Rename | C | | | Enter a new member name: | R | | _ | Old Name . . : PAP30E09 | _ | | | New Name . . . PJE30E15 | | | | | | Press ENTER to rename member. | | Press CANCEL to cancel rename. | | | | | | | +-------------------------------------+

-----------------------------------Row 00001 of 00003 Scroll ===> PAGE Changed Size Init Mod ID 0/26 10:39 352 352 0 UGOPEXX 0/26 12:25 356 352 114 UGOPEXX 0/26 10:39 352 352 0 UGOPEXX

Despus de cambiar el nombre a todos los miembros que se desee, aparecer una pantalla indicando los cambios realizados.
Menu Functions Confirm Utilities Help -----------------------------------------------------------------------------LIBRARY UGOPEXX.CURSO.PRUEBA Row 00001 of 00003 Command ===> Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID _ PAP30E09 *Renamed _ PJE10E11 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 90 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

CREACION DE DATA SET La opcin 2 del submen de utilidades es, posiblemente, la ms importante, porque permite crear y mantener las libreras y ficheros del sistema.

Menu RefList Utilities Help -----------------------------------------------------------------------------Data Set Utility Option ===> A R D blank Allocate new data set Rename entire data set Delete entire data set Data set information C U S M V Catalog data set Uncatalog data set Data set information (short) Enhanced data set allocation VSAM Utilities

ISPF Library: Project . . UGOPEXX Group . . . CURSO Type . . . . PRUEBA Other Partitioned, Sequential or VSAM Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged, required for option "C") Data Set Password . . (If password protected)

donde se pueden ver dos columnas de men, que proporcionan una serie de funciones, de las que las ms importantes son: blanco S A R D C U Visualiza informacin sobre las caractersticas del data set (igual a la explicada en 3.1) Visualiza informacin corta sobre el data set (igual a la explicada en 3.1) Asigna o crea un nuevo data set Renombra un data set Borra un data set Cataloga un data set Descataloga un data set

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 91 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Asignacin (creacin)
Menu RefList Utilities Help -----------------------------------------------------------------------------Data Set Utility Option ===> A A R D blank Allocate new data set Rename entire data set Delete entire data set Data set information C U S M V Catalog data set Uncatalog data set Data set information (short) Enhanced data set allocation VSAM Utilities

ISPF Library: Project . . UGOPEXX Group . . . CURSO Type . . . . COBOL Other Partitioned, Sequential or VSAM Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged, required for option "C") Data Set Password . . (If password protected)

Indicando un nombre en la zona ISPF Library o en el campo Data Set Name y escribiendo la letra A en la lnea de comando se pasa a la pantalla para proporcionar los datos de creacin del nuevo data set. DATOS DE CREACION
Menu RefList Utilities Help +--------------------------- Allocate New Data Set ----------------------------+ | | | Command ===> | | | | | | Data Set Name . . . : UGOPEXX.CURSO.COBOL | | | | Volume serial . . . . GDK2AC (Blank for authorized default volume) * | | Generic unit. . . . . (Generic group name or unit address) * | | Space units . . . . . TRACK (BLKS, TRKS, CYLS, KB, MB or BYTES) | | Primary quantity. . . 5 (In above units) | | Secondary quantity. . 1 (In above units) | | Directory blocks. . . 3 (Zero for sequential data set) | | Record format . . . . FB | | Record length . . . . 80 | | Block size . . . . . 24000 | | Expiration date . . . (YY/MM/DD, YYYY/MM/DD | | YY.DDD, YYYY.DDD in Julian form | | Enter "/" to select option DDDD for retention period in days | | Allocate Multiple Volumes or blank) | | | | ( * Only one of these fields may be specified) | +------------------------------------------------------------------------------+

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 92 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Para la creacin de una librera se debe proporcionar la siguiente informacin: Volumen Cdigo de 6 caracteres, empezando por letra y sin caracteres especiales, que asigna el Administrador del Sistema para cada conjunto de datos. Unidad de espacio Indica la forma de almacenamiento fsico de los registros, donde los ms usuales son: TRKS pistas, dependiendo del dispositivo, unos 50.000 caracteres CYLS cilindros, normalmente 15 pistas BLKS bloques, un nmero de caracteres establecido por el usuario Espacio primario Expresa, en unidades de espacio, la cantidad de espacio primario, es decir, mnimo. Tiene que se un valor mayor que cero. Espacio secundario Expresa, en unidades de espacio, la cantidad de espacio secuendario, o sea, hasta 15 veces la cantidad que se indique aqu, que se ir asignando a medida que haga falta. Es opcional, es decir, puede ser cero. Bloques de directorio Expresa la cantidad de bloques de directorio que se asigna a la librera. Hay que tener en cuenta que, dependiendo del dispositivo, un bloque de directorio puede contener 4 5 entradas para miembros. Formato de registro Indica el tipo de registros que se van a almacenar en la librera. Los tipos ms habituales son: F FB FBA V VB U longitud fija longitud fija y bloqueados longitud fija, bloqueado y con carcter ANSI (listados) longitud variable longitud variable longitud indefinida

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 93 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Longitud del registro lgico Indica la longitud de los registros lgicos de la librera. Longitud de bloque Indica la longitud del bloque o registro fsico, que debe contener un nmero entero de registros lgicos. Fecha de expiracin Se puede indicar una fecha en la que se desea que la librera se borre automticamente. No se indica nunca. Para la creacin de un fichero secuencial, se debe incluir la misma informacin, pero teniendo en cuenta que Bloques de directorio Tiene que ser cero, porque es lo que distingue un fichero de una librera.
Menu RefList Utilities Help +--------------------------- Allocate New Data Set ----------------------------+ | | | Command ===> | | | | | | Data Set Name . . . : UGOPEXX.CURSO.FICHERO.PRUEBA | | | | Volume serial . . . . GDK2AC (Blank for authorized default volume) * | | Generic unit. . . . . (Generic group name or unit address) * | | Space units . . . . . TRACK (BLKS, TRKS, CYLS, KB, MB or BYTES) | | Primary quantity. . . 1 (In above units) | | Secondary quantity. . 0 (In above units) | | Directory blocks. . . 0 (Zero for sequential data set) | | Record format . . . . FB | | Record length . . . . 110 | | Block size . . . . . 22000 | | Expiration date . . . (YY/MM/DD, YYYY/MM/DD | | YY.DDD, YYYY.DDD in Julian form | | Enter "/" to select option DDDD for retention period in days | | Allocate Multiple Volumes or blank) | | | | ( * Only one of these fields may be specified) | +------------------------------------------------------------------------------+

Si se ha producido un error en la asignacin de los datos, el sistema enva en la lnea 1 el mensaje correspondiente

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 94 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Menu RefList Utilities Help +--------------------------- Allocate New Data Set ----------------------------+ | Invalid record length | | Command ===> | | | | | | Data Set Name . . . : UGOPEXX.CURSO.COBOL | | | | Volume serial . . . . GDK2AC (Blank for authorized default volume) * | | Generic unit. . . . . (Generic group name or unit address) * | | Space units . . . . . TRACK (BLKS, TRKS, CYLS, KB, MB or BYTES) | | Primary quantity. . . 5 (In above units) | | Secondary quantity. . 1 (In above units) | | Directory blocks. . . 3 (Zero for sequential data set) | | Record format . . . . FB | | Record length . . . . 100 | | Block size . . . . . 23333 | | Expiration date . . . (YY/MM/DD, YYYY/MM/DD | | YY.DDD, YYYY.DDD in Julian form | | Enter "/" to select option DDDD for retention period in days | | Allocate Multiple Volumes or blank) | | | | ( * Only one of these fields may be specified) | +------------------------------------------------------------------------------+

Cuando todos los datos estn correctos, el sistema devuelve la pantalla inicial de la opcin 3.2 uno de estos dos mensajes: Data set allocated, cuando se ha creado correctamente el data set. Not space available, cuando no ha encontrado espacio en el volumen para el data set.
Menu RefList Utilities Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss Data Set Utility Data set allocated Option ===> A R D blank Allocate new data set Rename entire data set Delete entire data set Data set information C U S M V Catalog data set Uncatalog data set Data set information (short) Enhanced data set allocation VSAM Utilities

ISPF Library: Project . . UGOPEXX Group . . . CURSO Type . . . . COBOL Other Partitioned, Sequential or VSAM Data Set: Data Set Name . . . 'UGOPEXX.CURSO.FICHERO.PRUEBA' Volume Serial . . . (If not cataloged, required for option "C") Data Set Password . . (If password protected)

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 95 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

RENOMBRAR UN DATA SET La opcin 2 del submen de utilidades tambin permite cambiar el nombre a un data set. En la pantalla inicial se debe indicar el nombre actual y la letra R en la lnea de comando. Al pulsar la tecla Intro presenta una pantalla para el cambio del nombre.
+---------------------------- Rename Data Set ----------------------------+ s | | | Command ===> | O | | | Data Set Name: UGOPEXX.CURSO.FICHERO.PRUEBA | | Volume . . . : GDK2AC | | | | Enter new name below: (The data set will be recataloged.) | b | | | ISPF Library: | | Project. . . UGOPEXX | I | Group. . . . CURSO | | Type . . . . COBOL | | | | Other Partitioned or Sequential Data Set: | | Data Set Name . . . 'UGOPEXX.CURSO.FICHERO.PRUEBA' | O | | | | | | | | D | | | | | | +-------------------------------------------------------------------------+

Una vez indicado el nuevo nombre en la ventana anterior, el sistema devuelve un mensaje en la lnea 1 de la pantalla de la opcin 3.2 indicando la terminacin de la operacin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 96 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

BORRAR UN DATA SET La opcin 2 del submen de utilidades tambin permite borrar libreras y ficheros. En la pantalla inicial se debe indicar el nombre del data set que se quiere borrar y la letra D en la lnea de comando. Al pulsar la tecla Intro presenta una pantalla para confirmar el borrado.
Menu RefList Utilities Help s +------------------------- Confirm Delete --------------------------+ | | O | Command ===> | | | | Data Set Name. : UGOPEXX.CURSO.FICHERO.PRUEBA.RENOMB | | Volume . . . . : GDK2AC | | Creation Date. : 1999/10/26 | b | | | | | Instructions: | I | | | Press ENTER key to confirm the delete request. | | (The data set will be deleted and uncataloged.) | | | | Press CANCEL or EXIT to cancel the delete request. | O | | | | | | | | D +-------------------------------------------------------------------+ ------

t) on

"C")

Dada la importancia que puede tener el borrado accidental de un data set, que es posible no se pueda recuperar, se recomienda precaucin al realizar esta accin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 97 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

COPIAR Y MOVER DATOS La opcin 3 del submen de utilidades permite copiar y/o mover datos de ficheros y de libreras de forma masiva. Para copiar miembros de una librera a otra, se debe indicar el nombre de la librera original y la letra C en la lnea de COMANDOS. Dependiendo del valor indicado en el campo Member la copia sera: de un solo miembro, parte de los miembros o todos los miembros.
Menu RefList Utilities Help -----------------------------------------------------------------------------Move/Copy Utility Option ===> C C M L P Copy data set or member(s) Move data set or member(s) Copy and LMF lock member(s) LMF Promote data set or member(s) CP MP LP PP Copy and print Move and print Copy, LMF lock, and print LMF Promote and print

Specify "From" Data Set below, then press Enter key From ISPF Library: Project . . . UGOPEXX Group . . . . CURSO Type . . . . PRUEBA Member . . . * (--- Options C, CP, L, and LP only ----) . . . . . . (Blank or pattern for member list, "*" for all members)

. . .

From Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Data Set Password . . (If password protected)

Al haberle indicado un asterisco (*) en el campo Member significa que se quieren copiar todos los miembros de esa librera
Menu RefList Utilities Help -----------------------------------------------------------------------------COPY From UGOPEXX.CURSO.PRUEBA(*) Command ===> Specify "To" Data Set Below To ISPF Library: Project . . UGOPEXX Group . . . CURSO Type . . . . COBOL Replace option: Enter "/" to select option Replace like-named members

To Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Data Set Password . . (If password protected) Pack Option 3 1. Yes 2. No 3. Default SCLM Setting 3 1. SCLM 2. Non-SCLM 3. As is

To Data Set Options: Sequential Disposition 1. Mod 2. Old

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 98 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

El sistema devuelve una pantalla para que se indique la librera desti- no, es decir, a la que se quiere copiar. Es interesante observar si el cam- po Replace option est El El sistema devuelve una pantalla para que se indique la librera destino, es decir, a la que se quiere copiar. Es interesante observar si el campo Replace Option est activo (tiene una barra, /), porque eso permite que se puedan reemplazar miembros que tengan el mismo nombre en origen que en destino. Si no esta opcin est desactivada, los miembros de nombres iguales en las dos libreras no se copian. Una vez realizada la operacin, el sistema devuelve la pantalla inicial con un mensaje en lnea 1, indicandoe el nmero de miembros copiados.

Menu RefList Utilities Help -----------------------------------------------------------------------------Move/Copy Utility 3 members copied Option ===> C C M L P Copy data set or member(s) Move data set or member(s) Copy and LMF lock member(s) LMF Promote data set or member(s) CP MP LP PP Copy and print Move and print Copy, LMF lock, and print LMF Promote and print

Specify "From" Data Set below, then press Enter key From ISPF Library: Project . . . UGOPEXX Group . . . . CURSO Type . . . . PRUEBA Member . . . (--- Options C, CP, L, and LP only ----) . . . . . . (Blank or pattern for member list, "*" for all members)

. . .

From Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Data Set Password . . (If password protected)

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 99 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Tambin se puede realizar una copia selectiva, a travs de una mscara, de los miembros que se quieren copiar.
Menu RefList Utilities Help -----------------------------------------------------------------------------Move/Copy Utility Option ===> C C M L P Copy data set or member(s) Move data set or member(s) Copy and LMF lock member(s) LMF Promote data set or member(s) CP MP LP PP Copy and print Move and print Copy, LMF lock, and print LMF Promote and print

Specify "From" Data Set below, then press Enter key From ISPF Library: Project . . . UGOPEXX Group . . . . CURSO Type . . . . PRUEBA Member . . . PJE* (--- Options C, CP, L, and LP only ----) . . . . . . (Blank or pattern for member list, "*" for all members)

. . .

From Other Partitioned or Sequential Data Set: Data Set Name . . . Volume Serial . . . (If not cataloged) Data Set Password . . (If password protected)

donde se puede observar que se desean copiar, en principio, slo los miembros que empiecen por PJE.
Menu Functions Utilities Help -----------------------------------------------------------------------------COPY UGOPEXX.CURSO.PRUEBA TO UGOPEXX.CURSO.COBOL Row 00001 of 00003 Command ===> S * Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID _ PJE10E11 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX _ PJE30E15 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

En este caso, se proporciona una lista de los miembros que cumplen la condicin de la mscara. Se pueden seleccionar los miembros a copiar de dos formas: Tecleando una letra S a la izquierda del nombre del miembro, si no se quieren copiar todos.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 100 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Tecleando la serie S * en la lnea de comando, si se quieren seleccionar todos los miembros. Una vez realizado la operacin, despus de haber indicado en la pantalla correspondiente la librera de destino, se presenta un pantalla indicando, para cada miembro, el resultado de la accin.
Menu Functions Utilities Help -----------------------------------------------------------------------------COPY UGOPEXX.CURSO.PRUEBA TO UGOPEXX.CURSO.COBOL Row 00001 of 00003 Command ===> Scroll ===> PAGE Name Prompt VV MM Created Changed Size Init Mod ID _ PJE10E11 *REPL 01.02 99/10/26 99/10/26 12:25 356 352 114 UGOPEXX _ PJE10E22 *COPIED 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX _ PJE30E15 *REPL 01.00 99/10/26 99/10/26 10:39 352 352 0 UGOPEXX **End**

LISTA DE DATA SET La opcin 4 del submen de utilidades permite visualizar y mantener los data set catalogados del sistema. Las dos posibilidades que ofrece son: Informacin y mantenimiento (borrar, renombrar, etc.) de data set, es la opcin blanco de la pantalla siguiente. Informacin sobre el espacio del VTOC (Volume Table Of Contents), es la opcin V de la pantalla siguiente.
Menu RefList RefMode Utilities Help -----------------------------------------------------------------------------Data Set List Utility Option ===> blank Display data set list V Display VTOC information Enter one or both of the parameters below: Dsname Level . . . UGO* Volume serial . . Data set list options Initial View . . . 1 1. 2. 3. 4. Volume Space Attrib Total Enter "/" to select option / Confirm Data Set Delete / Confirm Member Delete P Print data set list PV Print VTOC information

When the data set list is displayed, enter either: "/" on the data set list command field for the command prompt pop-up, an ISPF line command, the name of a TSO command, CLIST, or REXX exec, or "=" to execute the previous command.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 101 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

En esta pantalla se pueden observar tres campos importantes para solicitar informacin: Dsname Level: indica la mscara de los data set que se desean listar. Esta mscara puede utilizar el caracter * para indicar un nmero cualquiera de caracteres. Se puede poner por delante o por detrs de otros caracteres de la mscara. Si se pone por detrs, la lista se resuelve con bastante facilidad. Si se pone por delante, el sistema puede tardar mucho tiempo en obtener y visualizar la lista. Este valor est relacionado con la opcin blanco, con la opcin V se ignora. Volume serial: indica el cdigo del volumen que se desea consultar. Con la opcin blanco slo seleccionar aquellos data set que cumplan las condiciones de la mscara, si se ha especificado, y que estn en el volumen indicado. Con la opcin V dar informacin sobre el VTOC de ese volumen. Initial View: identifica la informacin que se desea obtener en la lista de data set, sobre: el volumen donde estn almacenados los data set (1), el espacio que ocupan (2), los atributos (3) o toda la informacin anterior (4).

Informacin sobre data set Una vez indicada la mscara en el campo Dsname Level y, opcionalmente, el volumen, se puede obtener la informacin sobre los data set de dos formas: Indicando la informacin concreta que se quiere ver en el campo Initial View y devolviendo esta pantalla despus de consultada, con PF3. Empezando siempre con la opcin de volumen (1) del campo mencionado y usando la tecla PF11 para ir recorriendo sucesivamente la informacin de todas las opciones. Es la forma ms usual y cmoda. En todas las pantallas hay dos columnas comunes: comando y nombre de data set. En la columna de comando se puede teclear una letra para ejecutar un comando contra ese data set (la mayora se han visto ya): B V E D R I S F Visualizar, sin modificar Visualizar, con posibilidad de modificar Editar Borrar Renombrar Informacin completa Informacin corta Liberar espacio sobrante

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 102 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Menu Options View Utilities Compilers Help -----------------------------------------------------------------------------DSLIST - Data Sets Matching UGO* Row 1 of 43 Command ===> Scroll ===> PAGE Command - Enter "/" to select action Message Volume -----------------------------------------------------------------------------UGOPEXX UGOPEXX.CURSO.COBOL UGOPEXX.CURSO.FICHEROS.PRUEBA UGOPEXX.CURSO.PRUEBA UGOPEXX.ISPF.ISPPROF UGOPE01 UGOPE01.ISPF.ISPPROF UGOPE01.JCL.CNTL UGOPE01.JCL.DB2 UGOPE02 UGOPE02.ISPF.ISPPROF UGOPE02.JCL.CARLOS1 UGOPE03 UGOPE03.BIEEEN.PDS UGOPE03.ISPF.ISPPROF UGOPE03.JCL.CNTL UGOPE03.JCL2.SEC *ALIAS GDK2AC GDK2AC GDK2AC GDK2AC *ALIAS GD2283 GDK2AB GDK2AA *ALIAS GD2283 GDK2AB *ALIAS GDK2AC GD2283 GDK2AC GDK2AC

En esta pantalla se proporciona nicamente informacin sobre el volumen en que est almacenado cada data set. Tambin incluye una columna de mensaje, para informar sobre la ltima operacin realizada contra un data set.
Menu Options View Utilities Compilers Help -----------------------------------------------------------------------------DSLIST - Data Sets Matching UGO* Row 1 of 43 Command ===> Scroll ===> PAGE Command - Enter "/" to select action Tracks %Used XT Device -----------------------------------------------------------------------------UGOPEXX UGOPEXX.CURSO.COBOL UGOPEXX.CURSO.FICHEROS.PRUEBA UGOPEXX.CURSO.PRUEBA UGOPEXX.ISPF.ISPPROF UGOPE01 UGOPE01.ISPF.ISPPROF UGOPE01.JCL.CNTL UGOPE01.JCL.DB2 UGOPE02 UGOPE02.ISPF.ISPPROF UGOPE02.JCL.CARLOS1 UGOPE03 UGOPE03.BIEEEN.PDS UGOPE03.ISPF.ISPPROF UGOPE03.JCL.CNTL UGOPE03.JCL2.SEC 7 1 5 2 3 15 21 3 60 15 4 15 15 100 0 60 100 100 73 9 100 73 6 100 6 6 3 1 1 1 2 1 1 2 1 1 4 1 1 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390 3390

En esta pantalla ser proporciona informacin sobre el espacio (pistas) asignadas, el tanto por ciento ocupado, el nmero de extensiones utilizado y el tipo de dispositivo en el que est el data set.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 103 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Menu Options View Utilities Compilers Help -----------------------------------------------------------------------------DSLIST - Data Sets Matching UGO* Row 1 of 43 Command ===> Scroll ===> PAGE Command - Enter "/" to select action Dsorg Recfm Lrecl Blksz ------------------------------------------------------------------------------UGOPEXX UGOPEXX.CURSO.COBOL PO FB 80 24000 UGOPEXX.CURSO.FICHEROS.PRUEBA PS FB 110 22000 UGOPEXX.CURSO.PRUEBA PO FB 80 24000 UGOPEXX.ISPF.ISPPROF PO FB 80 9040 UGOPE01 UGOPE01.ISPF.ISPPROF PO FB 80 23440 UGOPE01.JCL.CNTL PO FB 80 27920 UGOPE01.JCL.DB2 PO FB 80 27920 UGOPE02 UGOPE02.ISPF.ISPPROF PO FB 80 23440 UGOPE02.JCL.CARLOS1 PO FB 80 27920 UGOPE03 UGOPE03.BIEEEN.PDS PO FB 80 27920 UGOPE03.ISPF.ISPPROF PO FB 80 9040 UGOPE03.JCL.CNTL PO FB 80 27920 UGOPE03.JCL2.SEC PO FB 80 27920

En esta pantalla se proporciona informacin sobre la organizacin del data set (PS para librera, PO para fichero secuencial), el tipo de registro, la longitud del registro lgico y la del bloque o registro fsico.

Menu Options View Utilities Compilers Help -----------------------------------------------------------------------------DSLIST - Data Sets Matching UGO* Row 1 of 43 Command ===> Scroll ===> PAGE Command - Enter "/" to select action Message Volume Tracks % XT Device Dsorg Recfm Lrecl Blksz Created Expires Referred ------------------------------------------------------------------------------UGOPEXX *ALIAS ------------------------------------------------------------------------------UGOPEXX.CURSO.COBOL GDK2AC 7 100 3 3390 PO FB 80 24000 1999/10/26 ***None*** 1999/10/26 ------------------------------------------------------------------------------UGOPEXX.CURSO.FICHEROS.PRUEBA GDK2AC 1 0 1 3390 PS FB 110 22000 1999/10/26 ***None*** 1999/10/26 ------------------------------------------------------------------------------UGOPEXX.CURSO.PRUEBA GDK2AC 5 60 1 3390 PO FB 80 24000 1999/10/26 ***None*** 1999/10/26 ------------------------------------------------------------------------------UGOPEXX.ISPF.ISPPROF GDK2AC 2 100 1 3390 PO FB 80 9040 1999/10/26 ***None*** 1999/10/26 ------------------------------------------------------------------------------UGOPE01 *ALIAS

En esta pantalla se recoge la informacin de las otras tres pantallas. Como no entra en una lnea, se utilizan dos lneas para cada data set: en la primera se incluye la informacin sobre el volumen (1), en la segunda se aporta la informacin del espacio (2) y los atributos (3), adems de indicar la fecha de creacin, ltima modificacin y expiracin.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 104 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Informacin del VTOC En el VTOC se recoge toda la informacin referente a los data set almacenados en un volumen.
Menu RefList RefMode Utilities Help -----------------------------------------------------------------------------Data Set List Utility Option ===> V blank Display data set list V Display VTOC information Enter one or both of the parameters below: Dsname Level . . . Volume serial . . GDK2AC Data set list options Initial View . . . 1 1. 2. 3. 4. Volume Space Attrib Total Enter "/" to select option / Confirm Data Set Delete / Confirm Member Delete P Print data set list PV Print VTOC information

When the data set list is displayed, enter either: "/" on the data set list command field for the command prompt pop-up, an ISPF line command, the name of a TSO command, CLIST, or REXX exec, or "=" to execute the previous command.

Para solicitar informacin sobre la ocupacin de espacio de un volumen, se indica el cdigo del volumen en el campo Volume serial y la letra V en la lnea de comando.
Menu RefList RefMode Utilities Help +-------------------------- VTOC Summary Information --------------------------+ | Volume . : GDK2AC | | Command ===> | | | | Unit . . : 3390 | | | | Volume Data VTOC Data Free Space Tracks Cyls | | Tracks . : 50,085 Tracks . : 50 Size . . : 30,783 1,971 | | %Used . : 38 %Used . . : 32 Largest . : 23,025 1,535 | | Trks/Cyls: 15 Free DSCBS: 1,722 | | Free Extents . : 250 | | | | | +------------------------------------------------------------------------------+ 3. Attrib / Confirm Member Delete 4. Total When the data set list is displayed, enter either: "/" on the data set list command field for the command prompt pop-up, an ISPF line command, the name of a TSO command, CLIST, or REXX exec, or "=" to execute the previous command.

donde se pueden observar tres columnas de datos: Volume data: indica las pistas totales, el tanto por ciento utilizado y las pistas por cilindro del dispositivo (unidad 3390).

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 105 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

VTOC Data: indica el espacio en pistas, el tanto por ciento usado y los bloques disponibles del VTOC. Free Space: indica el espacio total y el ms largo en pistas y cilindros, adems del nmero de extensiones disponibles. Este es el dato ms importante, porque sirve para saber el tamao mximo de los data set que asignado al usuario a medida.

CAPITULO 1: ENTORNO TSO-ISPF / MVS (OS/390)

Pgina 106 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

MODULO I
FUNDAMENTOS DE PROGRAMACION

CAPITULO 2: LENGUAJE JCL

REALIZADO POR GESFOR CHILE S.A. ENERO A FEBRERO DE 2003 SANTIAGO - CHILE

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

1. CARACTERISTICAS DEL JCL


INTRODUCCION Diagrama de la ejecucin de un trabajo

TRABAJOS

LEER INTERPRETAR BUSCAR FICHEROS

TRABAJOS

COLAS DE TRABAJO

(1)

JOB
contabilidad programador CLASS PRTY TYPRUN MSGCLASS MSGLEVEL
(1) SELECCIONAR UN TRABAJO

(2)

SELECCIONAR UN PASO

(2)

EXEC
nombre de paso

(3)

BUSCAR ESPACIO F. SALIDA ASIGNAR FICHEROS CARGAR PROGRAMAS

(3)

DD
DSNAME DCB UNIT VOLUME SPACE DISP

(4)

EJECUTAR PROGRAMAS

SALIDA DEL PROGRAMA: - IMPRESA (SPOOL) - FICHEROS (5) GUARDAR O BORRAR FICHEROS

(4)

EXEC
PGM=nombre-programa

(5)

DD
DISP=....

SI

MAS PASOS

NO
BORRAR INFORMACION DEL TRABAJO

CAPITULO 2: LENGUAJE JCL

Pgina 108 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

El Lenguaje de Control de Trabajos (Job Control Languaje ,JCL) es una de las formas de comunicacin con el sistema operativo del ordenador. El sistema operativo est constituido por un conjunto de programas especializados. El objetivo de un sistema operativo es conseguir una utilizacin los ms eficiente posible del ordenador y de los dispositivos asociados a l. Adems, el JCL es el nico sistema que permite la ejecucin de los programas de aplicacin de usuario. Cada programa ser el paso de una cadena de aplicacin y habr que indicar los ficheros que utiliza. TIPOS DE SENTENCIAS

El JCL est compuesto por sentencias identificadas por un nombre. Adems, cada sentencia puede incorporar una serie de parmetros para su correcta ejecucin.

JOB Identifica un trabajo para el sistema, es la primera sentencia y slo puede haber una. EXEC Identifica un paso de trabajo a ejecutar, habr una por procedimiento y puede haber un mximo de 256. DD Identifica un grupo de datos (data set), que va a manejar un programa o procedimiento y, en general, puede haber un mximo de 256, aunque la prctica habitual y las restricciones de los lenguajes reducen este nmero considerablemente. PROC Propsito: La sentencia de procedimiento (PROC) debe marcar el comienzo de un procedimiento en lnea y, opcionalmente, puede marcar el comienzo de un procedimiento catalogado. Para cada procedimiento, la sentencia PROC puede asignar valores por omisin a parmetros simblicos, si se codifican, en el procedimiento. Sintaxis: Para un procedimiento catalogado: //[nombre] PROC [parmetro [comentarios]] //[nombre] PROC Para un procedimiento en lnea: //nombre PROC [parmetro [comentarios]] //nombre PROC cada programa o

CAPITULO 2: LENGUAJE JCL

Pgina 109 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

La sentencia PROC consta de los caracteres // en las columnas 1 y 2 y de cuatros campos: Nombre, operacin (PROC), parmetro, y comentarios. Parmetros Mltiples: Si se codifica ms de un parmetro, separar los parmetros por comas. Por ejemplo, //P1 PROC PARM1=OLD,PARM2=222001. Caracteres Especiales: Si un parmetro contiene caracteres especiales, encerrar el valor entre apstrofes. Los apstrofes no se consideran parte del valor. Por ejemplo, //P2 PROC PARM3='3400-6'. Codificar cada apstrofe que sea parte del valor como dos apstrofes consecutivos. Por ejemplo, //P3 PROC PARM4='O''DAY'. Continuacin en otra Sentencia: Se debe terminar cada sentencia con una coma despus de un parmetro completo. Por ejemplo: //P4 PROC PARM5=OLD,PARM6='SYS1.LINKLIB(P40)', // PARM7=SYSDA,PARM8='(CYL,(10,1))' Campo Nombre El nombre se requiere en la sentencia PROC de un procedimiento en lnea y es opcional en una sentencia PROC de un procedimiento catalogado. Se debe codificarlo como sigue: Cada nombre debe ser nico por trabajo. El nombre debe comenzar en la columna 3. El nombre consta de 1 a 8 caracteres alfanumricos o nacionales ($, #, @). El primer caracter debe ser alfabtico o nacional ($, #, @). El nombre debe estar seguido de por al menos un blanco. Si el nombre no se codifica, la columna 3 debe estar en blanco. Campo Operacin El campo operacin consiste de los caracteres PROC y deben estar precedidos y seguidos de por lo menos un blanco. Puede comenzar en cualquier columna. Campo Parmetro Los parmetros de una sentencia PROC asignan valores por omisin a parmetros simblicos de las sentencias del procedimiento. Una sentencia PROC de un procedimiento en lnea requiere parmetros slo si el procedimiento contiene parmetros simblicos. Si se codifica, el campo parmetro debe ser precedido y seguido de blancos.

CAPITULO 2: LENGUAJE JCL

Pgina 110 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Campo Comentarios El campo comentarios sigue al campo parmetro despus de al menos un blanco. No se deben codificar comentarios a menos que se codifiquen parmetros. Cambios Para cambiar un valor de parmetro por omisin de una sentencia PROC, codificar el mismo parmetro en la sentencia EXEC que llama al procedimiento. Ubicacin en el JCL La sentencia PROC debe comenzar todos los procedimientos en lnea y puede comenzar un procedimiento catalogado. Un procedimiento en lnea debe aparecer antes que la sentencia EXEC que lo llama. Los procedimientos catalogados residen en una biblioteca, generalmente la SYS1.PROCLIB. Ejemplos de la Sentencia PROC //DEF PROC ESTADO=OLD,LIBRERIA=SYSLIB,NUMERO=777777 //NOTIFY EXEC PGM=ACUM //DD1 DD DSNAME=MGMT,DISP=(&ESTADO,KEEP),UNIT=3400-6, // VOL=SER=888888 //DD2 DD DSNAME=&LIBRERIA,DISP=(OLD,KEEP),UNIT=3350, // VOL=SER=&NUMERO Se definen tres parmetros simblicos en este procedimiento catalogado: &ESTADO, &LIBRERIA, y &NUMERO. Se asignan valores a los parmetros simblicos en la sentencia PROC. Estos valores se usan cuando el procedimiento es llamado y no se asignan valores a los parmetros simblicos en la sentencia EXEC llamadora. //CARDS PROC Esta sentencia PROC se puede usar para marcar procedimiento en lnea llamado CARDS. el comienzo de un

CAPITULO 2: LENGUAJE JCL

Pgina 111 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

PEND Indica el final de un procedimiento in-stream. Ejemplos de la Sentencia PEND //PROCEND1 PEND ESTA SENTENCIA SE REQUIRE PARA PROCEDIMINTOS EN LINEA Esta sentencia PEND tiene un comentario. //PEND Esta sentencia PEND tiene slo // y el campo comentarios en blanco. //* Identifica una lnea de comentarios (lnea no ejecutable). Sirve para documentar internamente el JCL. Puede haber tantas como se desee y pueden estar en cualquier lugar, excepto en la primara lnea del job. // Indica el final del job (sentencia nula). No es necesario indicar esta sentencia y se suele utilizar en pruebas para realizar cortes temporales en una cadena, que permite la ejecucin paso a paso o de un bloque de pasos determinados, sin necesidad de ejecutar el resto, es decir, de llegar al final del job. Ejemplo de la Sentencia Nula //MYJOB JOB ,'C BROWN' //STEP1 EXEC PROC=FIELD //STEP2 EXEC PGM=XTRA //DD1 DD UNIT=3400-5 //DD2 DD * datos /* // La sentencia nula indica el fin del trabajo MYJOB. /* No es una sentencia propiamente dicha, sino que identifica el final de un fichero interno (ver sentencia DD *, ms adelante). SINTAXIS DE LAS SENTENCIAS --------------- columnas ---------------

CAPITULO 2: LENGUAJE JCL

Pgina 112 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Sent. JOB EXEC DD PROC PEND

1-2 // // // // // // //* /*

3 nombre nombre nombre nombre nombre

12 JOB EXEC DD PROC PEND

16-72 parmetros y comentarios parmetros y comentarios parmetros y comentarios parmetros y comentarios comentarios

comentarios

CAPITULO 2: LENGUAJE JCL

Pgina 113 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Notas Entre las dos barras, que identifican una lnea de sentencia JCL, y el nombre no puede haber ningn blanco. Entre el nombre y la sentencia y entre la sentencia y sus parmetros debe haber al menos un blanco. Entre los parmetros dentro de una sentencia no puede haber blancos. Si los hubiera, el resto de la lnea se considera como comentarios. Una lnea de continuacin no puede empezar en la columna 3, ni los parmetros pueden empezar despus de la columna 16. COMPONENTES DE LAS SENTENCIAS

Nombre Identifica a la sentencia: al trabajo, a un paso o a un grupo de datos. Tiene un mximo de 8 caracteres, el primer carcter debe ser alfabtico (se consideran alfabticos los siguientes caracteres: $, # y @) y los siguientes pueden ser letras o nmeros. Nota: En algunas versiones se acepta la letra para el nombre de job, pero se recomienda no utilizarla.

Sentencia Indica el nombre de la sentencia de control. Debe de estar separado del nombre por, al menos, un blanco. Parmetros Pueden ser de dos tipos: Posicinales El significado del prametro depende de la posicin que ocupe. Cuando no se codifican, se debe indicar su ausencia poniendo una coma, para indicar su ausencia. Nota: En las primeras versiones esto era obligatorio. En algunas versiones es opcional. Se recomienda seguir usando el criterio inicial.

CAPITULO 2: LENGUAJE JCL

Pgina 114 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

De palabra clave El significado se determina a partir de una palabra clave que identifica al parmetro. Pueden estar en cualquier orden y se pueden omitir porque, por lo general, tienen valores por defecto. A su vez, el parmetro puede estar compuesto de una serie de subparmetros que pueden ser posicinales o de palabra clave. Los subparmetros debern ir encerrados, en muchos casos, entre parntesis. Cuando un parmetro o subparmetro contiene caracteres especiales se debe escribir entre comillas. Comentarios Sirven para documentar las fichas de control. Deben de estar separados del ltimo parmetro por, al menos, un blanco. Su utilizacin no es general. CODIFICACION DE LAS SENTENCIAS

Puesto que el primer soporte que se utiliz para escribir JCL fueron fichas perforadas, las sentencias de control se codifican en lneas de 80 columnas y todava se denominan fichas o tarjetas. Cada ficha se divide en tres zonas: Columnas 1-2 Todas las fichas comienzan con dos barras (//). La nica excepcin es la ficha que identifica el final de un fichero interno de JCL, que contiene barra-asterisco (/*) o delimitadores especiales (ver apartado DLM de la sentencia DD, ms adelante). Columnas 3-72 Su contenido ser el nombre, la sentencia y los parmetros necesarios para poder ejecutar el trabajo. Estos campos deben estar separados entre s por al menos un blanco. Si una ficha no fuese suficiente para codificar la sentencia de control completamente, situacin bastante frecuente: se interrumpe la codificacin incluyendo una coma, como mximo en la columna 72. Si se deja un blanco despus de la coma, el resto de la lnea se considera como comentario. En la ficha siguiente se codifican barras (//) en las columnas 1-2 y los parmetros de continuacin deben empezar como mnimo en la columna 4 y como mximo en la columna 12. La columna 3 no se debe utilizar porque el sistema entendera que comienza otra ficha con otro nombre.

CAPITULO 2: LENGUAJE JCL

Pgina 115 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Columnas 73-80 Contiene la numeracin de las fichas. En un primer momento serva para la clasificacin de las fichas perforadas, en caso de que se descolocasen. Actualmente no tiene ninguna utilidad.

CAPITULO 2: LENGUAJE JCL

Pgina 116 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

2. SENTENCIA JOB
INTRODUCCION

Indica el principio de un trabajo (job) y, en caso de no existir en la corriente de entrada sentencias de control nulas, el final de las fichas de control del trabajo anterior. Esta ficha es nica para el trabajo y debe estar en la primera lnea. El nombre del trabajo debe empezar por una carcter alfabtico, en la columna 3, y puede tener hasta 8 caracteres alfanumricos. En algunas instalaciones este nombre est normalizado (por ejemplo, los jobs de desarrollo tienen que empezar por el identificador del usuario que lo ejecuta). La palabra JOB deber comenzar en la columna 12. El nombre del trabajo y la palabra clave JOB son obligatorios. Nota: En algunas versiones, la palabra JOB no tiene que empezar obligatoriamente en la columna 12.

PARAMETROS POSICIONALES

Informacin de contabilidad Especifica toda la informacin de contabilidad exigida por la instalacin. Debe ser el primer parmetro y comenzar en la columna 16. Si hay ms de un subparmetro deben codificarse entre parntesis. Si dentro de los subparmetros existe algn carcter especial, debe encerrarse ese subparmetro o toda la informacin entre apstrofos o comillas (todo lo que est as encerrado se considera como un solo subparmetro). Como excepcin a los caracteres especiales est el carcter guin (-), que no se considera especial. Este campo puede tener un mximo de 142 caracteres. En algunas instalaciones, este parmetro no se codifica, al no llevar control de contabilidad, por lo que se debe indicar una coma (parmetro posicional vaco). Nota: En algunas versiones, no hace falta indicar el carcter coma (,) cuando no se codifica este parmetro. Ejemplos de la Sentencia JOB //DPRJE10A JOB SUNION //ALPHA JOB 843,LINLEE,CLASS=F,MSGCLASS=A,MSGLEVEL=(1,1)

CAPITULO 2: LENGUAJE JCL

Pgina 117 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

//LOS

JOB ,'J M BUSKIRK',TIME=(4,30),MSGCLASS=H,MSGLEVEL=(2,0)

//TRY8 JOB //RUN1 JOB 'D8306P,D83,B1062J12,S=C','JUDY PERLMAN',MSGCLASS=R, // MSGLEVEL=(1,1),CLASS=3,NOTIFY=D83JCS1,COND=(8,LT) Nombre de programador Debe ir a continuacin de la informacin de contabilidad e identifica al responsable del trabajo. Hay instalaciones donde este parmetro no tiene contenido, pero se incluye una coma para indicar parmetro posicional vaco. Puede tener una longitud mxima de 20 caracteres. Si tiene caracteres especiales, excepto el guin (-) y el punto (.), debe ir encerrado entre apstrofos o comillas y, si alguno de aquellos caracteres es apstrofo o comilla, deben ir duplicadas. Nota: En algunas versiones, no hace falta indicar el carcter coma (,) cuando no se codifica este parmetro.

Ejemplo //DPRJE10A JOB SUNION,F.R.M PARAMETROS DE PALABRA CLAVE

CLASS Asigna una clase de entrada al trabajo. El JES lo colocar en la cola de entrada de trabajos adecuada

CLASS=clase-ejecucin
Donde las clases van especificadas por un carcter alfanumrico (A-Z,0-9). Cada instalacin define y asigna las clases a distintas actividades. Si no se indica, generalmente, por defecto asume A. Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D

CAPITULO 2: LENGUAJE JCL

Pgina 118 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

MSGLEVEL

Indica los tipos de mensajes y de sentencias de control, relacionados con el trabajo, que se quiere imprimir en el sistema.

MSGLEVEL=(sentencias,mensajes)

Sentencias 0 Slo se imprime la sentencia JOB. 1 Se imprimen todas las sentencias fuente ms las que resultan de expandir los procedimientos catalogados en los pasos, si los hubiera. 2 Slo se imprimen las sentencias fuente. Mensajes 0 Se imprimen los mensajes de asignacin/terminacin slo cuando el trabajo termina anormalmente (con error). 1 Se imprimen siempre los mensajes de asignacin/terminacin. Si se omite este parmetro, se toman por defecto los valores que se hayan especificado por la instalacin (generalmente, (1,1)). Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1)

MSGCLASS Especifica la clase de salida para la impresin de la informacin solicitada por el parmetro MSGLEVEL (sentencias y/o mensajes).

MSGCLASS=clase-salida

CAPITULO 2: LENGUAJE JCL

Pgina 119 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Donde la clase de salida se especifica con un carcter alfanumrico (A-Z,0-9) y cada instalacin define y asigna las distintas clases de salida que precise. Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1), // MSGCLASS=S Por defecto se asume la clase asignada en generacin al dispositivo de entrada por el que se leen las sentencias de control. NOTIFY

Provoca el envo de un mensaje de sistema, cuando termina el trabajo, al usuario de TSO que se indica.

NOTIFY=identificador-usuario

Donde el identificador del usuario tiene de 1 a 7 caracteres alfabticos o numricos (no se aceptan especiales), siendo el primero una letra. Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1), // MSGCLASS=S,NOTIFY=DPRJE10 RESTART

Indica el paso desde el que se desea comenzar la ejecucin del trabajo, en el caso de un rearranque diferido.

RESTART={* | nombre-paso}
Donde el signo asterisco (*) indica que se debe comenzar desde el primer paso del trabajo.

CAPITULO 2: LENGUAJE JCL

Pgina 120 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

TYPRUN

Indica la forma en la que el sistema va a considerar el trabajo, con vistas a su ejecucin.

TYPRUN={SCAN | HOLD}

Cuando no se especifica este parmetro, el sistema entiende que el trabajo es de ejecucin inmediata. Se pueden indicar otras dos opciones, aunque slo para pruebas y situaciones excepcionales, SCAN Solicita que el sistema slo compruebe los errores sintcticos que haya en las fichas de control del trabajo, pero que no lo ejecute. HOLD El trabajo se coloca en la cola indicada por la clase de entrada, pero no se puede ejecutar hasta que el operador lo libere.

COND

Cuando termina un paso se enva un cdigo de retorno al planificador de trabajos. Hay algunos valores preestablecidos que permiten saber en que condicin ha finalizado el paso: 0 4 8 12 16 correcto aviso error recuperable error grave error irrecuperable

CAPITULO 2: LENGUAJE JCL

Pgina 121 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

El parmetro COND especifica las condiciones con las que los siguientes pasos de un trabajo se ejecutarn o no. Si se cumplen las condiciones fijadas no se ejecutan los siguientes pasos al que ha devuelto el cdigo y el trabajo se da por terminado.

COND=((cdigo,operador),(cdigo,operador),.....)

Cdigo Debe ser un nmero decimal del 0 al 4095. Es el valor con el que se va a comparar el cdigo de retorno de los pasos ejecutados. Operador Indica el tipo de operacin lgica a realizar con el cdigo de retorno devuelto por los pasos ejecutados: GT mayor que GE mayor o igual que LT menor que LE menor o igual que EQ igual a NE no igual a Se pueden codificar hasta ocho condiciones distintas. Si slo se especifica una no hace falta codificar los parntesis. Si se omite este parmetro no se lleva a cabo ninguna comprobacin del cdigo de retorno y, por tanto, se ejecutarn todos los pasos del trabajo. IF

Facilita la ejecucin condicionada, al eliminar el IF inverso que supone el parmetro COND, realizando un IF como cualquier lenguaje de programacin.

IF (condicin) THEN paso(s) ELSE paso(s) ENDIF

CAPITULO 2: LENGUAJE JCL

Pgina 122 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Condicin Es una expresin que se va a evaluar. Si es verdadera se ejecuta la parte del trabajo despus de la palabra THEN, si es falsa se hace la parte despus de la palabra ELSE. Si se especifica un nombre de paso como parte de la condicin, primero se determina si el paso fue ejecutado. Si no ha sido ejecutado, el resulta- do de la condicin ser falso. Los operadores utilizados son los mismos que en el parmetro COND con algunas incorporaciones y la posibilidad de usar signos especiales, en lugar de letras: GT GE LT LE EQ NE NG NL > mayor que >= mayor o igual que < menor que <= menor o igual que = igual a = no igual a > no igual a < no igual a

Pudindose negar cualquiera de ellas con el operador NOT no igual a

Adems de la posibilidad de establecer condiciones complejas o mltiples a travs de los operadores lgicos AND & OR | AND OR

La forma general de codificar una condicin sera palabra-clave [operador cdigo-condicin] Donde la palabra clave puede tener uno de los siguientes valores reconocidos: [nombre-paso.]RC Indica que en la condicin se va a evaluar un cdigo de retorno. Si se omite el nombre del paso, RC se refiere al cdigo de retorno ms alto que se haya producido en el trabajo.

CAPITULO 2: LENGUAJE JCL

Pgina 123 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

[nombre-paso.]ABEND Indica que se compruebe una condicin ABEND. Si se omite el nombre del paso, ABEND se refiere a todos los pasos anteriores. [nombre-paso.]ABENDCC Indica que en la condicin se va a evaluar un cdigo de error del sistema (Sxxx) o un cdigo de error de usuario (Uxxx), donde xxx ser un valor alfanumrico de tres posiciones, para el caso de error de sistema, o de cuatro posiciones numricas, para el caso de error de usuario. [nombre-paso.]RUN Indica que en la condicin compruebe si un paso se ha ejecutado. Los valores de comparacin son: TRUE (para preguntar si se ha ejecutado) o FALSE (para preguntar si no se ha ejecutado) TIME

Permite fijar el tiempo de utilizacin de la CPU para un trabajo. Si se excede el tiempo establecido se cancela la ejecucin del trabajo.

TIME=([minutos][,segundos])

Minutos Es el nmero de minutos de utilizacin (de 1 a 1440). Segundos Es el nmero de segundos de utilizacin (de 0 a 59).

CAPITULO 2: LENGUAJE JCL

Pgina 124 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

REGION

Indica el nmero de posiciones contiguas de memoria necesarias para ejecutar el trabajo.

REGION={nK | nM}

Donde n es un nmero par que indica el nmero de kilobytes (1024 octetos) o un valor de mega bites (entre 1 y 16) que se desean reservar para este trabajo. PRTY

Especifica la prioridad de SELECCION que se le asigna al trabajo, dentro de una clase de entrada determinada.

PRTY=prioridad

Donde la prioridad puede variar de 0 a 15, siendo mayor la prioridad cuanto mayor sea el valor.

CAPITULO 2: LENGUAJE JCL

Pgina 125 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

3. SENTENCIA EXEC
INTRODUCCION

La sentencia de control EXEC identifica un paso de trabajo dentro del JOB. Indica el programa que se quiere ejecutar o un procedimiento que se debe llamar o expandir. La ficha EXEC puede ejecutar varios tipos de programas o procedimientos, que son: PROGRAMAS

Utilidades Son programas desarrollados por empresas de software (o por el fabricante de hardware) que realizan determinados procesos habituales en un sistema informtico: creacin y mantenimiento de ficheros, clasificacin de ficheros, etc. Son independientes del sistema operativo y su inclusin en el sistema es opcional. De aplicacin o usuario Son los programas a medida que desarrolla cada instalacin para cubrir las necesidades de sus usuarios. PROCEDIMIENTOS

Un procedimiento es una serie de fichas de JCL que cumplen determinadas funciones generales y, por tanto, se pueden llamar desde cualquier parte de un trabajo. Dependiendo de la situacin fsica del procedimiento, pueden ser: Internos Son partes del propio trabajo que tienen un nombre de procedimiento y se pueden llamar desde distintos puntos del JOB. Se llaman in-stream porque estn dentro del propio trabajo (estn fsicamente en el JOB) Catalogados Son procedimientos externos que se llaman cuando se necesitan. Suelen estar incluidos en una librera de procedimientos del sistema: SYS1.PROCLIB o en las que establezca el departamento de Sistemas.

CAPITULO 2: LENGUAJE JCL

Pgina 126 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Estos procedimientos se llaman desde cualquier trabajo y se expanden antes de ejecutar el JOB. Los nicos campos obligatorios son el cdigo de sentencia (EXEC), el parmetro indicando si es un programa o un procedimiento (excepto un procedimiento catalogado) y el nombre de programa o procedimiento que se quiere ejecutar. El campo nombre de paso es opcional, pero se debe codificar si se quiere hacer referencia a algo definido en ese paso de trabajo o si se quiere modificar algn operando de la ficha EXEC, en el caso de ser un paso dentro de un procedimiento catalogado. Tambin en la ficha EXEC existen operndos posicinales, que indican si se hace referencia a un programa (PGM) o a un procedimiento (PROC). Slo podr llevar uno de estos parmetros a la vez. PARAMETROS POSICIONALES

PGM

Indica que la sentencia EXEC va a ejecutar un programa. El programa deber ser miembro de una libreras, que pueden ser del sistema, de usuario (o aplicacin) o temporal (de trabajo). Las libreras de usuario(*) tienen, generalmente, como tercer calificador la palabra LOAD, para indicar que son programas ejecutables.

PGM={programa | *.nombre-paso.nombre-DD | *.nombre-paso.nombre-paso-proc.nombre-DD}

Donde la primera posibilidad es la ms utilizada. El nombre del programa puede tener de 1 a 8 caracteres no, alfabticos o numricos (no se admite ningn caracter especial), el primero de los cuales debe ser alfabtico. Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1), // MSGCLASS=S,NOTIFY=DPRJE10 //PASO010 EXEC PGM=PBCON026

Para obtener ms informacin sobre libreras de programas de usuario, ver apartado Sentencias DD con nombres especiales del captulo Sentencia DD, ms adelante.
*)

CAPITULO 2: LENGUAJE JCL

Pgina 127 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Ejemplos de la Sentencia EXEC //STEP4 EXEC PGM=DREC,PARM='3018,NO' La sentencia EXEC llamada STEP4 invoca al programa llamado DREC y pasa el valor del parmetro PARM a DREC. // EXEC PGM=ENTRY,TIME=(2,30)

Esta sentencia EXEC, que no tiene nombrepaso, invoca al programa llamado ENTRY y especifica el tiempo mximo de uso del procesador para la ejecucin del paso. //FOR EXEC PROC=PROC489,ACCT=DB1528,RD.PSTEP2=RNC,DEV=3380

La sentencia EXEC llamada FOR invoca al procedimiento catalogado o en lnea llamado PROC489. El parmetro ACCT se refiere a todos los pasos del procedimiento. El parmetro RD se refiere slo al paso llamado PSTEP2. El parmetro DEV asigna el valor 3380 al parmetro simblico &DEV de una sentencia procedimiento. PROC

Mediante este parmetro se invoca a un procedimiento: in-stream para ejecutarlo o catalogado para que se expanda y ejecute.

[PROC=]nombre-proc

Donde el nombre de parmetro PROC es opcional, siempre que se haga referencia a un procedimiento catalogado. PARAMETROS DE PALABRA CLAVE

TIME

Todo lo que se indic para el parmetro TIME en la sentencia JOB es vlido aqu, pero a nivel del paso. Su codificacin es:

TIME[.nombre-paso-proc]=([minutos] [,segundos])

CAPITULO 2: LENGUAJE JCL

Pgina 128 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Si se codifica en una sentencia EXEC que llama a un procedimiento sin poner nombre de paso, el tiempo indicado es el mximo para la ejecucin de todo el procedimiento, ignorndose los parmetros TIME que pudieran llevar las sentencias EXEC internas del procedimiento. Si se codifica el parmetro TIME en la sentencia JOB y en las distintas EXEC, no habr prioridades entre unas y otras: cada una tiene validez en su entorno. Un paso que excede del tiempo indicado provoca la terminacin anormal de todo el trabajo. COND

Un programa ejecutado en un paso de trabajo finaliza dejando, en un campo del sistema, un valor determinado: el cdigo de retorno, STEP WAS EXECUTED - COND CODE nnnn y este valor puede ser revisado, bien desde la sentencia JOB (como se explic) o bien desde la sentencia EXEC.

CAPITULO 2: LENGUAJE JCL

Pgina 129 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

El parmetro COND especifica las condiciones bajo las que no se ejecutar el paso, dependiendo de los cdigos de retorno devueltos por uno o ms pasos anteriores.

COND[nombre-paso-proc]={[{cdigo,operador | cdigo,operador, nombre-paso.nombre-pasoproc] ....[,{EVEN | ONLY}])


Donde cdigo y operador tienen el mismo significado que en la sentencia JOB. El nombre de paso o nombre de paso dentro de un procedimiento indica el paso cuyo cdigo de retorno se quiere probar. Si no se especifica el nombre de paso (primer caso) se prueban todos los pasos anteriores. EVEN Indica que este paso se tiene que ejecutar aunque algn paso anterior haya terminado anormalmente, es decir, siempre. ONLY Indica que este paso se ejecutar slo si algn paso anterior ha terminado anormalmente. Si se codific el parmetro COND en la sentencia JOB se ignoran los parmetros COND que puedan aparecer en las sentencias EXEC. PARM

Sirve para pasar algn tipo de informacin al programa o procedimiento antes y para iniciar su ejecucin. Mediante este parmetro, pueden asignarse alternativas para el uso de programa.

PARM[nombre-paso-proc]=lista-parmetros

Donde la lista de parmetros es la informacin que se pasa al programa en ejecucin (como mximo 100 caracteres). Si es una sentencia EXEC de procedimiento y no se especifica nombre de paso se aplica slo al primero de los pasos del procedimiento y, adems, se ignorarn los posibles parmetros PARM que lleven los dems pasos del procedimiento. REGION

CAPITULO 2: LENGUAJE JCL

Pgina 130 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Tiene el mismo significado y funcionamiento que en la sentencia JOB, pero adems se puede hacer referencia a un paso de un procedimiento.

CAPITULO 2: LENGUAJE JCL

Pgina 131 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

4. SENTENCIA DD
INTRODUCCION

DD son las iniciales de DATA DEFINITION (definicin de datos). Permite referenciar los ficheros con los que se va a trabajar en cada paso del trabajo e indicarle al sistema su situacin y caractersticas: si se van a crear en el momento, el espacio que necesitaran en ese caso, el tipo de dispositivo, si el fichero ya exista, su organizacin, si puede ser utilizado por ms de un programa simultneamente, el nmero de serie del volumen, etc. Cada sentencia DD tiene un nombre, con un mximo de 8 caracteres, alfabticos o numricos (no admite ningn carcter especial), teniendo que ser el primero alfabtico, que sirve para enlazar con el nombre que se ha dado a ese fichero en el programa y con el nombre real (fsico) indicado en el parmetro DSN, dentro de la definicin del fichero, que se ver ms adelante. El nombre fsico de la DD puede estar formado por ms de un nombre (hasta un mximo de 5 y con un mximo de 8 caracteres cada uno) separados por un punto. Concatenar ficheros Consiste en codificar una sentencia DD por cada fichero que se necesite, colocndolas todas consecutivas y dndole el nombre del conjunto a la primera de ellas. El sistema asume como norma que todos los ficheros que se van definiendo sin nombre son prolongacin del que define la primera sentencia DD con nombre. Ejemplo //SYSIN DD DSN=......... // DD DSN=......... // DD DSN=......... //SYSOUT DD DSN=......... Ejemplos de la Sentencia DD y nombresdd //MYDS //A DD DSNAME=REPORT DD DSNAME=FILE

//INPUT //

DD DSNAME=FGLIOB,DISP=(OLD,PASS) DD DSNAME=GROUP2,DISP=SHR

En este ejemplo, dado que el nombredd falta para la segunda sentencia DD, el sistema concatena los archivos definidos en estas sentencias.

CAPITULO 2: LENGUAJE JCL

Pgina 132 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

//PAYROLL.DAY DD DSNAME=DESK,DISP=SHR En este ejemplo, si el paso PAYROLL de un procedimiento contiene una sentencia DD llamada DAY, la sentencia del ejemplo cambia parmetros de la sentencia DD DAY. Si el paso no contiene una sentencia DD llamada DAY, el sistema aade esta sentencia al paso PAYROLL del procedimiento por lo que dure este paso en el trabajo. //STEPSIX.DD4 DD DISPLAY=TEXT,DISP=(,PASS) // DD DSNAME=ART,DISP=SHR En este ejemplo, el segundo archivo es concatenado al primero, y ambos son agregados al paso STEPSIX. El nombredd se omite de la segunda sentencia a fin de concatenar el archivo ART al archivo TEXT. PARAMETROS POSICIONALES

Se van a ver siguiendo un orden lgico de utilizacin, es decir, los que estn ms relacionados entre s. Se tienen que codificar antes de cualquier parmetro de palabra clave, aunque, como se ver ms adelante, en algunos casos se consideran a su vez de palabra clave. asterisco (*) Indica que el fichero que define la sentencia DD va a continuacin, por eso se llama fichero interno de JOB. El fin de fichero estar indicado por los signos barra-asterisco (/*) o dos barras (//) en las columnas 1-2 o por el delimitador definido por el parmetro DLM (que se ver ms adelante). No puede aparecer dentro de un procedimiento. Si se necesita hay que aadirla en la llamada al procedimiento. Aunque se le puede dar cualquier nombre, lo ms habitual es verlo con el nombre SYSIN, que en COBOL se lee con la instruccin ACCEPT. Ejemplo //SYSIN DD * 1999-09-26 /* DATA

Tiene la misma utilidad que el parmetro asterisco (*), pero con la diferencia que no considera como fin de fichero las dos barras (//) en las columnas 1-2, se debe indicar

CAPITULO 2: LENGUAJE JCL

Pgina 133 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

necesariamente la ficha de final de fichero (/*). Por lo tanto, es til cuando entre los datos del fichero haya sentencias de control. Tiene la misma restriccin que la sentencia asterisco (*).

DLM

Sirve para definir un delimitador distinto del estndar, es decir, caracteres que no formen la combinacin barra-asterisco (/*). Si el delimitador contiene caracteres especiales tendr que ir entre apstrofos o comillas. No se consideran especiales los caracteres: dlar ($), arroba (@) y sostenido (#). Ejemplo //SYSIN DD *,DLM=FINAL 1999-09-26 FINAL DUMMY

Sirve para definir un fichero ficticio. Se simular la lectura o escritura de un conjunto de datos sin que el programa que los utilice termine anormalmente. Si hubiera varias sentencias DD concatenadas, si una de ellas est definida como DUMMY, todas las que vayan detrs sern consideradas no reales. para eliminar el efecto de una DUMMY previa. PARAMETROS DE PALABRA CLAVE

Aunque el JCL no indica ninguna norma a la hora de incluir los distintos parmetros de definicin de unos ficheros, en este manual se utilizar siempre un orden concreto de asignacin:

//ddname DD DSN=nombre-fichero,DISP=..., // UNIT=unidad,VOL=SER=volumen, // DCB=(..........), // SPACE=(......)

Aunque, como se ver ms adelante, no todos los ficheros necesitan todos los parmetros. Por ejemplo, un fichero de entrada (que ya debe existir) no necesitar informacin DCB, un fichero en cinta no necesitar SPACE, etc.

CAPITULO 2: LENGUAJE JCL

Pgina 134 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ddname Se llama nombre lgico o nombre de enlace, porque es el nombre que se utiliza dentro del programa, independientemente del nombre fsico (dsname) al que se le asigne. Por ejemplo, en lenguaje COBOL estara en la declaracin SELECT...... ASSIGN TO nombre-enlace.

CAPITULO 2: LENGUAJE JCL

Pgina 135 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

DSN (dsname) 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. Este nombre se puede escribir de varias formas, en funcin del tipo de fichero de que se trate:

{DSNAME | DSN} ={nombre-fichero | nombre-fichero(nombre-miembro) | nombre-fichero(nmero-GDG) | nombre-fichero(nombre-rea) | nombre-fichero-temporal | nombre-fichero-temporal(nombre-miembro) | nombre-fichero-temporal(nombre-rea) | *.nombre-DD | *.nombre-paso.nombre-DD | *.nombre-paso.nombre-paso-proc.nombre-DD}

Donde las distintas posibilidades se han dividido en tres grupos: ficheros permanentes, ficheros temporales (se borran al terminar el trabajo) y la forma de dar el mismo nombre de un fichero definido en una sentencia DD anterior. Nombres calificados y no calificados Un nombre no calificado est compuesto de un mximo de 8 caracteres, alfabticos y numricos, no admitiendo caracteres especiales (excepto el guin). Un nombre calificado est compuesto por varios nombres no calificados, separados, cada uno de ellos, por un punto. Su longitud mxima ser de 44 caracteres, incluyendo los puntos de separacin (excepto los grupos de generacin, que son 35 caracteres). Si un nombre de fichero incluye caracteres especiales, que no sean el punto y el guin, deben ir encerrados entre apstrofos o comillas, y si el carcter especial es un apstrofo o comilla, debe codificarse duplicado. Los nombres calificados se aplican slo a ficheros permanentes. Los temporales no admiten calificacin.

CAPITULO 2: LENGUAJE JCL

Pgina 136 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Ficheros permanentes Son ficheros que permanecern en el sistema hasta que se borren explcitamente en un paso de un trabajo o con las utilidades del ISPF/PDF. Secunciales Un fichero secuencial es una coleccin de registros, colocados en un orden fsico concreto, que es por el que se procesarn. Ejemplo //FASTCONT DD DSN=SUNION.CONTAB.ASTOS.DIARIO.D990926 Libreras Una librera es una coleccin de ficheros con las mismas caractersticas, que se agrupan bajo un mismo nombre. Estn formados por un directorio y un grupo de miembros. (Ver manual Introduccin al ISPF/PDF)). Ejemplo //FDATTEMP DD DSN=SUNION.LIBDATOS.PRUEBAS(FDATTEMP) Grupos de generacin Un grupo de generacin es una coleccin de versiones de un fichero. La versin actual se considera como cero (0) y las versiones anteriores se numeran en forma negativa (-1, -2, etc.): cuanto ms alto es el nmero ms antigua es la versin. Ejemplo //FRESHACI DD DSN=SUNION.HACIENDA.RESUMEN.ANUAL(-5) Ficheros temporales Son ficheros que se crean en un trabajo y slo permanecen mientras dura ese trabajo que los cre. Tienen dos caractersticas que los identifican: uno o dos ampersand (&) por delante de un solo calificador.

CAPITULO 2: LENGUAJE JCL

Pgina 137 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

La forma de nombrarlos el sistema, para evitar posibles equivocaciones entre los mismos nombre de distintos pasos es nombre-trabajo.nombre-paso.nombre-dd.nombre-temporal Si el nombre de fichero se deja en blanco o no se especifica el parmetro DSN el sistema asume que es un fichero temporal y le da un nombre in- terno (como se ha explicado). Ejemplo //DD1 DD DSN=&&SALDOS

Ficheros diferidos Son ficheros que se usan en algn punto del trabajo y a los que se hace referencia en otro lugar mencionando ese uso anterior. Ejemplo //PASO010 EXEC ...... //FASTCONT DD DSN=SUNION.CONTAB.ASTOS.DIARIO.D990926 .................................. .................................. //PASO040 EXEC ...... //FCONTAST DD DSN=*.PASO010.FASTCONT DISP

Indica la situacin del fichero antes de ejecutar el paso y la situacin en la que quedar cuando termine

DISP=(estado-inicial,estado-final-normal,estado-final-error)

Donde el estado inicial especifica la situacin del fichero cuando empieza el paso, el estado final normal indica la situacin del fichero si el paso termina normalmente y estado final con error es lo que har el sistema con el fichero si el paso termina anormalmente.

CAPITULO 2: LENGUAJE JCL

Pgina 138 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

NEW (estado inicial) El fichero no existe, se crea en este paso de trabajo. Si hay subparmetros detrs se puede omitir, indicando un carcter coma (,). OLD (estado inicial) El fichero existe ya y, mientras lo utiliza este paso, ninguna otra tarea puede acceder a l (utilizacin exclusiva). SHR (estado inicial) El fichero ya existe y puede ser compartido por otras tareas. Si no se indica SHR, el sistema supone que el programa lo va a utilizar en exclusiva. MOD (estado inicial) Es similar a OLD, pero obliga al sistema a posicionarse tras el ltimo registro que exista en el fichero, aadiendo registros a partir de ese punto. Si no existe en este momento, se considera como nuevo. DELETE (estado final) Indica que el fichero no se va a utilizar en adelante y el espacio que ocupa en el volumen debe quedar libre al final del paso. KEEP (estado final) Indica que el fichero puede ser utilizado en pasos posteriores, pero codificando toda la informacin del fichero (UNIT, VOLUME, etc.). PASS (estado final) Indica que el fichero puede ser utilizado en pasos posteriores, pero no hace falta volverlo a codificar porque el sistema guarda la informacin. No se utiliza para el caso de terminacin anormal. CATLG (estado final) Adems de guardar el fichero, se guarda la informacin en el catlogo del sistema o del usuario, que se proporciona en la creacin.

CAPITULO 2: LENGUAJE JCL

Pgina 139 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

UNCATLG (estado final) El fichero se guarda, pero se borran las entradas del catlogo. Se eliminan las referencias al nmero de serie del volumen y tipo de dispositivo, pero el conjunto de datos no se borra, ni la entrada en la VTOC. En el estado inicial, si no se codifica este subparmetro se asume NEW. En el estado final normal, si se omite se asume DELETE si el estado inicial es NEW y KEEP si el estado inicial es OLD. En el estado final anormal, si se omite se asume el mismo estado que tendr para una terminacin normal. En los ficheros temporales se debe codificar (si fuese necesario) disposicin PASS y no KEEP. En un fichero particionado (librera), lo que se indique con el parmetro DISP se aplica a toda la librera y no slo a un miembro concreto. UNIT

Se utiliza para especificar la unidad o tipo de dispositivo en la que se va a almacenar un nuevo ficheros.

UNIT=unidad

Unidad Es un nombre de 1 a 8 caracteres alfanumricos que identifican una serie de dispositivos. Esto se hace para facilitar an ms la asignacin de espacio a un conjunto de datos. Por ejemplo, a los dispositivos 3330, 3350, 3380 y 3390 se les puede agrupar bajo el nombre SYSDA. Estos nombres se especifican en generacin. Tambin se puede especificar una tipo de unidad concreto. Por ejemplo, 3380, 3390, etc. VOLUME

Identifica el volumen donde se almacenar el nuevo fichero. Se puede abreviar como VOL. La informacin de volumen no es necesaria si los ficheros ya estn catalogados.

{VOLUME | VOL}=SER=nmero-serie

CAPITULO 2: LENGUAJE JCL

Pgina 140 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

SER Especifica el nmero de serie (nombre) del volumen que se desea. Es un nombre de hasta 6 caracteres, alfabticos y numricos (sin caracteres especiales), que asigna el Administrador del Sistema. A la hora de crear un nuevo fichero, se debe consultar el volumen-serie donde se puede incluir. DCB

El parmetro DCB (Data Control Block) describe internamente el fichero, es decir, especifica las caractersticas fsicas que va a tener. Su codificacin es muy variable, dependiendo del mtodo de acceso y de la organizacin del fichero.

DCB=(RECFM=tipo,LRECL=n,BLKSIZE=n,DSORG=tipo)

RECFM (RECord ForMat) Indica el tipo o formato de los registros del fichero. Los tipos ms habituales son: F FB V VB longitud fija longitud fija bloqueados longitud variable longitud variable bloqueados

LRECL (Logical RECord Length) Indica la longitud, en octetos, del registro lgico. BLKSIZE (BLocKSIZE) Indica la longitud, en octetos, del registro fsico (bloque). Si el factor de bloqueo es el nmero de registros lgicos en un registro fsico y se calcula factor de bloqueo = BLKSIZE / LRECL

CAPITULO 2: LENGUAJE JCL

Pgina 141 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

DSORG (Data Set ORGanization) Indica el tipo de organizacin del fichero: PS IS DA PO secuencial secuencial indexado organizacin directa particionado

y, si no se especifica este subparmetro, que es lo ms habitual, se asume PS. Si se especifica IS o DA se deben incluir una serie de parmetros adicionales, que no se incluyen en este manual porque, en la mayora de las instalaciones, la creacin de ficheros indexados se realiza a travs de la utilidad IDCAMS. SPACE

Especfica el espacio se quiere asignar a un nuevo fichero.

SPACE=({TRK | CYL | nn},(cant-prim,cant-sec,directorio), RLSE,CONTIG,ROUND)

TRK Indica espacio en pistas. CYL Indica espacio en cilindros. nn Indica espacio en bloques y nn ser el nmero de octetos por bloque. Cantidad primaria Indica la cantidad de espacio que debe asignarse en principio para el fichero. Es el espacio mnimo a asignar y se considera la primera extensin del fichero.

CAPITULO 2: LENGUAJE JCL

Pgina 142 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Cantidad secundaria Indica la cantidad que se debe aadir a la cantidad primaria, si se necesita ms espacio. Es opcional (puede ser cero). El espacio mximo que ocupar es de 15 veces la cantidad que se indique aqu. Es decir, puede haber hasta 15 extensiones adicionales del fichero. Directorio o ndice Para un fichero particionado, indica el nmero de bloques, de 256 octetos, que contendr el directorio del fichero. Para un fichero secuencial-indexado, indica el nmero de cilindros que debe ocupar el rea de ndices del fichero; el espacio siempre se pedir en cilindros (CYL). El sistema operativo distingue la finalidad de este subparmetro consultando el subparmetro DSORG del parmetro DCB. Si no se especifica nada se asume particionado. RLSE Especifica que el espacio que no se haya utilizado en la creacin del fichero debe liberarse cuando se termine el paso. CONTIG Indica que el espacio primario que se pidi debe ser contiguo. ROUND Si el espacio se pidi en unidades de longitud de bloque, obliga al sistema a que redondee a un nmero entero de cilindros. SYSOUT Se utiliza para indicar un listado.

SYSOUT={clase-salida | *}

CAPITULO 2: LENGUAJE JCL

Pgina 143 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Clase de salida Ser la clase por la que se desea obtener el listado. Cada clase de salida est asociada a un dispositivo determinado y se indica de acuerdo con una lista consistente en letras (A-Z) y dgitos (0-9). * Indica que el listado saldr por la clase que se indic en el parmetro MSGCLASS de la sentencia JOB. COPIES

Se utiliza para especificar el nmero total de copias que se desea obtener de un listado. Slo se puede indicar con un parmetro SYSOUT, ignorndose en cualquier otro caso.

COPIES=n

Donde n es un nmero de 1 a 255. Si no se codifica o se codifica mal, asume 1. OUTLIM

Especifica el nmero de mximo de lneas que se desea tenga un listado. Si se alcanza el lmite el trabajo termina anormalmente.

OUTLIM=n

Donde n puede tomar un valor de 1 a 16.777.215 de registros. Si no se codifica se supone el lmite mximo. Nota: Las sentencias de salida de JCL son tiles para procesar la salida de un archivo de salida en diferentes modos. Por ejemplo, un archivo de salida puede ser enviado a un sitio distante para ser impreso, como se muestra en la sentencia OUT1, y tambin ser impreso localmente, como se muestra en la sentencia OUT2: //OUT1 OUTPUT DEST=STLNODE.WSMITH //OUT2 OUTPUT CONTROL=DOUBLE //DS DD SYSOUT=C,OUTPUT=(*.OUT1,*.OUT2)

CAPITULO 2: LENGUAJE JCL

Pgina 144 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1), // MSGCLASS=S,NOTIFY=DPRJE10 //PASO010 EXEC PGM=PBCON026 //VMAECONT DD DSN=SUNION.CONTAB.MAESTRO,DISP=SHR //FASTCONT DD DSN=SUNION.CONTAB.ASTOS.DIARIO.D990926,DISP=OLD //FASTERRO DD DSN=SUNION.CONTAB.ASTOS.ERRORES, // DISP=(,CATLG,DELETE), // UNIT=3390,VOL=SER=CONT01, // DCB=(RECFM=FB,LRECL=100,BLKSIZE=27900), // SPACE=(TRK,(1,1),RLSE) //LASTOSER DD SYSOUT=* //LASTACEP DD SYSOUT=L,COPIES=3 //SYSIN DD * 1999-09-26 /* SENTENCIAS DD CON NOMBRES ESPECIALES

JOBLIB

Normalmente, el sistema cuando encuentra una sentencia EXEC que llama a un programa lo busca en la librera estndar del sistema (SYS1.LINKLIB), pero puede ocurrir que al responsable de Explotacin (o Produccin) le interese que existan libreras distintas en la instalacin. Cuando todos los programas de usuario del trabajo estn en la misma librera o cuando se desea indicar una sola vez el grupo de libreras donde estn los programas, se utilizar el nombre JOBLIB. Existen dos restricciones: debe ser la primera sentencia DD del programa y no se debe usar dentro de un procedimiento catalogado. Si no encuentra el programa en la(s) librera(s) indicada(s) en la ficha JOBLIB, busca en la estndar. Si no encuentra algn programa, el trabajo termina anormalmente o dependiendo de las condiciones establecidas. Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1), // MSGCLASS=S,NOTIFY=DPRJE10 //JOBLIB DD DSN=SUNION.CONTAB.LOAD,DISP=SHR

CAPITULO 2: LENGUAJE JCL

Pgina 145 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

STEPLIB

Su funcin y utilidad es la misma que la de JOBLIB, pero indicndola en cada paso. Si se codifica STEPLIB se ignora la JOBLIB, si existe. STEPLIB si puede estar en un procedimiento catalogado y, dentro del paso, puede ocupar cualquier posicin. Ejemplo //DPRJE10A JOB SUNION,F.R.M,CLASS=D,MSGLEVEL=(1,1), // MSGCLASS=S,NOTIFY=DPRJE10 //PASO010 EXEC PGM=PBCON026 //STEPLIB DD DSN=SUNION.CONTAB.LOAD,DISP=SHR

SYSABEND Y SYSUDUMP

Definen unos listados donde se va a efectuar el volcado de memoria, en caso de que el trabajo termine anormalmente. La diferencia entre ambas reside en la parte de la memoria que se vuelca al fichero: SYSUDUMP slo vuelca el rea del programa problema (suele usarse por el rea de Aplicaciones) y SYSABEND vuelca el ncleo del sistema, el rea del programa problema y la tabla de trace (interesa ms al rea de Sistemas).

CAPITULO 2: LENGUAJE JCL

Pgina 146 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

MODULO I
FUNDAMENTOS DE PROGRAMACION

CAPITULO 3: PROGRAMACION ESTRUCTURADA

REALIZADO POR GESFOR CHILE S.A. ENERO A FEBRERO DE 2003 SANTIAGO - CHILE

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

1. CONCEPTOS GENERALES
PROGRAMACION NO ESTRUCTURADA Una programacin no estructurada consiste en la utilizacin de las sentencias de un lenguaje, en el orden que establezca el programador en ese momento, para la solucin de un problema concreto. Esta forma se utiliz hasta los aos 70, con las siguientes caractersticas principales: Dependencia de la experiencia: la solucin es ms rpida y mejor cuanta ms experiencia tiene el programador. ste slo puede ensear a programar segn sus conocimientos. Lgica compleja: la ausencia de modelos da lugar a programas muy complejos, con muchas bifurcaciones, entrecruzamientos de ramas, etc. Soluciones (excesivamente) individuales: cada programador tiene sus "mtodos" personales. Este tipo de programacin lleva a muy distintas soluciones entre programadores para un mismo problema, incluso a distintas soluciones del mismo programador en distintos perodos de tiempo. Dificultad en pruebas: hay que afinar enormemente en los procesos de pruebas, probando exhaustivamente todas las vas, siendo muy fcil olvidarse de algn "camino". Dificultad de mantenimiento: todo lo anterior se puede resumir en una enorme dificultad de mantenimiento de los programas que, muchas veces, obliga a un replanteamiento total de las aplicaciones informticas.

A partir de 1.970, sobre todo en la dcada de los 80 y en la primera parte de los 90, la programacin estructurada es prcticamente obligatoria en la mayora de las empresas, perdindose ltimamente esta prctica por las siguientes causas: Alto coste en la formacin de metodologas. Excesivo tiempo de anlisis y documentacin de los programas. Se asume que lo importante es terminar los programas lo antes posible, sin tener en cuenta futuros problemas de mantenimiento. Resistencia de programadores antiguos, que nunca aceptaron trabajar con metodologas. Resistencia de programadores actuales, formados en lenguajes no clsicos (orientados a objeto, de 4 generacin, etc.) que utilizan otras tcnicas.

PROGRAMACION ESTRUCTURADA El estructuralismo es una de las grandes corrientes del pensamiento actual, adems de una tcnica de investigacin. Su aplicacin en distintos campos del saber llev a su

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 148 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

incorporacin en una de las ltimas ramas de la ciencia: la informtica, dando origen a lo que se conoce como "Programacin Estructurada". De forma resumida, estructurar consiste en aislar elementos bsicos que permitan construir un esquema que resuelva satisfactoriamente cualquier aspecto particular o global de un problema. La gran ventaja es la utilizacin de unos pocos conceptos bsicos, aunque esta escasez, algunas veces, empobrece la calidad de las soluciones. Aunque varias personas trabajaron en la evolucin de los mtodos estructurados para la programacin, se considera a Bhm y Jacopini (1966) como los iniciadores de la programacin estructurada actual. Sin embargo, es Djikstra (1968 y siguientes) el mayor impulsor de estas tcnicas, aunque son ms conocidos: Warnier (1972), Bertini (1974) y Jackson (1975). Sin existir una opinin general, se puede considerar que un programa bien estructurado y construido debe tener las siguientes propiedades: La informacin necesaria para estudiar, entender y verificar partes simples de un programa debe estar contenido en el mismo, sin necesidad de otra informacin adicional. Cualquier parte del programa puede ser modificado sin obligar, necesariamente, al cambio ni al conocimiento de otras partes del programa. Durante la construccin del programa, cada parte se puede desarrollar independientemente, para luego ensamblar todas las partes sin ningn problema.

Estas caractersticas dan origen a un conjunto de tcnicas en las que se van a incorporar: Estructuras bsicas Recursos abstractos Razonamiento deductivo "top-down"

Que se desarrollan a continuacin.

ESTRUCTURAS BASICAS Desde los primeros estudios tericos, se puede demostrar que todo programa informtico se puede resolver teniendo en cuenta slo tres estructuras bsicas de instrucciones o sentencias: Secuencia (concatenacin). Alternativa. Repetitiva.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 149 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Secuencia Una secuencia o concatenacin se compone de una serie de acciones (a, b, .., n) que se producirn siempre en el mismo orden, una detrs de otra, sin posibilidad de omitir ninguna.

a
Alternativa

Se supedita la ejecucin de una o ms acciones (a, b, .., n) a la verificacin previa de una condicin (c). Esta estructura tiene a su vez tres posibilidades que, en su versin ms reducida, se pueden expresar de la siguiente manera:

Simple Si se cumple la condicin se realiza una accin (a). Si no se cumple, sigue la secuencia lgica posterior a la verificacin. SI IF condicin

C a

THEN accin "a" ENDIF

Nota.- A la izquierda del grfico, se indica la forma ms habitual de codificacin, en los lenguajes tradicionales. Completa Si se cumple la condicin se realiza una accin (a). Si no se cumple, se realiza otra accin distinta (b). Despus de ejecutar cualquiera de ellas, sigue la secuencia lgica del programa. SI NO IF condicin THEN accin "a"

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 150 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ELSE accin "b" ENDIF

Mltiple Se establecen distintas acciones (a, b, , n) dependiendo del resultado de varias condiciones dependientes.
valor1 valor2 valor CASE variable condicin valor1 accin "a"

C a b n

variable condicin valor2 accin "b" . . variable condicin valor accin "n" ENDCASE

Repetitiva Permite representar acciones (a, b, .., n) que se van a repetir un nmero determinado de veces. Esta repeticin se basa en la verificacin de una condicin que, dependiendo del momento en que se realiza, da origen a dos posibilidades: Anterior Primero se verifica la condicin (c) y se ejecuta la accin (a) si se cumple. Por tanto, la accin se ejecutar de cero a un nmero determinado de veces (hasta que deje de cumplirse la condicin).

DO WHILE SI

condicin

C
CAPITULO 3: PROGRAMACION ESTRUCTURADA

accin "a"

Pgina 151 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ENDDO NO

Posterior Primero se ejecuta la accin (a) y despus se verifica la condicin (c), si se cumple se volver a ejecutar. Por tanto, la accin se ejecutar al menos una vez (posteriormente, hasta que deje de cumplirse la condicin).

a
SI

REPEAT UNTIL

accin "a" condicin

C
NO

Nota general Con estas estructuras se puede construir cualquier programa, siempre que tenga un solo punto de entrada y un solo punto de salida.

RECURSOS ABSTRACTOS Una de las mayores dificultades de la programacin consiste en coordinar las especificaciones del problema con los recursos concretos del lenguaje a utilizar. La programacin no estructurada tiende a traducir directamente dichas especificaciones en instrucciones de lenguaje. Ningn lenguaje clsico permite trasladar estructuras a recursos concretos del lenguaje. Para solucionar este inconveniente, se debe recurrir a recursos abstractos, que consiste en descomponer una accin compleja en un nmero de acciones ms

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 152 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

simples, que podran ser interpretadas por un ordenador "ideal" (inexistente), capaz de ejecutarlas. Puesto que en la prctica estas instrucciones no se pueden ejecutar, se intenta crear un programa que simule su funcionamiento, descomponiendo cada una de sus instrucciones en acciones ms simples. El proceso continuar hasta que los elementos obtenidos se correspondan a instrucciones del lenguaje del ordenador del que se dispone.

RAZONAMIENTO DEDUCTIVO "TOP-DOWN" Este proceso permite concebir un programa a partir de refinamientos consecutivos, descomponiendo elementos globales ("top") en otros ms simples ("down"), hasta llegar a un ltimo nivel que se pueda convertir en instrucciones del lenguaje a utilizar.

Para pasar de un nivel a otro, se debe tener en cuenta que una estructura slo tendr una entrada y una salida, adems de considerar dos "puntos de vista": Exterior: se indica la estructura que realiza una accin ("hace algo"), sin entrar en detalle de "cmo" lo hace. Interior: una vez determinada la accin, se especifican los detalles ("cmo lo hace").

DETERMINAR TIPO SALDO a C

Nivel

Nivel

n+1

Exterior lo que hace PROCESO DE CONSTRUCCION

Interior cmo lo hace

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 153 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

La tcnica de razonamiento que debe emplearse para plasmar los conceptos vistos anteriormente sera: (a) Todo problema debe ser considerado como un recurso abstracto y debe definirse perfectamente su funcin: "qu hace". (b) Se comprobar si esa funcin es directamente codificable en instrucciones del lenguaje que se va a utilizar, en cuyo caso, ha terminado el proceso. (c) Si no es as, se debe introducir un refinamiento y redefinir la funcin, para que permita obtener recursos con estructuras bsicas. (d) Cada una de estas acciones se considera un recurso abstracto y se repetir el proceso completo, tantas veces como sea necesario.

En cada nivel de abstraccin, las acciones consideradas soportan al nivel superior y son soportadas por el nivel siguiente. Diseo de un programa Todas las tcnicas vistas en los apartados anteriores llevan a un principio fundamental para conseguir una programacin estructurada: antes de comenzar la codificacin de un programa se debe estudiar (analizar) detenidamente la mejor forma de resolverlo. Para ello, se cuenta con dos grupos de herramientas: Metodologas: Warnier, Bertini y Jackson son las ms generalizadas. Tcnicas: son formas de representacin ms que metodologas (aunque se pueden apoyar en stas) y las ms usadas son los organigramas (en desuso actualmente) y el seudo cdigo, que se vern a continuacin.

ORGANIGRAMA El organigrama es una forma de representacin grfica que indica el orden de ejecucin de las instrucciones de un programa. Por eso, tambin se les llama ordinograma. Como se ha indicado anteriormente, no es una metodologa, pero se puede estructurar perfectamente un programa a travs de esta tcnica, teniendo en cuenta los conceptos de las metodologas, que tienen otras formas de representacin propias. Para conseguir la estructura, lo que se debe hacer es dividir el programa en distintos procedimientos (utilizando un razonamiento "top-down") y desarrollarlos independientemente. Aunque fue la forma ms tpica de anlisis y documentacin hasta los aos 80, actualmente no se utiliza (prcticamente) por los siguientes motivos: Cada accin (tipo de instruccin) est asociada a un smbolo: un error de utilizacin del grfico lleva a un error de interpretacin del programa.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 154 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Un programa complejo tiene una gran cantidad de grficos: si no se utilizan correctamente los enlaces (lneas y conectores) puede ser muy difcil el seguimiento del programa. A pesar de que hoy en da existen programas que facilitan el desarrollo y mantenimiento de los organigramas, un cambio en un programa puede llevar a la reescritura de varias pginas del grfico. Aunque hay otras menores, por ltimo, la visualizacin correcta de una instruccin dentro de la figura correspondiente lleva a distintos tamaos de las figuras: el resultado, estticamente hablando, puede ser desalentador.

Sin embargo, dado el uso extendido que tuvo en la poca de inicio y expansin de la programacin estructurada (aparecen en multitud de libros tcnicos) y como apoyo a la enseanza en algunos casos, se indican a continuacin el significado de los smbolos y, posteriormente, se ver un sencillo ejemplo para comprender su utilizacin.

Smbolos fundamentales

Inicio/final de un: - Programa - Procedimiento (parte diferenciada de un programa) Operacin de Entrada/Salida: - Abrir ficheros - Cerrar ficheros - Leer datos - Escribir datos Alternativa o decisin (bifurcacin condicional): - Simple - Completa

Operacin Secuencial: - Asignacin de variables - Operacin aritmtica

Procedimiento:

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 155 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

- Interno (una funcin dentro del programa) - Externo (subrutina, subprograma o mdulo) Lneas de enlace: - Indican el flujo (secuencia) de las instrucciones Conectores (para evitar cruces de lneas): -.Dentro de la misma pgina - De una pgina a otra

SEUDOCODIGO Aunque el uso del seudo cdigo, al igual que el organigrama, no asegura una programacin estructurada, esta es una tcnica que facilita mucho el diseo de programas, con las siguientes caractersticas: No requiere dibujos (conocimientos) de smbolos, ni tiene problemas de entrecruzamiento de lneas de flujo. Cada accin se indica con el idioma o lenguaje del analista o programador, sin sufrir las limitaciones de espacio de los dibujos en los organigramas. Aunque no es obligatorio, algunas funciones especficas se declaran por medio de "palabras reservadas", aceptadas generalmente. Los cambios (mantenimiento) de los programas es muy sencillo.

Como se ver a lo largo del curso, el nombre "seudo cdigo" indica que, una vez escrito el diseo del programa, la traduccin a un lenguaje determinado es casi inmediata, sin tener que realizar cambios en la estructura y sin necesidad de documentacin adicional del programa. Las acciones secunciales (por ejemplo, sumar) se indican en el idioma habitual del programador. Sin embargo otras (por ejemplo, una bifurcacin condicional) se expresan a travs de palabras especiales en ingls (IF). A continuacin, se relacionan las formas ms habituales en los seudo cdigos, asocindolas a las figuras de los organigramas, para mayor claridad.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 156 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Secuencia Para indicar una operacin en secuencia, slo se escribe la accin y despus sus operndoos. Asignacin de variables ASIGNAR variable1 A variable2 variable1 variable2 variable2 = variable1 Operaciones matemticas SUMAR 1 A variable variable = variable + 1 Como se puede observar, se pueden escribir las acciones en varios formatos. La eleccin de uno de ellos depende de las normas de la instalacin o de los gustos del diseador. Tambin se escriben las acciones en mayscula y los operndos en minsculas o viceversa, todo en maysculas o todo en minsculas, segn los criterios anteriores. Alternativa Para indicar una operacin alternativa se suele aceptar universalmente la palabra inglesa "IF" (si condicional).

IF condicin THEN accin "a" ELSE accin "b" ENDIF Se ha representado la forma completa de una condicin elemental. Para escribir una condicin mltiple, hay dos formas: CASE Se comprueba si una variable cumple la condicin con respecto a determinado valor, dentro de un grupo de valores, y se realiza la accin correspondiente. La mayora de

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 157 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

lenguajes que utilizan esta instruccin tienen una opcin que se ejecuta cuando no se cumple ninguna de las condiciones establecidas.

CASE variable condicin valor1 accin "a" variable condicin valor2 accin "b" variable condicin valorn accin "n" ENDCASE

IF "anidado" Se denomina as porque, como se puede observar en el ejemplo de abajo, cada una de las opciones de una condicin puede ser, a su vez, otra condicin.

IF condicin1 THEN accin "a" ELSE IF condicin2 THEN accin "b" ELSE IF condicin3 .. .

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 158 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ENDIF ENDIF ENDIF Repetitiva Para indicar una operacin repetitiva se suele aceptar la palabra inglesa DO (hacer) seguida de otra palabra que indica el momento en el que se establece la condicin de repeticin: WHILE: primero se evala la condicin, si se cumple se realiza la accin repetitiva, si no se termina la repeticin. Por tanto, la accin se puede ejecutar de 0 a n veces. UNTIL: primero se ejecuta la accin repetitiva y despus se evala la condicin, si se cumple se repite el proceso, si no se termina. Por tanto, la accin se puede ejecutar de 1 a n veces.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 159 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Es fcil convertir una opcin UNTIL en otra WHILE, pero no es tan fcil hacerlo a la inversa. Por eso, generalmente se utiliza la forma WHILE. DO WHILE condicin DO UNTIL condicin

accin "a" ENDDO Recurso abstracto

accin "a" ENDDO

Como se ha dicho, un recurso abstracto es una parte de un programa que no es directamente codificable, es decir, se debe desglosar en otros recursos abstractos o en acciones elementales. La palabra utiliza para indicarlos es: invocar, llamar, realizar, procedimiento, funcin, etc. o simplemente se le da un nombre y se incluye entre los signos menor ("<") y mayor (">").

[INVOCAR] < nombre de procedimiento >

FICHEROS SECUENCIALES: UN EJEMPLO SENCILLO La programacin estructurada se ha utilizado fundamentalmente para el tratamiento de ficheros secunciales. Aunque hoy da se puede usar y se usa para cualquier forma de almacenamiento de datos y para cualquier proceso de programacin, en este manual se realizarn referencias prioritarias a este tipo de ficheros. Un fichero secuencial es una organizacin de almacenamiento de datos que tiene las siguientes caractersticas: Los registros se encuentran dispuestos (grabados) fsicamente uno detrs de otro. Opcionalmente, pero en la mayora de los casos, estarn clasificados en un determinado orden. Al abrir el fichero, el gestor apunta al primer registro pero no lo recupera (no lo lleva a memoria). No se puede abrir un fichero que ya est abierto. Un fichero secuencial puede ser de entrada (se puede leer su informacin, pero no introducir datos nuevos) o de salida (se puede escribir nueva informacin, pero no leerla al mismo tiempo). No puede ser de los dos tipos al mismo tiempo. Cada operacin de lectura recupera (enva a memoria) la informacin de un solo registro. Esta informacin se sita en el rea de memoria determinada en la instruccin de lectura, "machacando" los datos que estn en ese momento en esa rea. Por tanto, la lectura de un registro implica la prdida de datos del registro

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 160 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

anterior (excepto para el primero del fichero). Despus de leer el ltimo registro, el gestor activa una condicin de fin de fichero que puede ser comprobada en el programa (en algunos lenguajes, por ejemplo el COBOL, el tratamiento de fin de fichero se puede hacer dentro de la propia instruccin de lectura). Cuando se escribe (graba) en el fichero, un nuevo registro siempre se coloca detrs del ltimo que exista en ese momento en el fichero. Es conveniente, aunque no obligatorio, cerrar los ficheros cuando ya no se necesiten. No se puede cerrar un fichero que no se haya abierto previamente.

El ejemplo Para ver las formas de documentacin (organigrama y seudo cdigo) en un caso real y empezar a establecer principios generales muy importantes en la programacin estructurada, se va a estudiar uno de los ejemplos ms sencillos: el listado de un fichero (con un pequeo clculo). Se va a considerar que el fichero de entrada (FVENTAS) tiene los siguientes datos sobre vendedores (entre parntesis se propone un nombre de variable para utilizarlo en la documentacin y dentro del programa): Cdigo de vendedor (CODVENDR) Nombre del vendedor (NOMVENDR) Importe total de pedidos vendidos (IMPVENTA) Porcentaje de comisin (PORCOMIS)

Y no se van a tener en cuenta tipos ni longitudes de los datos. No importa si el fichero viene clasificado. El listado (LISVENT), para simplificar lo ms posible el ejemplo y aunque no sea nada elegante, slo tendr lneas con los datos y el total final, de la siguiente forma: CODVENDR CODVENDR CODVENDR CODVENDR NOMVENDR NOMVENDR NOMVENDR NOMVENDR TOTAL. IMPVENTA IMPVENTA IMPVENTA IMPVENTA TOTVENTA PORCOMIS PORCOMIS PORCOMIS PORCOMIS IMPCOMIS IMPCOMIS IMPCOMIS IMPCOMIS TOTCOMIS

Donde, en la lnea de total (la ltima del listado) se escribir el literal "TOTAL." y la suma de todos los importes de venta y de los importes de comisin. Esquema general de un programa

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 161 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Antes de empezar a desarrollar la documentacin previa a la codificacin, se van a explicar conceptos fundamentales que se usarn en los siguientes captulos del manual. El primer principio es considerar que todo programa se basa en el siguiente esquema bsico:

ENTRAD A

PROCES O

SALID A

Con una informacin (datos) de entrada, a travs de un proceso (programa), se obtienen un resultado (salida).

El segundo principio asume que todo proceso tiene una sola entrada y una sola salida y que se puede dividir en tres subprocesos: Inicio: slo se ejecutar una vez y, aunque no es habitual, puede estar vaco (no tener instrucciones). Tratamiento: se ejecutar de cero a "n" veces porque, salvo rarsimas excepciones, est condicionado. Se puede dividir en otro tratamiento con el mismo esquema. Final: slo se ejecutar una vez, al final del proceso.

Inicio
(1)

PROGRAMA

Tratamiento
(n)

Final
(1)

El tercer principio que se va a utilizar en este manual, aunque otras metodologas o tcnicas no lo tengan porqu utilizar, es el uso de la lectura adelantada: en el inicio del programa y antes de iniciar el tratamiento de los registros se realizar una primera lectura, que dar informacin para la realizacin del tratamiento (por ejemplo, si no hay registros no hay tratamiento). Organigrama propuesto

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 162 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Varios diseadores pueden elaborar distintos organigramas para un mismo programa, incluso aunque sea tan sencillo como el ejemplo siguiente. Las diferencias ms tpicas son: Distintos niveles de desglose de los tratamientos (recursos abstractos). Mayor o menor amplitud y claridad en los textos, dentro de las figuras. Mayor o menor detalle en determinadas operaciones secunciales (por ejemplo, indicar todas las asignaciones o hacerlo en bloque. Ver envo de datos al listado).

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 163 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

INICIO PROGRAMA

INICIO CALCULARESCRIBIR

ABRRIR FVENTA S LISVEN T

CALCULAR COMISION

LEER FVENTA S

ACUMULAR TOTALES

FIN FICHER O SI

CALCULARESCRIBIR NO

RELLENAR CAMPOS DE LNEA

LLEVAR TOTALES A LNEA

ESCRIBIR LNEA DETALLE

ESCRIBI R LNEA TOTALES CERRAR FVENTA S LISVEN T

LEER FVENTA S

FINAL PROGRAM A

FINAL PROGRAMA

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 164 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

seudo cdigo propuesto


ABRIR FVENTAS, LISVENT LEER FVENTAS DO WHILE (hay registros) < CALCULAR-ESCRIBIR > ENDDO TOTAL-VENTAS --> LIN-TOT-VENT TOTAL-COMIS --> LIN-TOT-COM ESCRIBIR LINEA-TOTAL CERRAR FVENTAS, LISVENT ESCRIBIR LINEA-DETALLE LEER FVENTAS CODVENDR NOMVENDR IMPVENTA PORCOMIS COMISION --> --> --> --> --> LIN-CODVENDR LIN-NOMVENDR LIN-IMPVENTA LIN-PORCOMIS LIN-COMISION < CALCULAR-ESCRIBIR > COMISION = IMPVENTA * (PORCOMIS / 100) SUMAR IMPVENTA A TOTAL-VENTAS SUMAR COMISION A TOTAL-COMIS

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 165 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

2. CONTROL DE RUPTURAS
INTRODUCCION Para comprender el proceso que se va a desarrollar en este captulo, los componentes necesarios se ven en el siguiente esquema:

ENTRADA

PROGRAMA

LISTADO

SALIDA

Donde se pueden distinguir los siguientes elementos: Fichero de entrada: se tomar como base para los ejemplos un fichero secuencial que debe estar clasificado por uno o ms campos (si no lo estuviera no tiene sentido procesarlo con control de ruptura). Tambin se pueden utilizar otros tipos de "ficheros": cursores de tablas DB2 o colas temporales de CICS (ver los manuales correspondientes). Listado(s): como consecuencia del proceso, lo ms frecuente es generar uno o ms listados. Dada la amplitud de la explicacin sobre la construccin de listados se vern en el siguiente apartado. No es obligatorio generar listado. Fichero(s) de salida: tambin se pueden crear ficheros secunciales de salida, aunque tampoco es obligatorio.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 166 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

LISTADO Un listado es un fichero secuencial de salida, cuyos registros no son utilizables para entrada de otro proceso posterior. Esta es quiz la diferencia fundamental con un fichero secuencial de datos. Adems, aunque algunos lenguajes no hacen distincin entre un fichero y un listado, tienen una construccin especial, en forma multi registro (distintos tipo de registro dentro de un mismo fichero). La normativa, que generalmente existe en todas las empresas, sobre la forma de disear los listados no es general, pero un modelo tpico podra ser el siguiente:
F.R.M., S.A. CURSO ENTORNO S/390 FECHA: DD-MM-AAAA PAP15E01 LISTADO DE PEDIDOS SOLICITADO EN DD-MM PAG.: ZZ9 ***************************************************************************** PEDIDO RAZON SOCIAL CLIENTE FEC PEDIDO IMPORTE PEDIDO IMPORTE DESCTO. ------ -------------------- ---------- ---------------- ---------------XXXXX XXXXX XXXXX XXXXX XXXXX XXXXXXXXXXXXXXXXXXXX DD-MM-AAAA XXXXXXXXXXXXXXXXXXXX DD-MM-AAAA XXXXXXXXXXXXXXXXXXXX DD-MM-AAAA XXXXXXXXXXXXXXXXXXXX DD-MM-AAAA XXXXXXXXXXXXXXXXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99

TOTAL PEDIDOS .............. ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99

Donde se pueden observar los tres tipos bsicos de lneas, que se desarrollan a continuacin. Cabeceras (subcabeceras) Con este nombre se conocen, generalmente, a la(s) primera(s) lnea(s) de cada pgina del listado. Su informacin puede ser amplia y muy variable, pero su objetivo fundamental es identificar el listado. Es la parte del listado que ms vara de una empresa a otra. En el ejemplo, la cabecera tiene cinco lneas con el siguiente contenido: 1. Nombre de la empresa, nombre del departamento receptor del listado (en el ejemplo identifica el curso del manual), el literal "FECHA" y la fecha de emisin del listado. 2. Nombre del programa que genera el listado (en algunas ocasiones, nombre del listado), descripcin general del contenido del listado, el literal "PAG." y el nmero de pgina (parcial, general o ambas). 3. Lnea de separacin son la(s) subcabecera(s): asteriscos ("*"), signo igual ("="), guiones ("-"), etc.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 167 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Siendo conocidas, en algunos entornos, como cabecera general (con una mezcla de datos fijos y variables), en contraste con las subcabeceras (que suelen contener datos fijos, aunque pueden ser muy complejas y con datos variables, como se ver en algunos de los ejemplos del manual): 1) Nombre de los campos o datos que componen las lneas de detalle del listado. 2) Separacin de los literales identificativos (lnea anterior) con los datos de las lneas de detalle. Generalmente son guiones ("-"). No se suele dejar lneas de separacin entre las lneas que componen la cabecera general. Entre sta y la primera subcabecera se deja, al menos, una lnea en blanco. Si hubiera varias subcabeceras (no es frecuente, pero existen casos) se deja, al menos, una lnea en blanco. Detalle Son las lneas ms importantes del listado, puesto que reflejan la informacin til para el usuario. Esta informacin se puede generar a partir de los datos grabados en ficheros o bases de datos y de clculos matemticos. Normalmente, slo hay un tipo de lnea de detalle por listado, pero puede haber tantas como sea necesario. No se suelen dejar lneas en blanco entre estas lneas, aunque hay casos (por ejemplo, revisin de datos) en que puede ser interesante dejar una o ms lneas en blanco intercaladas. Total Son opcionales, aunque aparecen en la mayora de listados. Hay dos tipos: subtotales (totales parciales) y totales generales (finales). En algunas instalaciones se procura que esta lnea est resaltada. Se suele dejar, al menos, una lnea en blanco entre la ltima lnea de detalle y la lnea de total o entre lneas de totales, aunque muchas veces se dejan dos o tres lneas en blanco, para mayor claridad. Contador de lneas En la mayora de los listados, el nmero de lneas es muy variable para cada nivel de ruptura, es decir, las lneas de detalle (por ejemplo, relativas a un vendedor) pueden ocupar ms de una pgina fsica del listado. El sistema considera que el listado es un fichero secuencial de n registros y, por lo tanto, no sabe determinar el final de una pgina de impresora. Adems el nmero de

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 168 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

lneas por pgina que se desea imprimir vara por necesidades propias del listado, instalacin, gustos del diseador, etc.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 169 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Es necesario utilizar una variable de programa que lleve la cuenta de las lneas que se han escrito en una pgina, para determinar el momento en el que sea necesario terminar esa pgina e ir a la siguiente, teniendo en cuenta que una pgina estndar tiene 66 lneas.

PROCESO DE RUPTURA Un listado tiene rupturas cuando la escritura normal de lneas de detalle se ve interrumpida por lneas de total o salto de pgina, antes de llegar al final lgico establecido para las pginas, debido al cambio en el valor de alguno de los campos de clasificacin del fichero. Por tanto, algunas de las principales caractersticas de un proceso de control de ruptura son las siguientes: El fichero tiene que estar clasificado por, al menos, un campo. Esta clasificacin determina el orden de proceso de los niveles de ruptura. Hay tantos niveles de ruptura como campos de clasificacin, excepto, en la mayora de las ocasiones, el ltimo. Tambin de pueden determinar los niveles de ruptura a partir de los campos sobre los que hay que totalizar.

Para ilustrar un caso sencillo, se va a considerar un fichero que tenga slo dos campos: nmero de vendedor e importe de ventas del vendedor. Se quiere obtener un listado del total de ventas por vendedor, teniendo en cuenta que un vendedor puede tener varios registros de ventas y que el fichero viene clasificado por vendedor. Dado el fichero de datos de la izquierda, se tendra que obtener el listado de la derecha:

VENDEDOR

IMPORTE LISTADO DE VENTAS ------------------------------VENDEDOR ---------------1 5 11 TOTAL VENTAS ----------------------850 1400 700

1 100 1 200 1 550 ---------------------- ------5 1000 5 400 -----------------------------11 700

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 170 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Programa manual Si este proceso se hace de forma manual (sin ordenador) y suponiendo que cada una de las lneas del fichero es una ficha de un archivo clsico, los pasos que habra que dar seran: 3) Abrir el fichero. 4) Leer la primera ficha. 5) Anotar el nmero de vendedor y el importe aparte. 6) Si no hay ms fichas, se termina el proceso. 7) Si hay ms fichas, poner la nueva ficha sobre la anterior, con lo que los datos de vendedor no se vern. Pero como se haba escrito aparte el nmero de vendedor, se pueden comparar ambos nmeros, para saber si se debe seguir acumulando en el mismo vendedor o escribir el total en el listado. 8) Si el vendedor es igual en la ltima ficha que el anotado aparte, sumar el importe al vendedor y volver al paso (4). 9) Si el vendedor no es igual, escribir el nmero de vendedor y el importe total en el listado y volver al punto (3). Se ha visto el principio fundamental del proceso de ruptura: puesto que slo se van a poder tener los datos de la ltima ficha (registro) se deben guardar aparte los datos (campos) necesarios para comparar y saber si se est en un nivel de ruptura o hay que pasar al siguiente. Programa informtico Para resolver este mismo caso con un programa de ordenador, primero se debe establecer el esquema de el (los) nivel(es) de ruptura. Para ello habr que saber si el primer campo de clasificacin puede tener varios registros con el mismo dato, es decir, se puede repetir el mismo valor en una serie de registros. Si es as, se ha detectado un nivel de ruptura, con su desglose correspondiente. Si al siguiente campo de clasificacin le ocurre lo mismo, se tiene otro nivel y as sucesivamente, hasta que haya un campo de clasificacin que no tenga repeticiones o no haya ms campos de clasificacin. Una vez detectados el(los) nivel(es) de ruptura, para cada nivel, incluido el primero, se establece la tcnica, explicada anteriormente, que determina que todo proceso tiene tres partes: inicio, proceso repetitivo y final.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 171 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Inicio
(1)

I. Vendedor
(1)

PROGRAMA

Vendedor
(n)

Importe Venta
(n)

F. Vendedor
(1)

Final
(1)

Y el seudo cdigo que se puede establecer sera:


ABRIR VENTAS, LISTADO < CABECERAS > LEER VENTAS DO WHILE (hay registros) < PROCESAR-VENDEDOR > ENDDO CERRAR VENTAS, LISTADO Final del programa Proceso de vendedores

Inicio del programa

< PROCESAR-VENDEDOR > TOTAL-VENTAS = 0 VENDEDOR --> VENDEDOR-ANT --> DET-VENDEDOR DO WHILE (VENDEDOR = VENDEDOR-ANT) < PROCESAR-IMPORTES > ENDDO TOTAL-VENTAS --> DET-TOT-VENTAS IF CONT-LINEAS > mximo < CABECERAS > Final de un vendedor ENDIF ESCRIBIR LIN-DETALLE SUMAR 1 A CONT-LINEAS Proceso de los importes de un vendedor Inicio de un vendedor

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 172 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

< PROCESAR-IMPORTES > TOTAL-VENTAS = TOTAL-VENTAS + IMPORTE // SUMAR IMPORTE A TOTAL-VENTAS LEER VENTAS < CABECERAS > ESCRIBIR LIN-CAB1 despus de saltar pgina ESCRIBIR LIN-CAB2 despus de saltar 3 lneas ESCRIBIR LIN-CAB3 CONT-LINEAS = 5

Tratamiento de cabeceras Hay dos momentos, en cualquier programa, en los que hay que escribir las cabeceras del listado: Antes de escribir la primera lnea de detalle. Cada vez que se rebase el nmero mximo de lneas establecido para cada pgina.

Para resolver el primer punto, se puede hacer de dos formas: 1. En el Inicio del programa: como se ha visto arriba. De esta forma, aunque no haya ningn registro en el fichero, se escribir siempre al menos una hoja con las cabeceras (normalmente, adems se escribe una lnea indicando esta situacin: NO HAY DATOS). El escribir las cabeceras antes de leer el primer registro puede ser indiferente, a no ser que en las cabeceras haya algn dato de los campos de ruptura (bastante frecuente), en cuyo caso se debe primero leer. 2. Antes de escribir la primera lnea de detalle. Slo se escribe el listado cuando hay por lo menos un registro. Para usar esta tcnica, se debe dar un valor mayor que el mximo de lneas por pgina en el Inicio del programa, de tal forma que, cuando se va a escribir la primera lnea de detalle, el contador de lneas es mayor que el mximo y se fuerza la impresin de las cabeceras de la primera pgina. Para el segundo punto, con cualquiera de los mtodos vistos, siempre que se escriban lneas se deben ir acumulando al contador, de tal forma que, cuando sea mayor que el mximo de lneas establecido, se controla el final de una pgina y se inicia otra. El hecho de realizar el control de final de pgina antes o despus de escribir las lneas no suele ser demasiado significativo, salvo casos excepcionales.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 173 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

EJERCICIO 1 Obtener un listado de pedidos, a partir del fichero de pedidos de entrada, tal como se indica en el siguiente grfico:

FPEDIDOS

PEJRUP01

LPEDIDOS

Teniendo en cuenta que la estructura del fichero de entrada es:


FPEDIDOS Fichero de Pedidos

Campo

Descripcin del campo

Tipo Long. C C C C DEC DEC DEC DEC 5 5 10 10 13e2d 13e2d 13e2d 3e

DCPEDIDO Cdigo de pedido DCCLIENT Cdigo de cliente DFPEDIDO Fecha del pedido DFENTREG Fecha de entrega final DIPEDIDO Importe del pedido DIDEVLTO Importe de devoluciones DIDESCTO Importe de descuento DNFORPAG Forma de pago (en das)

aaaa-mm-dd aaaa-mm-dd

Y est clasificado por: Cdigo de cliente (DCCLIENT) y Cdigo de pedido (DCPEDIDO). No hay registros repetidos (no puede haber dos o ms registros con el mismo nmero de cliente y de pedido). El listado mostrar todos los pedidos de un cliente, obteniendo el total del cliente, cuando se terminen sus pedidos.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 174 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

LPEDIDOS

Listado de Pedidos por Cliente

F.R.M., S.A. CURSO ENTORNO S/390 FECHA: DD-MM-AAAA PEJRUP01 LISTADO DE PEDIDOS POR CLIENTE PAG.: ZZ9 ************************************************************************************** CLIENTE PEDIDO FEC PEDIDO IMPORTE PEDIDO IMPORTE DESCTO. IMPORTE NETO ------- ------ ---------- ---------------- ---------------- ---------------XXXXX XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 TOTAL CLIENTE ....ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99 XXXXX XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99

TOTAL CLIENTE ....ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99

EJERCICIO 2 Obtener un listado de ventas por vendedor, a partir del fichero de ventas de entrada, tal como se indica en el siguiente grfico:

FVENTAS

PEJRUP02

LVENTVEN

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 175 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Teniendo en cuenta que la estructura del fichero de entrada es: FVENTAS N. Campo CODVENDR CODPROVC NUMPEDID FECPEDID IMPPEDID FILLER Fichero de Ventas del ao anterior Tipo AN N AN AN N AN Long. Descripcin 4 2 5 8 7 24 --50 Cdigo de Vendedor Cdigo de provincia de venta Nmero de pedido Fecha del pedido (formato: AAAAMMDD) Importe del pedido Vaco

Clasificado por: Cdigo de Vendedor, cdigo de provincia y nmero de pedido. Sin repetidos (no puede haber ms de un pedido con la misma provincia y el mismo vendedor). LVENTVEN
FRMSA PEJRUP02

Listado de Ventas por Vendedor


DEPARTAMENTO DE VENTAS FECHA: DD-MM-AAAA LISTADO DE VENTAS DEL VENDEDOR: XXXXX PAG.: ZZ9

PROV ------99

PEDIDO -----------XXXXX XXXXX XXXXX XXXXX

FEC. VENTA -----------------DD-MM-AAAA DD-MM-AAAA DD-MM-AAAA DD-MM-AAAA

IMP VENTA ---------------Z.ZZZ.ZZ9 Z.ZZZ.ZZ9 Z.ZZZ.ZZ9 Z.ZZZ.ZZ9 ZZ.ZZZ.ZZ9 Z.ZZZ.ZZ9

TOTAL PROVINCIA ............................ 99 XXXXX DD-MM-AAAA

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 176 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

XXXXX XXXXX XXXXX

DD-MM-AAAA DD-MM-AAAA DD-MM-AAAA

Z.ZZZ.ZZ9 Z.ZZZ.ZZ9 Z.ZZZ.ZZ9 ZZ.ZZZ.ZZ9 ZZZ.ZZZ.ZZ9

TOTAL PROVINCIA ............................ TOTAL VENDEDOR ............................

El cdigo de vendedor ir en cabecera principal, por tanto, cada vendedor empezar en pgina aparte, con contador de pgina propio. Se obtendr un total de los pedidos por provincia y un total general por vendedor. Cada pgina tendr 55 lneas, sin contar los totales.

3. ENFRENTAMIENTO DE FICHEROS
INTRODUCCION Uno de los procesos informticos ms tpicos es el enfrentamiento o confrontamiento de ficheros. Para ello debe haber dos ficheros de entrada, a uno se le considera principal o maestro y al otro se le llama de movimientos. En los primeros tiempos, cuando slo existan ficheros secunciales, este proceso se utiliza principalmente para la actualizacin de los ficheros maestros importantes de las empresas (cuentas bancarias, clientes, etc.). Esta faceta se ha perdido porque aquellos ficheros se han convertido en bases de datos. Hoy da, esta tcnica se utiliza frecuentemente, pero para otros fines adicionales: Aadir o modificar informacin de un fichero desde otro. Fundir la informacin de dos o ms ficheros, para tener una gran cantidad de datos que permitan la realizacin de varios listados, simplemente clasificndolos en distinto orden. Consultas, quizs el ms utilizado, de un fichero con un gran volumen de informacin, a travs de claves guardadas en otro fichero.

MAESTRO

MOVIMIENTO S

PROGRAMA
CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 177 de 216 LISTADO

SALIDA

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Y para conseguir este propsito se debe dar una caracterstica comn en los dos ficheros de entrada: tiene que estar clasificados por los mismos campos, para poder compararlos y determinar la situacin del registro de un fichero con respecto al otro.

PROCESO DE ENFRENTAMIENTO Como se vio en el captulo anterior, se va a resolver primero un caso de forma manual, para luego hacerlo de una manera informtica. Se parte de dos ficheros clasificados por uno o ms campos, de igual concepto y en el mismo orden, que se van a comparar, para establecer el tratamiento a realizar, dependiendo de la situacin de esta comparacin. Hay tres posibilidades: Clave Maestro < Clave Movimientos. La clave del maestro no se encuentra en el fichero de movimientos, se lleva el registro del fichero maestro a la salida, tal como est, y se lee otro registro del fichero maestro. Este proceso se llama salvar el maestro, porque si no se perdera esta informacin para tratamientos posteriores. Clave Maestro > Clave Movimientos. La clave de movimientos no se encuentra en el fichero maestro, se lleva el registro del fichero de movimientos a la salida, tal como est, y se lee otro registro del fichero de movimientos. Este proceso se llama alta o inclusin, porque el registro de movimientos no exista en el fichero maestro pero, a partir de este momento, queda incluido para tratamientos posteriores como parte de ese fichero. Clave Maestro = Clave Movimientos. Las claves son iguales en ambos ficheros, se sustituye el registro maestro por el de movimientos y se lee otro registro de cada fichero. Este proceso se llama modificacin, porque el registro actual del maestro queda modificado por los datos del registro de movimientos.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 178 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Nota Cuando este proceso serva para la actualizacin de maestros puros, el fichero de movimientos tena, adems de los campos comunes con el fichero maestro, un campo adicional que identificaba el tratamiento o proceso que se deseaba realizar. Este campo tomaba un valor para el proceso de: alta o inclusin (A, I, etc.) modificacin (M, 2, etc.) baja o supresin (B, S, etc.)

Teniendo que realizar, adems de la comparacin de campos de enfrentamiento, el control de este campo, para confirmar el tratamiento a realizar. En este manual, no se ver este tipo de tcnica, por ser nada o muy poco frecuente en la actualidad.

Programa manual Se parte de dos ficheros tradicionales de fichas, ordenadas por un dato comn a los dos ficheros, y se trasladarn las fichas de uno u otro, dependiendo del resultado de la comparacin de una ficha de cada uno de los ficheros. Para no alargar excesivamente el texto, se reflejan a continuacin los valores de los ficheros Maestro, Movimientos y Resultado (con la operacin realizada), explicando posteriormente el proceso, paso a paso. Maestro 1 4 7 12 20 75 FF Movimientos 2 5 7 11 88 FF Resultado Operacin 1 2 4 5 7 11 12 20 75 88 Salvar Alta Salvar Alta Modificar Alta Salvar Salvar Salvar Alta

Donde se supone que FF es un valor mayor que cualquier clave posible. Se va a desarrollar paso a paso el proceso: 1. Se lee el primer registro maestro (1) y de movimientos (2) y se compara: el maestro es menor que movimientos. Esto significa que, por mucho que se busque en el fichero de movimientos, esta clave no se encuentra en movimientos. Por tanto, se debe trasladar la ficha del maestro al resultado, porque sino se perdera para procesos posteriores, puesto que este fichero de resultado pasar a ser el nuevo maestro. Se

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 179 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

SELECCIONa otra ficha del fichero que se ha procesado (el de clave menor: el maestro). 2. El maestro (4) es ahora mayor que movimientos (2). La clave de movimientos no existe en el maestro, porque todas las claves que queda en el maestro son mayores. Se traslada la ficha de movimientos al resultado, quedando incluida esta nueva clave para procesos posteriores. Se selecciona otra ficha del fichero que se ha procesado (el de clave menor: el de movimientos). 3. El maestro (4) es menor que movimientos (5), por lo que se actuar como en el punto 1. 4. El maestro (7) es mayor que movimientos (5), por lo que se actuar como en el punto 2. 5. El maestro (7) es igual a movimientos (7), por lo que se produce una nueva y ltimo tipo de situacin. Esto significa que el movimiento existe en el maestro y, al no tener otra referencia (un campo de accin que indique el tipo de proceso que se quiere realizar), se debe suponer que la informacin de los campos del fichero de movimientos sustituir a la informacin del registro maestro, trasladando la ficha de movimientos al resultado. Como se ha procesado una ficha de cada fichero, se selecciona otra ficha de cada fichero. 6. El maestro (12) es mayor que movimientos (11), por lo que se actuar como en el punto 2. 7. El maestro (12) es menor que movimientos (88), por lo que se actuar como en el punto 1. 8. El maestro (20) es menor que movimientos (88), por lo que se actuar como en el punto 1. 9. El maestro (75) es mayor que movimientos (88), por lo que se actuar como en el punto 1. 10. El maestro (FF) es mayor que movimientos (88), por lo que se actuar como en el punto 2. 11. El maestro (FF) es igual que movimientos (FF), por lo que, al no haber ms fichas en ninguno de los dos ficheros, se ha terminado el proceso.

Despus de haber visto detenidamente este proceso, se pueden sacar las siguientes conclusiones: El proceso no termina mientras haya fichas (registros) en alguno de los ficheros, excepto en el caso de la consulta, que se ver en el apartado correspondiente. Si termina primero el fichero maestro, todos los movimientos sern altas.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 180 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Si termina primero el fichero de movimientos, habr que salvar el resto del maestro.

Programa informtico El seudo cdigo general para este tipo de tratamientos a travs de un programa informtico sera:
ABRIR MAESTRO, MOVTOS, SALIDA LEER MAESTRO LEER MOVTOS DO WHILE (hay registros en MAESTRO o MOVTOS) < COMPARAR-CLAVES > ENDDO CERRAR MAESTRO, MOVTOS, SALIDA < COMPARAR-CLAVES > IF CLAVE-MAESTRO < CLAVE-MOVTOS < SALVAR-MAESTRO > LEER MAESTRO ELSE IF CLAVE-MAESTRO > CLAVE-MOVTOS < PROCESAR-ALTA > LEER MOVTOS ELSE < PROCESAR-MODIFICACION > LEER MAESTRO LEER MOVTOS ENDIF ENDIF

< SALVAR-MAESTRO > [ campos-MAESTRO --> campos-SALIDA ] ESCRIBIR SALIDA [ desde registro-MAESTRO ] < PROCESAR-ALTA > [ campos-MOVTOS --> campos-SALIDA ]

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 181 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ESCRIBIR SALIDA [ desde registro-MOVTOS ] < PROCESAR-MODIFICACION > [ campos-MOVTOS --> campos-SALIDA ] ESCRIBIR SALIDA [ desde registro-MOVTOS ] Notas Es bastante habitual escribir la comparacin dentro del bucle principal. Se ha elegido esta forma para mayor claridad. Otra manera de resolver la comparacin sera:
< COMPARAR-CLAVES > DO WHILE (CLAVE-MAESTRO < CLAVE-MOVTOS) < SALVAR-MAESTRO > LEER MAESTRO ENDDO DO WHILE (CLAVE-MAESTRO > CLAVE-MOVTOS) < PROCESAR-ALTA > LEER MOVTOS ENDDO

DO WHILE (CLAVE-MAESTRO = CLAVE-MOVTOS CLAVE-MAESTRO FF) < PROCESAR-MODIFICACION > LEER MAESTRO LEER-MOVTOS ENDDO

Donde hay dos inconvenientes con respecto a la primera forma propuesta: es ms fcil llegar a un bucle indefinido de programa

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 182 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

esta situacin se agrava y se ve ms clara en la comparacin por igual, que adems necesita comprobar el final de fichero de, al menos, uno de los ficheros de entrada. El paso de los campos de los ficheros de entrada a los campos de salida es opcional, siempre que el nmero y orden de ambos ficheros sea el mismo. Dependiendo del lenguaje, se puede escribir directamente el registro de salida desde el rea (leda) del registro de entrada.

CONSULTA Dentro del enfrentamiento, quizs el proceso ms utilizado actualmente es la consulta. Consiste en obtener una serie de registros, en un fichero de salida o en un listado, del fichero maestro a partir de la informacin (en forma de campo(s) clave(s)) que est en otro fichero, llamado de consulta. Como se indic en su momento, el(los) campo(s) de clasificacin de ambos ficheros tienen que tener el mismo concepto y estar en el mismo orden. Hay dos formas bsicas de consulta: La clave de consulta puede tener una sola clave igual en el maestro: el tratamiento es exactamente igual al enfrentamiento visto anteriormente. La clave de consulta puede tener ms de una clave igual en el maestro (es el caso ms usual, por ejemplo, movimientos de una cuenta bancaria, pedidos de un cliente, etc.): el tratamiento tiene algunas diferencias, que se presenta a continuacin.

Modelo bsico ABRIR MAESTRO, CONSULTA, SALIDA LEER MAESTRO LEER CONSULTA DO WHILE (hay registros en CONSULTA) < COMPARAR-CLAVES > ENDDO CERRAR MAESTRO, CONSULTA, SALIDA

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 183 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

< COMPARAR-CLAVES > IF CLAVE-MAESTRO LEER MAESTRO ELSE IF CLAVE-MAESTRO > CLAVE-CONSULTA < CLAVE-CONSULTA

< PROCESAR-ERROR > LEER CONSULTA ELSE < PROCESAR-CONSULTA > LEER MAESTRO ENDIF ENDIF Notas El proceso se realiza mientras el fichero de consulta tenga registros: una vez terminados estos, no tiene sentido seguir leyendo el maestro (un error grave y que se da con alguna frecuencia es hacerlo). Cuando el maestro es menor que la consulta significa que esa clave no se desea consultar, por lo tanto, se lee el siguiente registro sin hacer ninguna operacin adicional. Cuando el maestro es mayor que la consulta significa que esa clave no se encuentra en el maestro. Se puede hacer opcionalmente un tratamiento de error, generalmente, escribir el registro de consulta en un fichero o en un listado. Tambin se escribe en un fichero de salida el resultado correcto de la consulta, es decir, cuando se encuentra la clave en el maestro. En el modelo propuesto, se considera que la clave de consulta puede tener varias iguales en el maestro, por eso, se seguir leyendo del maestro hasta que se encuentre una clave diferente a la que inici la consulta. El fichero maestro no sufre modificaciones, si se quiere hacer otra consulta ser sobre los mismos registros (hasta que no se modifican por un proceso de actualizacin).

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 184 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

EJERCICIO 1 Actualizar el fichero maestro de Artculos con los registros de movimientos, teniendo en cuenta las siguientes consideraciones: Cuando se escribe un alta, se hace con el registro tal como est en movimientos. Cuando el artculo existe en el maestro y tiene un movimiento, slo se modificarn los campos que tengan contenido en el registro de movimientos. No puede haber ms de un movimiento para el maestro.

FMAESART

FMOVIART

PEJENF01

FMARTACT

Teniendo en cuenta que la estructura de los tres ficheros es la misma y que los dos ficheros de entrada estn clasificados por Cdigo de Artculo. FMAESART Campo DCARTICO DLDESART DIARTICO DPDESCTO Maestro de Artculos descripcin del campo Cdigo de artculo Descripcin del artculo Importe unitario del artculo Porcentaje de descuento Tipo C C DEC DEC Long. 4 30 11e2d 2e2d

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 185 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

EJERCICIO 2 Listar los clientes con todos sus pedidos, segn se especifica en el proceso.

FPEDIDOS

FCLIENTE

PEJENF02

LPEDCLTE

Teniendo en cuenta que la estructura de los ficheros de entrada es: FPEDIDOS

Fichero de Pedidos

Campo DCPEDIDO DCCLINTE DFPEDIDO DFENTREG DIPEDIDO DIDEVLTO DIDESCTO DNFORPAG

Descripcin del campo Cdigo de pedido Cdigo de cliente Fecha del pedido Fecha de entrega final Importe del pedido Importe de devoluciones Importe de descuento Forma de pago (en das)

Tipo C C C C DEC DEC DEC DEC

Long. 5 5 10 10 13e2d 13e2d 11e2d 3e

(aaaa-mm-dd) (aaaa-mm-dd)

Clasificado por: Cdigo de cliente y Cdigo de pedido.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 186 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Sin repetidos (un cliente no puede tener ms de un pedido con el mismo cdigo de pedido).

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 187 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

FCLIENTE Fichero de Clientes Campo DCCLINTE DLRAZSOC DLDOMICL DLPOBLAC DLPROVIN DLTELFNO Descripcin del campo Cdigo de cliente Razn social del cliente Domicilio Poblacin Provincia/Departamento Telfono Tipo C C C C C C Long. 5 30 30 20 15 11

Clasificado por: Cdigo de cliente. Sin repetidos (no puede haber dos registros con el mismo cdigo de cliente). LPEDCLTE Listado de Pedidos por Cliente

FRMSA DEPARTAMENTO DE VENTAS FECHA: DDMM-AAAA PEJENF02 LISTADO DE PEDIDOS POR CLIENTE PAG.: ZZ9 ****************************************************************************** CLIENTE XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX IMPORTE PEDIDO Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 IMPORTE DEVUELTO Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 (1) (2) (3) IMPORTE

PEDIDO FEC. PEDID FEC. ENTRG DESCUENT XXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 XXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 XXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 XXXXX DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 DD-MM-AAAA DD-MM-AAAA DD-MM-AAAA DD-MM-AAAA

TOTAL CLIENTE......ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99

Cdigo de cliente, Razn Social y Telfono Direccin Poblacin y Provincia

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 188 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

PROCESO Listar todos los pedidos de los clientes existentes en el fichero de Clientes. Cada cliente empezar en pgina nueva. Los datos del cliente irn en todas las pginas. Al final del cliente se escribir el importe total del pedido, de las devoluciones y del descuento. Si un cliente no tiene pedidos, se escribirn todas las cabeceras y, como nica lnea de detalle, el literal *** CLIENTE SIN PEDIDOS ***.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 189 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

4. TABLAS
INTRODUCCION El manejo del concepto de tabla (matriz o array) es muy importante en la programacin, aunque no absolutamente necesario. Sin embargo, realizar determinados tratamientos con otras tcnicas, aunque posible, lleva a unos gastos de proceso enormes. Para ilustrar esta necesidad, se va a contemplar un ejemplo sencillo. Se va a suponer un fichero de Clientes donde, entre otros campos, se encuentra la provincia de residencia del cliente. Este fichero est clasificado por cdigo de cliente. Se quiere obtener un listado de clientes (por cdigo de cliente) con el nombre de la provincia de residencia. Para ello se necesita un fichero con las provincias, clasificado por nmero de provincia. CLIENTES Cdigo Provincia PROVINCIAS Nmero Nombre

0001 01 0014 07 0153 39 1275 28 FF

01 lava 02 Albacete . . 50 Zaragoza FF

Como se puede observar, en los tres primeros registros de clientes no hay problema, puesto que las provincias tambin estn en el orden del fichero de provincias. El problema se presenta en el cuarto registro, cuya provincia es anterior a la ltima leda del fichero de provincias (39). Puesto que en un fichero secuencial no se puede leer hacia atrs, no quedara ms solucin que cerrar el fichero de provincias, volverlo a abrir y leer desde el principio hasta la provincia que se desea recuperar (28). As para cada situacin en la que la provincia del cliente est descolocada que, muy probablemente, ser la mayora de las veces. Este proceso, aunque realizable como se ha visto, provoca un derroche de recursos y un retardo en el programa que lo convierte en inviable. Solucin: sustituir el fichero de provincias por una tabla interna de programa con dichas provincias (en muchos programas, en el inicio, se carga un fichero de este tipo en una tabla interna, como se ver en el primer ejercicio de este captulo).

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 190 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

DEFINICION DE TABLA Una tabla es un conjunto de variables homogneas, es decir, del mismo tipo y longitud, colocadas en espacios consecutivos de memoria y que estn bajo un solo nombre: el de la tabla. Cada una de las variables que compone la tabla se llama elemento. Se puede hacer referencia a un elemento concreto a travs de un ndice, que es un valor numrico que representa la posicin del elemento dentro de la tabla. El ndice puede ser una constante numrica (un valor fijo) o, ms frecuentemente, una variable numrica, que tomar distintos valores en distintos momentos del programa. El ndice se escribe entre parntesis. Por tanto, para definir una tabla en los lenguajes tradicionales, se necesitan los siguientes componentes: Nombre de la tabla: que agrupa o referencia a todos los elementos que la componen. Nmero de elementos: puede ser un nmero fijo o variable (esto depende del lenguaje en el que se defina). Nombre del elemento: que sirve para referirse individualmente a cada uno de los elementos de la tabla. Estructura (composicin) del elemento: donde se indica el (los) campo(s) que integran el elemento, el tipo de dato y la longitud.

Ejemplo Para definir una tabla con los nombres de las provincias, para solucionar el problema que se explic en el apartado anterior, se podra hacer:
Nombre de la tabla Nmero de elementos (para Espaa) Nombre del elemento Estructura del elemento TABLA-PROVINCIAS 50 ELE-PROVINCIA Tipo: alfabtico (o alfanumrico) Long.: 15

y una vez definida y rellenada la tabla (ya se vern distintas formas de hacer esto, dependiendo del caso y del lenguaje), su colocacin en memoria sera: TABLA-PROVINCIAS 15 15
ALAVA ALBACETE .............................................................. ZARAGOZA

15

longitud

(50)

(1)

(2)

posicin

(ndice)

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 191 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ELE-PROVINCIA y para, por ejemplo, enviar la provincia ZARAGOZA a una lnea de listado se podra hacer: ELE-PROVINCIA(50) --> DET-PROVINCIA

si se conoce el valor fijo del ndice o, ms frecuentemente ELE-PROVINCIA(COD-PROVINC) --> DET-PROVINCIA

donde el ndice toma el valor de un campo del fichero (o de otra variable cualquiera del programa). TIPOS DE TABLA Hasta ahora se ha visto un tipo bsico de tablas, pero hay varios maneras de construir tablas, dependiendo de las necesidades de cada momento, de la experiencia del analista o programador, del lenguaje a utilizar, etc. Por nmero de elementos Dependiendo del nmero de elementos que va a contener la tabla y siempre que los permita el lenguaje a utilizar, puede ser con un nmero de elementos: Fijo Se establece, en la creacin de la tabla, un nmero fijo de elementos, que no podr ser aumentado. Variable Se establece el nmero de elementos de la tabla como una variable que tendr que tomar un valor antes de utilizar la tabla. En algunos lenguajes, se puede establecer un intervalo de elementos, es decir, un nmero mnimo y otro mximo. En lenguajes de PC, se pueden ir aadiendo elementos a medida que se van necesitando. Por estructura del elemento Dependiendo del nmero de campos que contiene el elemento y siempre que el lenguaje lo permita, la estructura del elemento puede ser:

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 192 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Simple Cada elemento est compuesto de un solo campo y del mismo tipo, o sea, tendr un valor solamente. Todos los lenguajes soportan este tipo de tablas (que se ha usado para la introduccin a este tema), pero algunos lenguajes permiten que el campo sea de tipo distinto (por ejemplo, un elemento puede ser numrico y el siguiente alfabtico). Compuesto Un elemento est subdivido en varios campos, que pueden ser de distinto tipo, por ejemplo, el elemento de la tabla de Provincias visto anteriormente podra tener dos campos: nombre de la provincia y nmero de habitantes.
ALAVA |000283116 ALBACETE |000356045.........................................ZARAGOZA |001100769

Para manejar este tipo de tablas, slo hace falta un ndice para dirigirse a cada uno de los campos: ELE-PROVINCIA(1) o ELE-HABITANTES(50)

pudiendo ser el valor del ndice fijo o variable, como ya se indic ms arriba. Por posicin de los elementos Dependiendo de la forma en la que estn situados los elementos dentro de la tabla, puede estar: Ordenada Cada elemento est en una determinada posicin dependiendo de un criterio de clasificacin (por ejemplo, el orden que ocupa el mes en el calendario, por orden alfabtico del nombre de la provincia, etc.). Tambin puede estar ordenada por valor de ndice, es decir, el elemento ocupa una posicin que es exactamente la del valor del ndice necesario para acceder a l (por ejemplo, el nmero de la provincia es el del elemento dentro de la tabla). Desordenada Un elemento se sita en el lugar que estaba libre en el momento de su inclusin en la tabla. Suelen ser tablas que se cargan durante la ejecucin del programa y que, la finalizar el proceso, se suelen clasificar para su descarga.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 193 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Por contenido del elemento Dependiendo del nmero y valor de los elementos de la tabla y de su posibilidad de modificacin (en cuanto al contenido, no al nmero de elementos) puede haber una tabla: Completa Tanto el nmero de elementos como su contenido (el valor que tienen) se conoce al principio del programa y es siempre el mismo, independientemente de los datos que procese el programa en cada momento (por ejemplo, los nombres de los meses: siempre sern 12, con los nombres correspondientes y en el mismo orden). Incompleta El nmero de elementos puede ser fijo o variable, pero faltan parte o todos los datos (puede y es lo ms general que al principio del programa est vaca). Se carga durante el proceso del programa, a partir de los datos de ficheros, operaciones aritmticas, etc. En estos casos, el tratamiento de los elementos se realiza hasta encontrar el primer elemento sin datos (vaco) y no hasta el ltimo elemento de la tabla. Por descomposicin del elemento No siempre las tablas son tan sencillas como se ha visto hasta ahora. Hay casos en los que los elementos pueden contener, a su vez, otra tabla (subtabla) y en varios niveles de descomposicin. Cada nivel necesita un ndice propio y se llama dimensin, por eso, una tabla puede ser: Unidimensional Son las tablas que se han visto hasta ahora: parte (si son compuestas) o todo el elemento se puede referenciar con un solo ndice.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 194 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Bidimensional Es un tipo de tabla muy utilizado. Parte o todo el elemento est formado por otra tabla (por ejemplo, se quieren tener la ventas mensuales por provincia): el elemento tendra esta forma:

ELE-PROVINCIA
ALAVA |000550000|001239200|003800000|........................|025000000

ELE-NOMBRE ELE-IMP-VENTA donde se acceder al nombre de la provincia utilizando ELE-NOMBRE(IND-PROV) pero, para obtener cada uno de los importes mensuales de venta, se tendr que utilizar un ndice adicional, para indicar el que se quiere obtener: ELE-IMP-VENTA(IND-PROV,IND-MES) Multidimensional Aunque el caso anterior se puede considerar dentro de este tipo, se considera que una tabla es multidimensional a partir de tres niveles o ndices. Cuantas ms dimensiones tenga una tabla, ms complejo es su diseo y utilizacin. El nmero de dimensiones permitidas depende del lenguaje y versin utilizados (por ejemplo, el COBOL II permite hasta 12 ndices) pero, en la prctica, es muy raro encontrar tablas de ms de 4 dimensiones.

CARGA DE TABLAS La carga de una tabla depende, ante todo, del tipo y de las posibilidades del lenguaje. Por tanto, existen variantes a la hora de realizar este tratamiento. Aqu se van a indicar dos de las formas ms habituales en la programacin con lenguajes clsicos y para grandes sistemas.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 195 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Por asignacin de memoria Para poder realizar este tratamiento se deben dar algunas condiciones para la tabla: El nmero de elementos es fijo. El elemento ser simple (aunque no es absolutamente necesario, este tipo de carga con elementos compuestos es ms compleja). Lo ms normal es que sea completa, es decir, que todos los elementos tengan un valor fijo y no haya elementos vacos. Tambin suele ser habitual, aunque no obligatorio, que est ordenada. Slo lo permiten los lenguajes clsicos (COBOL, PL/I, etc.).

En definitiva, el proceso consiste en asignar los valores de la tabla en la propia construccin de la tabla, es decir, antes de utilizarla en el proceso del programa. Por ejemplo, una tabla con los nombres de los meses, se puede construir en COBOL en el rea de datos de la siguiente manera: 01 TABLA-MESES 05 FILLER 05 FILLER 05 FILLER 05 FILLER 05 FILLER 05 FILLER 05 05 05 05 05 05 01 FILLER FILLER FILLER FILLER FILLER FILLER

PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC PIC

X(10) X(10) X(10) X(10) X(10) X(10) X(10) X(10) X(10) X(10) X(10) X(10)

VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE VALUE

'ENERO'. 'FEBRERO'. 'MARZO'. 'ABRIL'. 'MAYO'. 'JUNIO'. 'JULIO'. 'AGOSTO'. 'SEPTIEMBRE'. 'OCTUBRE'. 'NOVIEMBRE'. 'DICIEMBRE'.

TAB-MESES 05 ELE-MES

REDEFINES TABLA-MESES. PIC X(10) OCCURS 12.

Por proceso de programa En este caso, la tabla estar parcial o totalmente vaca, teniendo que ir rellenndose a lo largo del proceso del programa. Hay dos casos tpicos:

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 196 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

En el inicio del programa Se realiza un proceso que consiste en leer el contenido de un fichero y cargar, con cada registro, un elemento de la tabla. Se utiliza para tablas de cdigos (pases, artculos, etc.), que se necesitarn posteriormente para el tratamiento del programa. IND = 1 LEER FICHERO DO WHILE (hay registros) CAMPO Sumar --> ELEMENTO(IND) 1 a IND

LEER FICHERO ENDDO A lo largo del proceso Se recoge informacin de uno o ms ficheros y con datos internos del programa, se van creando y actualizando los elementos de la tabla. Suelen ser tpicos en procesos estadsticos (venta por provincia y mes, sueldos por departamento, etc.) Para ello, se busca el elemento en la tabla: si no existe se crea nuevo y si existe se realiza el tratamiento oportuno (por ejemplo, acumular el importe del registro al mes correspondiente del elemento de la tabla).

IND = 1 DO WHILE (IND <= mximo) IF CAMPO = ELEMENTO(IND)

< TRATAR-ELEMENTO > IND = mximo ELSE IF ELEMENTO(IND) = vaco

< CREAR-ELEMENTO > IND = mximo ENDIF ENDIF IND = IND + 1

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 197 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ENDDO ACCESO A TABLAS Para acceder a los elementos de las tablas, bien en el proceso de carga o de lectura (recuperacin), se pueden establecer varios mtodos, dependiendo del tipo de tabla y del lenguaje a utilizar. Directo Como su nombre indica, se accede directamente al elemento buscado, sin necesidad de acceder a los anteriores. Para esto, como se indic anteriormente, hay dos posibilidades: Se conoce la posicin exacta del elemento dentro de la tabla: el ndice se representa como una constante numrica (es poco habitual este caso). ELE-IMPORTE(13) Se tiene una variable (campo de registro o variable de programa) que contiene el valor del ndice para el elemento buscado (es lo ms habitual para esta situacin, por ejemplo, se tiene un campo de registro que indica el mes para acceder a una tabla o subtabla de meses). ELE-IMPORTE-MES(FECHA-MES) Secuencial En este caso, se hace un recorrido completo o parcial (hasta que se cumpla una condicin) de los elementos de la tabla. IND = 1 DO WHILE (IND <= mximo) <PROCESAR-ELEMENTO(IND) > IND = IND + 1 ENDDO Dicotmica El acceso secuencial obliga, como se ha visto, a empezar la bsqueda siempre desde el principio de la tabla.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 198 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Para reducir los accesos, se puede utilizar una bsqueda dicotmica (dividir en dos partes), teniendo en cuenta que la tabla debe estar ordenada por el campo de bsqueda: 1. Se accede al elemento central de la tabla. 2. Si el valor de la clave es mayor, se acceder a los elementos anteriores. Si es menor, se acceder a los posteriores. 3. Se accede al elemento central de la parte de la tabla elegida, segn el punto anterior. 4. Se repiten los dos puntos anteriores, hasta encontrar o no la clave buscada. Nota Algunos lenguajes (por ejemplo, COBOL) tienen algunas instrucciones especiales (por ejemplo, SEARCH) que realizan este tipo de bsqueda fcilmente, sin necesidad de codificar el seudo cdigo propuesto. EXISTE = 0 PRIMER = 0 ULTIMO = 0 DO WHILE (PRIMER <= ULTIMO) IND = (PRIMER + ULTIMO) / 2 IF ELEMENTO(IND) = clave EXISTE = 1 PRIMER = ULTIMO + 1 ELSE IF ELEMENTO(IND) < clave PRIMER = IND + 1 ELSE ULTIMO = IND 1 ENDIF ENDIF ENDDO se limita hacia abajo se limita por arriba se toma la parte entera

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 199 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

IF EXISTE = 1 < PROCESAR-ELEMENTO(IND) > ELSE < PROCESAR-NO-EXISTE > ENDIF EJERCICIO 1 Obtener un listado de los artculos del fichero de entrada, previamente cargados en forma de tabla interna.

FARTICUL

PEJTAB01

LARTICUL

Teniendo en cuenta que la estructura de la tabla es la misma que la del fichero de entrada:

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 200 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

FARTICUL Campo DCARTICO DLDESART DIARTICO DPDESCTO LARTICUL

Fichero de Artculos Descripcin del campo Cdigo de artculo Descripcin del artculo Importe unitario del artculo Porcentaje de descuento Tipo C C DEC DEC Long. 4 30 11e2d 2e2d

Listado de Artculos

F.R.M., S.A. CURSO DB2-COBOL ENTORNO S/390 FECHA: DD-MM-AAAA PEJTAB01 LISTADO DE ARTICULOS PAG.: ZZ9 ****************************************************************************************************** DESCRIPCION DEL ARTICULO PREC.UNID %DCTO PREC.NETO ------------------------------------------------------------ ---------- -----------------XXXX XXXXXXXXXXXXXXXXXXXX Z.ZZZ.ZZ9 Z9,99 Z.ZZZ.ZZ9 XXXX XXXXXXXXXXXXXXXXXXXX Z.ZZZ.ZZ9 Z9,99 Z.ZZZ.ZZ9 XXXX XXXXXXXXXXXXXXXXXXXX Z.ZZZ.ZZ9 Z9,99 Z.ZZZ.ZZ9

EJERCICIO 2 Obtener un listado de pedidos y un resumen de ventas por vendedor y mes, a partir del fichero de ventas de entrada, tal como se indica en el siguiente grafico:

FVENTAS

PEJTAB02

LPEDIDOS

LVENDMES

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 201 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Teniendo en cuenta que la estructura del fichero de entrada es: FVENTAS N. Campo CODVENDR CODPROVC NUMPEDID FECPEDID IMPPEDID FILLER Fichero de Ventas del ao anterior Tipo AN N AN AN N AN Long. 4 2 5 8 7 24 --50 Descripcin Cdigo de Vendedor Cdigo de provincia de venta Nmero de pedido Fecha del pedido (formato: AAAAMMDD) Importe del pedido Vaco

Clasificado por: Nmero de pedido. Sin repetidos (no puede haber ms de un pedido con el mismo nmero). LPEDIDOS

Listado de Pedidos

FRMSA DEPARTAMENTO DE VENTAS FECHA: DD-MM-AAAA PEJTAB02/1 LISTADO DE PEDIDOS PAG.: ZZ9 ************************************************************************************** PEDIDO -----------XXXXX XXXXX XXXXX XXXXX FEC. VENTA IMP VENTA VENDEDOR ------------------ ----------------- ----------------DD-MM-AAAA Z.ZZZ.ZZ9 XXXX DD-MM-AAAA Z.ZZZ.ZZ9 XXXX DD-MM-AAAA Z.ZZZ.ZZ9 XXXX DD-MM-AAAA Z.ZZZ.ZZ9 XXXX

TOTAL PEDIDOS...... ZZ.ZZZ.ZZ9

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 202 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

LVENDMES

Listado de ventas por Vendedor y Mes

FRMSA DEPARTAMENTO DE VENTAS FECHA: DD-MM-AAAA PEJTAB02/2 LISTADO DE VENTAS POR VENDEDOR Y MES PAG.: ZZ9 ************************************************************************************** VENDEDOR: XXXX MES ---------ENERO FEBRERO ...... IMPORTE VENTA ------------Z.ZZZ.ZZZ.ZZ9 Z.ZZZ.ZZZ.ZZ9

Z.ZZZ.ZZZ.ZZ9 Z.ZZZ.ZZZ.ZZ9

DICIEMBRE

TOTAL VENDEDOR ZZ.ZZZ.ZZZ.ZZ9

Cada vendedor ir en pgina aparte. Las lneas de los meses llevan una en blanco entre ellas, el total de vendedor dos en blanco. El orden de los vendedores no tiene importancia.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 203 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ANEXOS

A. PRINCIPALES METODOLOGIAS
INTRODUCCION Como ya se indic en su momento, no hay un acuerdo general a la hora de aceptar una metodologa concreta como la ptima. Incluso a la hora de clasificar las utilizadas con ms frecuencia, surgen dos tendencias: Dependiendo de la forma en la que orientan el proceso lgico: deductivas e inductivas. Dependiendo del objeto principal que consideran en la solucin del problema: funcionales y basadas en los datos.

Deductivos e inductivos Los mtodos deductivos se pueden considerar como analticos, porque se realizan partiendo de los niveles ms altos en complejidad y se van descomponiendo en otros ms sencillos. Los mtodos inductivos se pueden considerar como constructivos, porque parten de la solucin de los componentes ms sencillos del problema, que se organizan posteriormente para la solucin global. En la prctica, cualquier proceso tiene parte de ambos componentes, por lo que el diseo final se obtiene aplicando ambas mtodos, aunque, dependiendo de la metodologa a emplear, exista una orientacin predominante hacia uno de ellos. Funcionales y basados en los datos Aunque las funciones y los datos son inseparables en cualquier proceso informtico, hay que tener en cuenta ciertas consideraciones. Un mtodo se considerar funcional si orienta al diseador a contemplar primero las funciones, considerando los datos como subordinados. Un mtodo se considerar basados en los datos si se realiza el diseo basndose en el anlisis de los datos, considerando las funciones como algo subordinado. Como suceda en la anterior clasificacin, para obtener un diseo funcional siempre hay que tener en cuentas los datos que participan en el proceso y para obtener un diseo de datos, en algn momento se tendrn que tener en cuenta las funciones. Nota

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 204 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Todos las metodologas que se van a contemplar aqu (muy brevemente) se crearon en la primera mitad de los aos 70 y se desarrollaron en la segunda mitad. En la dcada de los 80 eran obligatorios en la mayora de las grandes empresas. Decaen poco a poco en los aos 90 y cada vez son menos utilizadas. BERTINI El mtodo ideado por Mara Teresa BERTINI tiene como principales caractersticas: Es deductivo. Fue muy importante porque asent las bases tericas de la programacin estructurada. No profundiza mucho en los problemas generales del diseo y slo resulta muy adecuado y orientado a la codificacin en lenguaje COBOL. Se limita a los problemas de gestin empresarial, siendo de difcil o imposible utilidad en otro tipo de entornos y lenguajes.

Tiene el mrito de ser uno de los primeros mtodos que prescindi del organigrama, como forma de representacin grfica y de documentacin, para sustituirlo por otro lenguaje, tambin grfico, pero ms orientado a las estructuras bsicas de la programacin estructurada. Sin embargo, esta simplicidad le llev a verse pronto superado por los mtodos de Warnier y Jackson. En cuanto al proceso funcional y de datos, aplica ambos criterios, segn el siguiente esquema: Analiza los datos de entrada, eligiendo una estructura, entre todas las posibles, teniendo en cuenta las funciones. Tambin puede dar preferencia a la estructura funcional. Aconseja el proceso basado en datos en los primeros niveles del diseo. La estructura fsica de los datos (almacenamiento externo) es muy importante para la solucin del problema. En los niveles ms bajos del diseo, donde la estructura de datos es ms flexible, se debe dar ms importancia a las funciones.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 205 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

rbol programtico Con este nombre se conoce la estructura de tratamiento conseguido con este mtodo. Un ejemplo de la estructura principal podra ser:
PROG RAMA

Nombre fichero Primer registro


REGI

INICIO
CONDICIN FIN REPETITIVA

STRO

FINAL

CONDICIN ALTERNATIVA

INICIO REGISTRO

TIP O A

TIP O B FINAL REGISTRO

TRATAR A Nota

TRATAR B

En los enlaces entre los elementos del rbol programtico se reflejarn las entradas que recibe y las salidas que proporciona cada elemento.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 206 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

WARNIER El mtodo de diseo de Jean Dominique WARNIER (llamado LCP o Leyes de Construccin de Programas) consigue un proceso deductivo y basado en el anlisis de datos. Respecto a la propuesta de Bertini, avanza al contemplar por separado las estructuras de datos de entrada y salida, para luego adaptarlas entre s. De esta forma, la funcin se considera de forma implcita, siguiendo un anlisis orientado nicamente a los datos. Se introduce el concepto de ficheros lgicos, dando ms posibilidad de soluciones para la estructura del conjunto de datos. Tambin adapta mejor los datos de entrada a los de salida. El diseo se formaliza en un modelo matemtico, con un lenguaje grfico que utiliza llaves, para definir conjuntos (aplicando la teora de conjuntos). El mtodo es ms general y potente que el de Bertini, ms adaptable a cualquier lenguaje, pero tiene algunos problemas que no cubre y tiene que recurrir a consideraciones y herramientas particulares, que evitan la pretendida aplicacin general. Para realizar el diseo, se basa en considerar los datos de entrada o FLE (fichero lgico de entrada), organizados en entidades que se comprenden o excluyen unas a otras. Tambin se consideran los resultados, organizados en un FLS (fichero lgico de salida). A continuacin, se obtiene un diagrama de llaves (cuadro de descomposicin de tratamientos), que representa la estructura general del programa. Por ltimo, se va realizando un desglose de operaciones (tratamientos) hasta llegar a los elementos bsicos (proceso inductivo).

Inicio
(1)

I. Registro
(1)

Tipo A
(0-1)

PROGRAMA

Registro
(n)

Tipo B
(0-1)

F. Registro
(1)

Final
(1)

Los caracteres entre parntesis indican el nmero de veces que se produce (ocurre) la entidad de datos, cuando hay dos (0,1) se quiere indicar una alternativa. Las llaves expresan la relacionan de pertenencia de unas entidades a otras.

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 207 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

JACKSON Por ltimo, la idea de Michael A. JACKSON coincide en muchos aspectos con Warnier, perdiendo formalizacin matemtica y ganando en la solucin de problemas complejos que aparecen en los sistemas, siendo, en conjunto, este mtodo ms potente, adems de poderse implantar en cualquier sistema informtico, adems del mbito de gestin empresarial. No se supedita la estructura de salida a la de entrada, sino que se consideran al mismo nivel, reconociendo la posibilidad de conflictos de estructura entre los datos de entrada y salida. Para solucionar este problema, aporta una tcnica de inversin de programas. Otra aportacin es la tcnica de backtracking, dando la posibilidad de realizar un proceso cuando todava no se dispone de algn que indica si debe realizarse o no (con el problema de deshacer el proceso realizado si, cuando se disponga de esa informacin, se observa que era inadecuado). El diseo consiste en la obtencin de una estructura de programa conseguido a partir de la fusin entre la estructura de datos de entrada y de salida. A continuacin se establece una lista de operaciones, que se reparten en la estructura obtenida. El lenguaje usado para la representacin es grfico, pero slo considera un smbolo: el rectngulo. Dentro de esta figura, adems de la descripcin de la operacin, pueden aparecer dos smbolos en el extremo superior derecho: asterisco (*): representa un elemento repetitivo. crculo (o): representa un elemento alternativo.

FICHERO

INICIO

CUERPO

FINAL

REGISTRO

INICIO

CUERPO

FINAL

TIPO A
CAPITULO 3: PROGRAMACION ESTRUCTURADA

TIPO B Pgina 208 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

B. SOLUCIONES A LOS EJERCICIOS


EJERCICIO 2-1 Obtener un listado de pedidos, por cliente, a partir del fichero de pedidos de entrada. Inicio
(1)

I. Cliente
(1)

PROGRAMA

CLIENTE
(n)

PEDIDOS
(n)

F. Cliente
(1)

Final
(1)

ABRIR FPEDIDOS, LPEDIDOS OBTENER FECHA DEL SISTEMA FECHA-SISTEMA --> CAB1-FECHA < CABECERAS > // LEER FPEDIDOS DO WHILE (hay registros) < PROCESAR-CLIENTE > ENDDO CERRAR FPEDIDOS, LPEDIDOS < PROCESAR-CLIENTE > TOTAL-PEDIDO = 0 TOTAL-DESCTO = 0 DCCLIENT --> --> CLIENTE-ANT DET-DCCLIENT

CONT-LINEAS = 61

DO WHILE (DCCLIENT = CLIENTE-ANT) < PROCESAR-PEDIDOS >

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 209 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ENDDO TOTAL-PEDIDO --> TOT-PEDIDO TOTAL-DESCTO --> TOT-DESCTO TOTAL-NETO = TOTAL-PEDIDO TOTAL-NETO --> TOT-NETO

TOTAL-DESCTO

ESCRIBIR LIN-TOTAL despus de saltar 2 lneas ESCRIBIR LIN-BLANCO despus de saltar 3 lneas SUMAR 5 A CONT-LINEAS < PROCESAR-PEDIDOS > TOTAL-PEDIDO TOTAL-DESCTO IMP-NETO DCPEDIDO DFPEDIDO DIPEDIDO DIDESCTO IMP-NETO --> --> --> --> --> = = = TOTAL-PEDIDO + DIPEDIDO TOTAL-DESCTO + DIDESCTO DIPEDIDO - DIDESCTO <-- dando vuelta a la fecha

DET-DCPEDIDO DET-DFPEDIDO DET-DIPEDIDO DET-DIDESCTO DET-IMPONETO >

IF CONT-LINEAS < CABECERAS > ENDIF

mximo

ESCRIBIR LIN-DETALLE SUMAR 1 A CONT-LINEAS LIMPIAR LIN-DETALLE LEER FPEDIDOS < CABECERAS > SUMAR 1 A CONT-PAGINA CONT-PAGINA --> CAB2-PAGINA ESCRIBIR ESCRIBIR ESCRIBIR ESCRIBIR ESCRIBIR LIN-CAB1 LIN-CAB2 LIN-CAB3 LIN-CAB4 LIN-CAB5 despus de saltar pgina despus de saltar 2 lneas

CONT-LINEAS = 6

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 210 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

EJERCICIO 2-2 Obtener un listado de ventas por vendedor y provincia, a partir del fichero de ventas.

Inicio (1) I. Vendedor (1) PROGRAMA VENDEDOR (n) PROVINCIAS (n) Vendedor (1) Final (1) I. Provincia (1) PEDIDOS (n) F. Provincia (1)

ABRIR FVENTAS, LVENTVEN OBTENER FECHA DEL SISTEMA FECHA-SISTEMA --> CAB1-FECHA LEER FVENTAS DO WHILE (hay registros) < PROCESAR-VENDEDOR > ENDDO CERRAR FVENTAS, LVENTVEN < PROCESAR-VENDEDOR > TOTAL-VENDEDOR = 0 CONT-PAGINA = 0 CODVENDR --> VENDEDOR-ANT --> CAB2-CODVENDR < CABECERAS > DO WHILE (CODVENDR = VENDEDOR-ANT) < PROCESAR-PROVINCIAS >

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 211 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ENDDO TOTAL-VENDEDOR --> TOT-VENDEDOR ESCRIBIR LIN-TOTAL-VENDEDOR despus de saltar 3 lneas < PROCESAR-PROVINCIAS > TOTAL-PROVINC = 0 CODPROVC --> PROVINCIA-ANT --> DET-CODPROVC DO WHILE (CODPROVC = PROVINCIA-ANT) < PROCESAR-PEDIDOS > ENDDO TOTAL-PROVINC --> TOT-PROVINCIA SUMAR TOTAL-PROVINC A TOTAL-VENDEDOR ESCRIBIR LIN-TOTAL-PROVINC despus de saltar 2 lneas ESCRIBIR LIN-BLANCO despus de saltar 2 lneas SUMAR 4 A CONT-LINEAS

< PROCESAR-PEDIDOS > SUMAR IMPPEDID A TOTAL-PROVINC NUMPEDID --> DET-NUMPEDID FECPEDID --> DET-FECPEDID <-- dando vuelta a la fecha IMPPEDID --> DET-IMPPEDID IF CONT-LINEAS > 55 < CABECERAS > ENDIF ESCRIBIR LIN-DETALLE SUMAR 1 A CONT-LINEAS LIMPIAR LIN-DETALLE LEER FVENTAS

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 212 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

< CABECERAS > SUMAR 1 A CONT-PAGINA CONT-PAGINA --> CAB2-PAGINA ESCRIBIR LIN-CAB1 despus de saltar pgina ESCRIBIR LIN-CAB2 ESCRIBIR LIN-CAB3 ESCRIBIR LIN-CAB4 despus de saltar 2 lneas ESCRIBIR LIN-CAB5 CONT-LINEAS = 6 EJERCICIO 3-1 Actualizar el fichero maestro de Artculos con los registros de movimientos. ABRIR FMAESART, FMOVIART, FMARTACT LEER FMAESART LEER FMOVIART DO WHILE (hay registros en FMAESART o FMOVIART) < COMPARAR-CLAVES > ENDDO CERRAR FMAESART, FMOVIART, FMARTACT < COMPARAR-CLAVES > IF FMAESART-DCARTICO < FMOVIART-DCARTICO < DEJAR-ARTICULO > LEER FMAESART ELSE IF FMAESART-DCARTICO > FMOVIART-CDARTICO < ALTA-ARTICULO > LEER FMOVIART ELSE < MODIFICAR-ARTICULO > LEER FMAESART LEER FMOVIART

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 213 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

ENDIF ENDIF < DEJAR-ARTICULO > ESCRIBIR FMARTACT desde REG-FMAESART < ALTA-ARTICULO > ESCRIBIR FMARTACT desde REG-FMOVIART < MODIFICAR-ARTICULO > REG-FMAESART --> REG-FMARTACT IF FMOVIART-DLDESART no vaco FMOVIART-DLDESART --> FMARTACT-DLDESART ENDIF IF FMOVIART-DIARTICO no vaco FMOVIART-DIARTICO --> FMARTACT-DIARTICO ENDIF IF FMOVIART-DPDESCTO no vaco FMOVIART-DPDESCTO --> FMARTACT-DPDESCTO ENDIF ESCRIBIR FMARTACT desde REG-FMARTACT Listar los clientes con todos sus pedidos, segn se especifica en el proceso.
FPEDIDOS FCLIENTE

PEJENF02

LPEDCLTE

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 214 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

Teniendo en cuenta que la estructura de los ficheros de entrada es: FPEDIDOS Fichero de Pedidos

Campo DCPEDIDO DCCLINTE DFPEDIDO DFENTREG DIPEDIDO DIDEVLTO DIDESCTO DNFORPAG

Descripcin del campo Cdigo de pedido Cdigo de cliente Fecha del pedido Fecha de entrega final Importe del pedido Importe de devoluciones Importe de descuento Forma de pago (en das)

Tipo C C C C DEC DEC DEC DEC

Long. 5 5 10 (aaaa-mm-dd) 10 (aaaa-mm-dd) 13e2d 13e2d 11e2d 3e

Clasificado por: Cdigo de cliente y Cdigo de pedido. Sin repetidos (un cliente no puede tener ms de un pedido con el mismo cdigo de pedido).

FCLIENTE Fichero de Clientes

Campo DCCLINTE DLRAZSOC DLDOMICL DLPOBLAC DLPROVIN DLTELFNO

Descripcin del campo Cdigo de cliente Razn social del cliente Domicilio Poblacin Provincia/Departamento Telfono

Tipo Long. C C C C C C 5 30 30 20 15 11

Clasificado por: Cdigo de cliente. Sin repetidos (no puede haber dos registros con el mismo cdigo de cliente).

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 215 de 216

CURSO DE FORMACION DE BECARIOS EN

AMBIENTE S/390 ( COBOL CICS DB2 )

LPEDCLTE

Listado de Pedidos por Cliente

FRMSA DEPARTAMENTO DE VENTAS FECHA: DD-MM-AAAA PEJENF02 LISTADO DE PEDIDOS POR CLIENTE PAG.: ZZ9 **************************************************************************************************************************** CLIENTE XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX (1) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (2) XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX (3) PEDIDO FEC. PEDID FEC. ENTRG IMPORTE PEDIDO IMPORTE DEVUELTO IMPORTE DESCUENT ----------- ----------------- ------------------ --------------------------- ------------------------------ -------- ----------------------XXXXX DD-MM-AAAA DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXX DD-MM-AAAA DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXX DD-MM-AAAA DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 XXXXX DD-MM-AAAA DD-MM-AAAA Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 TOTAL CLIENTE...... ZZ.ZZZ.ZZZ.ZZ9,99 Z.ZZZ.ZZZ.ZZ9,99 ZZ.ZZZ.ZZZ.ZZ9,99

(1) (2) (3) PROCESO

Cdigo de cliente, Razn Social y Telfono Direccin Poblacin y Provincia

Listar todos los pedidos de los clientes existentes en el fichero de Clientes. Cada cliente empezar en pgina nueva. Los datos del cliente irn en todas las pginas. Al final del cliente se escribir el importe total del pedido, de las devoluciones y del descuento.

Si un cliente no tiene pedidos, se escribirn todas las cabeceras y, como nica lnea de detalle, el literal ***

CAPITULO 3: PROGRAMACION ESTRUCTURADA

Pgina 216 de 216

Anda mungkin juga menyukai