Para lograr que nuestras variables definidas en COBOL se muestren en la consola de manera efectiva, utilizamos la instrucción display. Este comando es similar a los métodos print o println en otros lenguajes de programación. Aquí te mostramos cómo llevar a cabo esta tarea crucial para la visualización y debugging de tu código COBOL.
¿Qué es la instrucción display y cómo se implementa?
La instrucción display en COBOL permite imprimir en consola el contenido de una variable. Se sitúa dentro de la procedure division de tu programa. Sigue estos pasos para ejecutar correctamente un display en COBOL:
Posiciona el cursor en la columna adecuada dentro de la procedure division.
Escribe display, seguido de un espacio y de un apóstrofe de apertura.
Copia el valor de la variable que quieres imprimir y pégalo junto a una etiqueta describiendo su contenido, concluye con un apóstrofe y un punto.
Por ejemplo:
DISPLAY'El valor de la constante es: ' WSC-CONSTANTES.DISPLAY'El valor de la variable número uno es: ' WSB-NUMERO-UNO.
¿Cómo manejar errores y ajustes comunes?
Durante la programación COBOL, es crucial evitar errores en la jerarquización de las variables. Asegúrate de que definiciones como switches estén correctamente establecidas dentro de la working-storage section para prevenir errores relacionados con niveles jerárquicos.
¿Cómo funciona el enmascaramiento de variables numéricas?
En COBOL, el enmascaramiento ayuda a manipular la presentación de números en la consola, especialmente para omitir ceros a la izquierda. Puedes usar la instrucción move para asignar nuevos valores a una variable o máscara.
Usa MOVE para trasladar un valor a tu variable de interés.
Posteriormente, adopta el display para ver el resultado enmascarado.
Por ejemplo, para mostrar un número sin ceros a la izquierda:
MOVE5TO WSB-NUMERO-UNO.MOVE WSB-NUMERO-UNO TO WSB-MASCARA.DISPLAY'El valor enmascarado es: ' WSB-MASCARA.
¿Cómo ejecutar tu programa COBOL y verificar los outputs?
Para ejecutar tu programa COBOL, utiliza el archivo JCL (Job Control Language) correspondiente. Asegúrate de modificar el archivo con cambios necesarios usando, por ejemplo, el comando change para actualizar nombres y ejecutar correctamente el job.
Guarda el programa en tu editor.
Utiliza sub para submitir el job a la consola de visualización.
Observa los resultados mediante la consola para verificar que todos los despliegues de variables se ejecutaron como se esperaba.
Estas prácticas son indispensables para el desarrollo eficiente en COBOL y mejorarán la forma en que muestras, modificas y analizas datos a través de la consola. Familiarizarte con estas herramientas aumentará tus habilidades en COBOL, haciéndote un programador más competente y hábil. ¡Continúa aprendiendo y explorando más posibilidades en la programación con COBOL!
Magnífico Julio! Si, es de gran ayuda tener varias ventanas abiertas, en el trabajo generalmente siempre tengo las 8 ventanas trabajando (en una abro el spool, en otras codigo que estoy analizando, y en otra verificando los datos que voy a procesar) 😄
Me encantó como has dado con el resultado, al final todo se reduce en manipular los datos y darles edición, si así se requiere.
Me da muchísima alegría seguir tus aportaciones de este curso. Saludos!
con start podemos abrir un nuevo tab pero, ¿Cuál seria el comando para cerrar el tab que abrimos anteriormente?
Hola Rodrigo, con la tecla f3 podemos cerrar la tab anterior.
Saludos.
Carlos, ¿por qué me aparece este mensaje? :l
es el error de module not found
lo que sucede es que estas llamando a un programa que no existe. Puedes revisar en tu carpeta de LOADS el nombre del programa que estas ejecutando.
Dime como te ha ido haciendo esto. Saludos.
Carlos, pero no se supone que cuando ejecuto el JCL que compila y ejecuta este primero me añade el LOAD? porque hice lo mismo con el que tenía de HELLO y no me funciona, no sé si cada vez que quiera ejecuta un JCL debo cambiar la parte el JOBNAME o qué cosas debo tener en cuenta 😥🤔
¿Alguna manera para mover el texto con espacio como lo haríamos normalmente? por ejemplo, que si doy espacio se mueva y no se elimine, si no que solamente me mueva los caracteres hacia adelante, como se hace en estos chats, por ejempo, y si se presiona supr si se elimine y mueva hacia la izquierda?
Por ejemplo en este caso, dar unos espacios después el WSV-NUMERO-1 sin que se me vaya eliminando lo que viene
Cuando me pasa este escenario, solo presiono la tecla INS para poder escribir entre caracteres. Y asi no elimino nada de lo que ya he escrito.
Saludos,
Uffffff, esto era lo que necesitaba, muchísimas gracias!
Tengo como un millon de jobs como se puede limpiar? cada vez que hago un cambio se genera uno... tiene que ser a mano? con D?
Hola, existen diferentes maneras para purgar los jobs del spool, vamos a purgarlos de 2 maneras, la primera es tecleando la letra P debajo de cada columna marcada con S, para eso te muestro mi spool y todos los trabajos que he ejecutado para este ejemplo:
En el extremo izquierdo, tenemos la columna S:
debajo de esa columna y en la fila del trabajo que queramos purgar, vamos a teclear la letra P y después damos Enter:
Con esto purgamos de manera selectiva solamente los jobs que queramos eliminar del spool.
La siguiente manera, va a eliminar en un solo movimiento todos los jobs de la consola de visualización de jobs. Para eso vamos a dirigirnos a la terminal donde esta siendo ejecutada la emulación:
y vamos a teclear en la línea el siguiente comando:
/$PJ1-9999
Despues de teclear este comando, das Enter y en esa misma ventana de emulación, ya puedes ver el siguiente mensaje, indicando que los jcl´s han sido purgados:
Ahora, para verificar esto, en el spool dentro de la terminal 3270, puedes verificar que ya no hay mas salidas de jcl:
Déjame saber como te ha ido aplicando este comando. Saludos! 😃
Una pregunta cuando eliminas un JOB a la vez estarías eliminando un archivo que ya has hecho o algo asi?, saludos 🙋♂️
Cuando hago submit sale esto, creo q es por que no hay nada en la carpeta LOAD, ¿cómo puedo solucionarlo?
Para los que tomen este curso y sigan teniendo el error system 806 revisen bien su codigo Convi.
En mi caso estuve 2 horas batallando con un error de sintaxis que impedía ejecutar la instrucción que manda el codigo a load, afortunadamente hoy tenemos chatgpt para mandar el código a revisión y que nos detecte errores de este tipo.
Siendo justos en la salida del código me indicaba la linea en donde estaba el error. pero no termine de detectar la falla
Profe, revisando el código que creamos, me surgió una duda con respecto a los puntos y a las comas, mis dudas son las siguientes:
En qué momento ponemos uno u otro.
Por qué para la línea de la constante 05 WSC-TEXTO-2 sí se colocó un punto al final y en la 05 WSC-TEXTO-A no se colocó, de qué depende?
Por qué se coloca una coma al finalizar el PIC X(05) VALUE 'COBOL'? Es un error y debió finalizar en punto o es correcto así?
Hola Rodolfo, como estas?
De hecho cada línea siempre que no tenga continuación, la terminamos con punto: .
Por qué para la línea de la constante 05 WSC-TEXTO-2 sí se colocó un punto al final y en la 05 WSC-TEXTO-A no se colocó, de qué depende?
En este caso es porque el campo WSV-TEX-2 pertenece al campo padre WSC-TEXTO-2 y para el campo WSC-TEXTO-A no tenemos campos hijos, aun así, al final de la declaración del campo, estamos colocando el punto
Por qué se coloca una coma al finalizar el PIC X(05) VALUE ‘COBOL’? Es un error y debió finalizar en punto o es correcto así?
Si, debe ser punto, en lugar de la coma, la coma no la usamos, de hecho cuando definimos este programa en clase usamos punto
Saludos, dejame saber como te va con este curso, estaré feliz de ayudarte.
muchas gracias por sus respuestas profe. Me está pareciendo genial el curso. Gracias por el amor y la dedicación que le puso.
Al hacer SUB, me daba el mensaje SYSTEM 806
Estuve editando algunas cosas y ahora me aparece el mensaje "ENTER JOBNAME CHARACTER+ -"
JCLDATO
CONVE
SPOOL
Hola, me parece que tienes al inicio Identification Fivision y es Division. quizá ese es el error.