Skip to content

Repository files navigation

🏦 Formación Desarrollador COBOL Mainframe — CODEKI | UBA Económicas

Mainframe COBOL JCL DB2 CICS Status

Z/OS Mainframe

¡Hola! 👋 Soy Matías, desarrollador especializado en COBOL, CICS y DB2 sobre Mainframe IBM z/OS. Este repositorio documenta mi camino de aprendizaje con los ejercicios prácticos del programa Desarrollador COBOL de CODEKI | UBA Económicas.

Si te gusta cómo trabajo, me querés en tu equipo o tenés algún consejo para que siga mejorando, ¡te invito a que me escribas! 📝

LinkedIn GitHub Email

"El Mainframe no es viejo, es clásico. Y los clásicos nunca pasan de moda."


Índice


Contexto de la formación

Institución CODEKI | UBA Económicas (Universidad de Buenos Aires)
Programa Desarrollador COBOL Mainframe
Modalidad Full-time, práctica real contra Mainframe IBM z/OS 24/7 (TSO/ISPF, terminal 3270)
Duración 7 meses (Marzo 2025 – Septiembre 2025)
Certificación Certificación Profesional Desarrollador COBOL (UBA)
Credenciales digitales Ver todas en Credly → (incluye IBM Z 101, IBM z/OS Mainframe Practitioner, IBM Z Xplore, COBOL Fundamentals de Rocket Software, entre otras)

Evolución del aprendizaje

1️⃣ Fundamentos COBOL → 2️⃣ Manejo de archivos → 3️⃣ Técnicas avanzadas → 4️⃣ Integración con DB2 → 5️⃣ CICS

TSO/ISPF Panel 3.4 - Listado de datasets

Entorno de trabajo: TSO / ISPF sobre terminal 3270




Del código al Mainframe: ciclo de ejecución

A diferencia de un proyecto que se levanta con docker compose up, en Mainframe el camino del código hasta ejecutarse en el sistema real es otro. El ciclo que seguí para cada programa de este repositorio:

1. Edición del fuente COBOL
   TSO/ISPF → Opción 2 (EDIT) sobre el dataset PDS del proyecto

2. Compilación y Link-Edit
   Se somete un JCL (ver 00 JCLLIB) que invoca el compilador COBOL
   y el Linkage Editor → genera el load module ejecutable

3. Ejecución
   ├─ Batch  → se somete el JCL del programa (JOB) que lee/escribe
   │           datasets QSAM/VSAM y, si aplica, hace consultas a DB2
   │
   └─ CICS   → el programa se define como transacción; se dispara
               desde una pantalla BMS y corre bajo el gestor CICS,
               leyendo/escribiendo contra VSAM y DB2 en línea

4. Monitoreo y diagnóstico
   SDSF → seguimiento del JOB (estado, JES, códigos de retorno)
   y revisión del spool de salida (SYSOUT) ante cualquier ABEND

5. Datos
   SPUFI → consultas SQL ad-hoc contra DB2 para validar resultados
   sin necesidad de correr el programa completo

Este ciclo (editar → compilar/link → someter → monitorear) es el que se repite en cada uno de los programas documentados en las tres etapas de abajo.




📌 Etapa 1: Fundamentos COBOL | COBOL Batch (Ejercicios 1-14)

Código COBOL - Etapa Batch
# Programa Técnicas Aplicadas Tecnologías Conceptos Adicionales
01 PGMSUMA Procesamiento básico COBOL -
02 PGM3CCAB Lectura de archivos COBOL, JCL QSAM
03 PGM2CCAB Corte de control (1 nivel) COBOL, JCL QSAM, SORT
04 PGMSIN12 Corte de control (2 niveles) COBOL, JCL QSAM, SORT
05 PGMCORT2 Corte de control complejo COBOL, JCL QSAM, SORT
06 PGMC1CAB Validación de campos COBOL, JCL QSAM
07 PGMSIN14 Validación + Escritura archivos COBOL, JCL QSAM
08 PGMVACAB Validación múltiple de campos COBOL, JCL QSAM
09 PGMAPCAB Apareo de archivos COBOL, JCL QSAM, SORT
10 PGMTACAB Manejo de tablas (OCCURS) COBOL, JCL QSAM
11 PGMSIN18 Apareo con VSAM COBOL, JCL VSAM, QSAM, SORT
12 PGMIMCAB Generación de reportes FBA COBOL, JCL QSAM, FBA
13 PGMSIN21 Reportes con cortes de control COBOL, JCL QSAM, FBA, SORT
14 PGMVSCAB Procesamiento VSAM + FBA COBOL, JCL VSAM, FBA



