Hoy te guiaré en la maravillosa travesía para crear tu primer programa en Cobol: el tradicional "Hola Mundo". Aunque Cobol podría parecer más complicado que otros lenguajes de programación, su estructura clásica nos permite profundizar en la comprensión de los fundamentos de la programación. Una vez que entendamos y dominemos este proceso, podremos explorar más posibilidades en el mundo de la programación Cobol.
¿Cómo configurar el entorno de desarrollo?
Accede a la línea de comandos: Comienza activando las teclas F3 para regresar a la línea de comandos de tu entorno de desarrollo. Este paso es crucial para alojar la estructura de tu programa "Hola Mundo".
Crea el archivo del programa: Especifica la ruta erc cero uno punto platzi punto SRC. Usa v para ingresar al archivo del programa que generaste previamente. Copia su contenido con la letra c seguido de 9999 para asegurarte de copiar todo el archivo.
Borra el contenido innecesario: Cambia la letra c por la letra d para borrar el contenido del archivo, preparando así el terreno para tu nuevo programa.
¿Cómo escribir el código Cobol?
A continuación, te comparto la estructura básica de un programa "Hola Mundo" en Cobol:
IDENTIFICATION DIVISION: En este bloque, define el nombre del programa con PROGRAM-ID. Usa un formato legible, como ajustar el texto hasta la columna 40.
ENVIRONMENT y DATA DIVISION: Aquí puedes definir variables y ambientes; sin embargo, para este simple programa, no usaremos variables.
PROCEDURE DIVISION: Contiene las instrucciones DISPLAY para mostrar el mensaje "Hola, mundo" en la consola, seguido de STOP RUN para finalizar el programa.
¿Cómo compilar y ejecutar?
Carga de archivos JCL: Transfiere los archivos necesarios: uno para la compilación y otro para ejecutar el programa, dentro de la carpeta erc cero uno punto platzi punto jcl.
Verifica y ejecuta el JCL: Edita el nombre del programa en el JCL para que coincida con el del archivo creado. Luego, submitéalo utilizando el comando sub.
Visualiza el resultado: Abre una consola nueva, navega a las utilidades con la opción tres, y verifica la salida del job con la opción ocho.
Recomendaciones finales
Experimenta: Prueba modificando el mensaje dentro del programa y comparte tus resultados.
Repite y pregunta: Si te sientes perdido, no dudes en volver a ver la clase y dejar tus comentarios y dudas. Estaré encantado de ayudarte.
Este primer paso quizá te haya parecido complicado, pero no te desesperes; cada pequeña dificultad te lleva a ser un mejor programador. Sigue adelante y disfruta del proceso de aprendizaje. ¡Vamos a la siguiente clase y sigamos creciendo juntos en el mundo de la programación Cobol!
Recordando clases pasadas nosotros tenemos 3 librerías, cada una de un tipo distinto (src, jcl y load)
La opción 4 dentro del panel de utilidades nos permite ver los archivos en cada librería, escribiendo la ruta ('Miembro.librería.tipo').
A la librería SRC le corresponde el archivo que contiene la lógica del programa
A la librería JCL le corresponden (por lo que se vio hasta ahora), dos archivos, un compilador y un ejecutor.
A la librería LOAD le corresponde el resultado de la compilación.
1) Lo primero es entrar al archivo de compilación ubicado en nuestra carpeta de JCLs y utilizar el comando SUB o SUBMIT en la línea de comandos.
Es importante que el nombre del programa que deseamos ejecutar este correctamente escrito en el archivo de compilación, así como la ruta donde buscarlo y donde enviar el archivo resultante
2) Dar un paso atrás y entrar al archivo de ejecución, en este usaremos el mismo comando de SUB o SUBMIT
En este caso también es importante que el nombre del programa corresponda al mismo que se compilo, y que la ruta donde vaya a buscar el archivo, sea donde el archivo de compilación la alojó
3) Volviendo al menú de utilidades podes ingresar la opción 8 (OUTLIST) para mostrar la salida del job (Recordar utilizar el comando ST * para mostrar todos los JOBS)
Este ha sido un gran gran gran resumen Leonardo 😃
Cuéntame, como te esta yendo en este curso, estoy al pendiente de cualquier duda o comentario que tengas. Saludos.
Gracias por el resumen, me sirvió
Para actualizar usa REF = refresh en la lista de programas que aloja a Prueba y Hola.
Puedes copiar un archivo existente como prueba copiando las lineas con C9999 y en Command: cre (create) "nombre de archivo". Luego en el archivo creado borras las filas con D.
Me sirvio regresar a las 1eras clases donde se definen las divisiones que se utilizan siempre en COBOL.
Buen resumen de esta clase René.
Si, siempre puedes volver a las clases iniciales; veo que llevas un buen progreso. Esta genial!
Buenas Carlos, me va encantando el curso. Me encuentro nuevamente con un problema con el emulador del cual no eh encontrado solución.
Cuando entro en View Mode a un archivo luego no me permite salir de él, o por lo menos no se como.
Cuando presiono la tecla F3 me aparece lo siguiente:
No veo la manera de salir, con la tecla F2 retrocedo pero solo unos pasos.
Al apretar F3, empieza a descontar el numerito hasta volver al archivo.
Desconectarme de la sesión desde el menú superior tampoco ayuda porque siempre me reconecta dentro del archivo.
Estoy estancado aquí.
Hola Leonardo, ¿Cómo estás? Que genial que te vaya agradando este curso 😃
Cuando presionas F2el entorno de desarrollo abre más terminales, entonces como te ha sucedido, cuando tecleas F3 comienzas a cerrar las terminales que abriste previamente, llegando al punto de partida ++(que es el archivo que no te deja guardar)++, pero no te preocupes, te comento que cuando entras en modo view a editar un archivo, solamente teclea en la línea de comandos la instrucción CANCEL o abreviadamente CAN.
++Pero OJO++: ++si haces eso se perderán tus cambios. Así que te voy a comentar una alternativa más al comando CANCEL.++
EJECUTANDO SOLAMENTE EL COMANDO CANCEL
Este es el modo de salir cancelando la edición del archivo, tecleo CAN en la línea de comandos y después doy Enter:
Haciendo esto, ya estoy en mi directorio y puedo teclear F3 sin problemas:
COPIANDO A PORTAPAPELES EL CONTENIDO DEL ARCHIVO Y DESPUES EJECUTANDO EL COMANDO CANCEL
2. Ahora la siguiente solución, para evitar que pierdas el trabajo que hayas efectuado hasta el momento:
Ingresé en modo view a este archivo, lo edité y teclee ++F3++, en color amarillo el sistema me indicó que no es posible guardar en modo view, pero tengo muchas líneas, -y detestaría perder todo eso que ya escribí-, así que copias todo el contenido del archivo tecleando en la primer línea el comando ++C99999++ :
y después en la linea de comandos escribo CUT(para cortar y almacenar en portapapeles esas líneas que recién corte) y después de esto tecleo Enter ++(el sistema me indica que copio la cantidad de líneas que conformaban ese archivo)++ en mi caso 21 líneas:
Y ya para terminar tecleo CAN para poder salir de este archivo y como quiero editar este mismo archivo, ingreso en modo Edit, tecleando E en la fila que le corresponde al archivo:
Ahora, dentro del archivo, escribo PASTE en la línea de comandos para pegar las líneas que copie y que se encuentran en el portapapeles y en la columna de comandos tecleo A que hace referencia a la palabra After para poder pegar el contenido:
Doy Enter, y listo, pude recuperar la información y ahora si podré guardar el archivo:
Estoy más que consciente que desplazarse por el entorno de desarrollo al inicio puede generar algo de confusión, peor te garantizo que después de practicar un poco y familiarizarte, podrás hacer y deshacer dentro del entorno de una manera muy natural.
Sigo pendiente de cualquier duda o comentario que tengas en esta clase y en futuras y pasadas clases también.
Saludos 😎
Woo en serio no lo creía cuando comenzamos a trabajar con esta consola, porque los editores hoy en día son mucho más avanzados en ofrecer una mejor DX, sin embargo poco a poco uno le agarra el hilo y la emoción por seguir aprendiendo y descubriendo que más se puede hacer va en creciente.
Aquí modifiqué el 'Hello World' por otro mensaje.
Hola Hugo, genial, veo que has modificado con éxito el mensaje a desplegar, y te felicito, por lo siguiente:
porque como bien dices, es una consola algo ++++"diferente"++++ a lo que IDE´s actuales ofrecen, sin embargo, en la industria trabajamos con este sistema, por lo que diseñe el curso para trabajarlo como lo hacemos día a día.
Y así ofrecerles la experiencia inmersiva 😁
Entonces que te puedas desplazar por ISPF/TSO que es la emulación con la que estas avanzando a través de este curso, ya es un plus muy muy grande. 🚀
Adicional a que te vayas familiarizando con el desarrollo, compilación, linkedición y visualización de tus ejecuciones, te hace tomar esa experiencia y familiaridad con este universo que es COBOL.
Entonces que genial que vayas avanzando. Cuéntame, como te vas sintiendo que con gusto estaré resolviendo todas tus dudas!
Porque el usuario herc02 pudo ejecutar el hola mundo si no estaba logeado?
Hola Edgar, ¿te refieres l nombre interno del job JCLHOEX?
¿El código donde dice HERC0002?
Si es así, ese que vemos es el nombre del JCL que es tomado por el JES, no el nombre del usuario HERC02.
Saludos, estará genial saber como vas! Sigo al pendiente.
Si era ese nombre, me parecía curioso. Le cambie el nombre a HERC0001 y también funciono, veo que es como solo un nombre. Gracias.😁
Los que están con WC3270 puede presionar Ctrl izquierdo + scroll para aumentar la terminal
Yo estuve aprendiendo COBOL con OpenCOBOLIDE y realmente es muchísimo más fácil. lo que no sé es si se use ese programa en los bancos y demás o si el que se usa es este.
No sabia que desde ese entorno también se podía hacer submit, creía que era algo propio del ControlM...entiendo que controlm es un producto independiente, es como con fin de gestionar fácilmente los jobs y sus rutas?
Hey Tony. ¿Cómo estás?
Si, es correcto, desde MVS que es el sistema con el cual estamos llevando este curso puedes SUBMITIR los jobs, esto es de suma importancia porque aunque no tiene incluido CTRL-M, que es uno de los diferentes scheduler's o calendarizadores de procesos, podemos ejecutar nuestros programas sin mayor problema 🗓
Y como bien comentas, CTRL-M es un producto independiente, que funciona para calendarizar los JCL's y estos sean ejecutados de manera automática, dependiendo la fecha y hora programadas, teniendo sucedencias y precedencias de ejecución. Es todo un tema a tratar también 😃
Como dato curioso, donde me encuentro trabajando ahorita no contamos con CTRL-M.
Cuéntame, como te esta yendo en este curso, estoy más que feliz de leerte y ayudarte con las dudas e inquietudes que te vayan surgiendo!
Quería "afianzar" mis conocimientos en cobol, puesto que trabajo en BBVA en esa área hace 4 años...pero no conozco un entorno diferente a 3270 zOS, con changeman, controlm, DB2. Y pues aquí muestras uno diferente que sirve para tener un contexto, seria genial el de Cobol orientado a objetos, me genera mucha curiosidad como es su funcionamiento y si corre con un mainframe, y en que entorno se desarrolla y compila.
Hola. Al intentar acceder con V (view) en HERC01.PLATZI.SRC me sale el mensaje de : data set in use. ¿Alguien sabe a qué se debe?
Creo que estamos solos querida, llevo dias esperando una respuesta, y nada
Hola, según veo la V la estas poniendo junto a PUB010. Debes ponerla al principio de la linea, bajo la columna de la letra S. Espero sea de ayuda.
Hola, al despues de hacer SUBMIT no me aparece el CODE 0000, sino que me sale MAX COND CODE 0013
que hago?
¿Cómo estas Jorge?, me regalas una pantalla de tu JCL 😃, muchas veces ha sucedido que es un error de sintaxis. Pero para decirte con precisión me va a ayudar mucho ver como esta tu código.
Saludos, sigo al pendiente de este tema.
Hola Carlos;
En la version libre wc3270, como puedo acceder al sgte. menú?
Como estas Hugo?
En el siguiente menú:
-File, después das clic en submenú File Transfer:
Saludos, déjame saber como te esta yendo en este curso, sigo al pendiente.
😎
Hola prof. Carlos;
Gracias por su pronta respuesta; pues fíjese que me salió el programa Hola Mundo, es emocionante, espero seguir aprendiendo;
¿Qué significa 0013 después del SUBMIT?
Hola Renzo, como te va?
Se trata de un error, para verificar en que parte del código ha sucedido este error, es necesario ingresar a la consola de visualización de JOB's (spool).
Generalmente es por un error tipográfico, para poderte ayudar y saber con precisión que ocurrió, coloca aquí un pantallazo de tu programa cobol: HOLA
Saludos, sigo al pendiente!
sí, era un problema tipográfico,
escribí : IDENTIFICATION_ID
cuando era : IDENTIFICATION-ID
Hola Carlos, ya lo hice! pero como puedo colocar la imagen del programa aqui? Gracias de antemano
Hola
Primero se necesita sacar una captura de pantalla y guardarla en el ordenador.
Luego ya se puede hacer click en el panel de comentarios por que se necesita activarlo y luego arrastrar la imagen desde la carpeta donde esta guardada hasta el panel, como en el GIF que se muestra a continuación:
!subir imagenes
Este método no funciona con imagenes en formato GIF o WEP.
.
Otra forma es subir la imagen a un sitio como Imgur y usando la herramienta de adjuntar imagen donde se debe copiar la dirección de enlace dentro de los paréntesis, también se puede usar ctrl +shif+ i .El formato es el siguiente:

