Compile Link and Go JCL COBOL

JCL es tan parco que no tiene ni logotipo. Igual que COBOL. Así son ellos. No necesitan de frontends ni modernuras atractivas para llamar la atención. Están ahí ocupando su merecido espacio en la industria de la información, y ningun hype-stack les va a mojar la oreja por mucho tiempo.

Pero si voy a poner una foto de los nuevos mainframes de IBM, porque están MUY chulos.

:D

Este minitutorial explica de qué manera se puede compilar y ejecutar un código fuente COBOL en un mainframe de IBM con zOS 110, usando ISPF. Lo que se conoce en el argot anglosajón como COMPILE LINK AND GO.

Por lo pronto esta es la version usada. Cosa importante ya que muchas librerías tienen otros nombres dependiendo de la versión.

Esta es la estructura de datasets que he usado para realizar este ejercicio. Son todos PDS con su respectivo espacio para alojar miembros.

Podemos ver su información usando la barra como comando y después usando la opción info

Todos los datasets relacionados con COBOL tienen record length de 80.

El PDS que va a alojar los archivos fuente me ha quedado algo pequeño con solo 5 espacios. El resto me he curado en salud y los he puesto a 100.

Información del PDS que guarda los scripts JCL.

Importante si os quedais si espacio en un dataset, lo podeis comprimir mientras pensais que nuevo diseño vais a usar cuando se os llene de nuevo.

El programa COBOL que vamos a compilar es un algoritmo simple que calcula si un año es bisiesto en un intervalo dado.

El código se puede encontrar ENLACE A CODIGO

Aunque un profesional de verdad jamas usaría github teniendo ISPF :p

Codificar un programa COBOL, para alguien con experiencia en lenguajes de programación, puede ser relativamente trivial. La complejidad viene dada sobre todo por los datos a tratar. Ya sean registros VSAM o una base de datos DB2.

En este caso es un ejemplo simple para dejar una base sobre la que ir trabajando futuros ejemplos.

Tener un JCL bien formado y un entorno de trabajo funcional no es tarea sencilla si eres nuevo en este campo, por mucho linux que tengas a la espalda.

Este es el código JCL usado para la ejecución del ejercicio ENLACE CODIGO JCL-JOB

Y su implementación en ISPF.

Entrar a describir al detalle cada uno de los elementos aquí formados, puede ser tarea ardua e indeseada, sobre todo por mí. Bromas aparte, merece toda una serie de posts y empezar por ejemplos mas sencillos que este.

En próximos posts pondré algún ejemplo de funcionalidad de JCL para el manejo y edición de datasets, sin entrar en compilaciones.

Lo que si haré, al menos, es comentar que este JOB se compone de varios pasos:

Lanzamos el job con SUB y nos preparamos a depurar como si no hubiera un mañana.

Aquí se puede ver el log una vez superados los tres pasos. Para comprobar la salida nos vamos al sublog de ejecución.

Aquí el resultado de la ejecución correcta.

Me he saltado las horas de búsqueda de errores y documentación que he necesitado para ver funcionar el programa. Como aliciente a los que probéis a hacer pruebas en HOST es saber que casi todos los errores errores que salen a la palestra son triviales tipo formateo del código fuente, características de los datasets, librerías que ahora tienen otro nombre, y cosas del estilo. Nada que no se pueda dominar con un poco de práctica ;)

Saludos