🛢️ Etapa 2: Integración con DB2 / SQL Embebido (Ejercicios 15-20)

Código COBOL - Integración DB2
# Programa Técnicas Aplicadas Tecnologías Conceptos Adicionales
15 PGMSIN27 INSERTS a tablas DB2 COBOL, JCL, SQL VSAM, DB2
16 PGMSIN28 Consultas con CURSOR + Reportes FBA COBOL, JCL, SQL DB2, FBA, CURSOR
17 PGMSIN29 Validaciones + INSERT & UPDATE a tablas DB2 COBOL, JCL, SQL QSAM, DB2
18 PGMB2CAB Consultas con CURSOR + Corte de control COBOL, JCL, SQL DB2, CURSOR, ORDER BY
19 PGMSIN31 Apareo de archivo QSAM con CURSOR COBOL, JCL, SQL DB2, CURSOR, QSAM
20 PGMB7CAB Apareo de dos CURSORES con salida FBA COBOL, JCL, SQL DB2, CURSOR, FBA



🔀 Etapa 3: Transacciones con CICS (Ejercicios 21-23)

Código COBOL - Transacciones CICS
# Programa Técnicas Aplicadas Tecnologías Conceptos Adicionales
21 PGMBACAB Envío de texto a terminal mediante CICS COBOL, BMS, JCL, CICS SEND TEXT
22 PGMMECAB Creación de MENU para CICS COBOL, BMS, JCL, CICS SEND MAP / RECEIVE MAP, XCTL, BMS
23 PGMPRCAB Funcionalidad CONSULTA de cliente con CICS COBOL, BMS, JCL, CICS READ DATASET, VSAM en TABLA CICS, COMMAREA, RETURN TRANSID



💡 Estilo de programación

Antes de especializarme en COBOL Mainframe estaba enfocado principalmente en Backend con Java. Esa experiencia previa (+2 años) me acercó a distintos paradigmas de programación y patrones de diseño, por lo que valoro mucho la mantenibilidad y la escalabilidad del código que escribo.

Traje esa "mochila" al Mainframe: mi código COBOL se caracteriza por ser claro, prolijo y bien documentado. Mis programas siguen buenas prácticas de programación estructurada, priorizando modularidad y claridad para que el mantenimiento no sea engorroso, ni para mí ni para cualquier otro desarrollador que tenga que continuarlo.


Ejemplo de código COBOL 1



Ejemplo de código COBOL 2



Ejemplo de código COBOL 3



Leyenda

🔷 Tecnologías principales

  • COBOL: COmmon Business-Oriented Language (lenguaje de programación)
  • JCL: Job Control Language (lenguaje de control de trabajos en Mainframe)
  • SQL: Structured Query Language (lenguaje de base de datos)
  • DB2: DBMS propio de IBM (Mainframe)
  • CICS: Customer Information Control System (gestor transaccional de IBM)
  • ASSEMBLER: lenguaje de programación de bajo nivel (utilizado en el curso para generar los mapas BMS)

🔸 Conceptos adicionales

  • TSO / ISPF: entorno de trabajo en Mainframe z/OS mediante terminal 3270
  • QSAM: archivos secuenciales
  • VSAM: archivos indexados
  • FBA: formato de impresión
  • SORT: ordenamiento de datos
  • CORTE: control de rupturas
  • CURSOR: manejo de resultados SQL
  • BMS: Basic Mapping Support (mapas / soporte visual para CICS)
  • SDSF: System Display and Search Facility (monitoreo de jobs y spool)
  • SPUFI: SQL Processor Using File Input (consultas SQL ad-hoc contra DB2)



Autor

Matías Mazzitelli — Desarrollador COBOL Mainframe | Backend Java

GitHub · LinkedIn · Credly

About

Formación práctica en COBOL Mainframe (CODEKI | UBA): +23 programas batch, DB2 y CICS sobre IBM z/OS.

Topics

Resources

Stars

8 stars

Watchers

2 watching

Forks

Contributors

Languages