.
Hay que asegúrarse de que la dirección URL contenga la dirección correcta con el formato de la imagen como .jpg .png
Profesor Carlos tengo una duda en la verificación de los pasos J0B me salió RC.0004 entonces no finalizo correctamente.
Hola Norida, ¿qué tal? Si finalizo correctamente, los códigos de retorno 00 o 04 son válidos. Solamente el 04 te indica que tu programa contiene warnings, los cuales no impiden el correcto funcionamiento del programa.
Mira, te dejo unas pantallas de un warning que salió en mi código, y te digo como buscarlo en el spool, para saber que línea o líneas (en mi caso fue solo una) es / son la(s) que esta(n) devolviendo ese mensaje:
Dentro del SPOOL, en el paso de compilación, que es el delineado en color rojo y que hace referencia al PROCSTEP IKFCBL01, me devolvió un RETCODE = 04
Y desplazándome aquí mismo en el SPOOL hacía abajo, en el área de desglose de mi programa veo la línea “culpable”, también veo el mensaje de warning (en este caso es IKF4008I-W), y la descripción de la acción a tomar en este caso (en este caso solo fue omitido el verbo TO por el compilador):
Ahora, si quieres indagar como corregir ese warning / error, seleccionas el mensaje (en este caso es IKF4008I-W), y lo buscamos en nuestro navegador favorito -he de decirte que es poca la información que podemos encontrar para ciertos warnings en internet-:
Y yo seleccione el segundo enlace, el correspondiente a archive(.)org, para llegar al match de mi mensaje teclee ctrl + F:
Sigo pendiente de cualquier comentario que tengas al respecto 😀
Hola, así me quedó:
Lo que entiendo hasta ahora:
En nuestra carpeta SRC creamos el código fuente de nuestro 'HOLA, MUNDO'.
Para ejecutarlo primero lo compilamos, lo que entiendo nos genera un código objeto que a su vez debemos ejecutar con un JCL.
Justamente en hacemos submit como con el compilador pero ahora en nuestro JCL y así es como se ejecutan los programas.
La salida del programa la podemos ver la salida de los trabajos de nuestro entorno de trabajo.
Mi primer Hola en cobol :)
Magnífico Norida 🙌👏
Saludos, Cree varios archivos de prueba con nombres parecidos. Intente eliminarlo y pude, escribiendo “d” antes del nombre, ejecutando y luego ejecutar ref (refresh) para refrescar.
Si, justo así Néstor. 😎
Saludos, sigo pendiente de conocer como vas en este curso!
Hola acá dejo el reto que propuso el profesor Carlos. La imagen describe el curso tal cual!!
Genial Gonzalo, cuéntame como vas avanzando en este curso, estaré feliz de leerte y ayudarte cuando lo requieras!
Después de unos problemas de sintaxis, lo logré.
Yo estoy fascinado con los lenguajes de bajo nivel.
Excelente Pedro 🙌
Lo logre, mi primer hola mundo en cobol
Magnífico, cuéntame como te esta yendo en este curso, y si tienes dudas estoy pendiente para resolverlas lo más pronto posible. Saludos!