miércoles, 26 de enero de 2011

Principiantes COBOL

Hola hola! Cansado de leer manuales de IBM en inglés? Harto de descargarte traducciones automáticas de google? No busques más!

En esta ocasión os traemos el "manual de COBOL para principiantes"!
El único, el inconfundible, el del Consultorio Cobol!

Habrás visto más, pero no mejores. Bienvenido.

Manual de COBOL para principiantes

1. Esquema de un programa cobol.
  • Secciones en que se divide todo programa cobol.

2. WORKING-STORAGE: definiendo variables.
  • Cálculo de longitudes.
  • Visualización de campos.

3. PROCEDURE DIVISION: proceso del programa.
  • Informando variables.
  • Inicializando campos.
  • Bucles y condiciones.

4. Ejemplo 1: Leer de SYSIN y escribir en SYSOUT.
  • JCL que ejecuta un programa sin DB2.
  • Programa que realiza un ACCEPT de la SYSIN y un DISPLAY de la información recibida para mostrarla por SYSOUT.

5. Ejemplo 2: leer de SYSIN y escribir en fichero.
  • JCL con 2 pasos: borrado de ficheros; ejecución de un programa sin DB2 con fichero de salida.
  • Programa que realiza un ACCEPT de la SYSIN y escribe la información recogida en un fichero de salida.

6. Ejemplo 3: leer de fichero y escribir en fichero.
  • JCL con 2 pasos: borrado de ficheros; ejecución de un programa sin DB2 con fichero de entrada y fichero de salida.
  • Programa que lee del fichero de entrada, formatea los datos, y escribe en el fichero de salida. Uso de las sentencias SEARCH y EVALUATE.

7. Ejemplo 4: generando un listado.
  • JCL con 3 pasos: borrado de ficheros; ordenación de un fichero, ejecución de un programa sin DB2 con fichero de entrada y fichero de salida tipo listado.
  • Programa que escribe un listado. Incluye control de número de líneas, paginación, etc.

8. Ejemplo 5: programa con DB2.
  • JCL que ejecuta un programa con DB2.
  • Descripción de la tabla DB2 a la que accederemos a través de una SELECT.
  • Programa con DB2 que accede a una tabla de nuestra base de datos a través de una SELECT. Control del SQLCODE.

9. Ejemplo 6: programa que llama a otro programa.
  • JCL que ejecuta un programa sin DB2.
  • Programa que llama a una rutina.
  • Rutina que calcula la letra del NIF a partir del número.

10. Ejemplo 7: ficheros VB (longitud variable)
  • JCL que ejecuta un programa sin DB2 y crea un fichero de longitud variable.
  • Programa que lee de un fichero de longitud fija (FB) y escribe un fichero de longitud variable (VB).

11. Ejemplo 8: ficheros VSAM
  • JCL que ejecuta un programa sin DB2 actualiza un fichero VSAM.
  • Programa que lee de 2 ficheros GDGs y graba en un fichero VSAM existente.

Continuará...

47 comentarios:

Anónimo dijo...

Hola, me ha gustado el diseño de esta web. Estoy empezando en Cobol y a ver si podéis de paso que ampliáis la sección explicar el uso de FILLER y REDEFINES en la declaración de variables.
Un saludo.

Tallian dijo...

Sin problema, marchando una de REDEFINES.
Te agradecería mucho mucho si te hicieses seguidor (aquí on facebook) o al menos dejases un nombre :D

Talli.

Tallian dijo...

Añadido en "WORKING-STORAGE: definiendo variables"
(http://consultoriocobol.blogspot.com/2011/01/working-storage-definiendo-variables.html)

Anónimo dijo...

hola te estoy siguiendo...pero ya tengo la teoria pero k uso para programar en cobol?? k editor uso ??? y k es cics??? es un editor de cobol??...

Tallian dijo...

Una introducción a ¿Qué es CICS?:
http://www.consultoriocobol.com/2011/04/cics-ese-desconocido-transaccional.html

Anónimo dijo...

Tienes todo esto en un pdf?
Gracias,
Ana

Tallian dijo...

Cuando esté terminado el manual (faltaría al menos un ejemplo del uso de ficheros VSAM) crearemos un pdf y lo colgaremos en Lulu como hicimos con JCL y SORT : )

pjd dijo...

Hola.
Estoy experimentando con el visual cobol de Microfocus, tratando de manejar db2 mediante sentencias sql y me esta dando un error con la sentencia INSER.
El error que me dá es el siguiente:
Error 1 COBCH0801 : SQL0206N "WASEG" no es válida en el contexto donde se usa. SQLSTATE=42703
WASEG es una variable definida en el programa cobol para usar en la cláusula VALUES
No se si tengo un problema de sintaxis o bien de la configuración del proyecto para que enlace con db2
Agradezco todos los comentarios y aportes

pjd dijo...

La sentencia completa sql es la que sigue, donde he comentado algunas de las variables para ver si el problema estaba en algún nombre:
EXEC SQL
INSERT INTO polizas
(
* POLIZA,
* PRODUCTO, POBLACION, DIRECCION, ZONA, HOGAR, HORARIO,
* DIACOBRO, OBSERVACIONES, TELEFONOS, NOMBRE, DNI,
ASEG, FORMPAG)
VALUES (
* WPOLIZA,
* WPRODUCTO, WPOBLACION, WCALLE, WZONA, WHOGAR, WHORARIO,
* WDIACOBRO, WOBS, WTELS, WNOMBRE, WDNI,
WASEG, WFORMPAGO)
END-EXEC.

Tallian dijo...

He visto que cuando da en el VALUES, puede ser porque el nombre de l avariable coincide con el nombre de una columna de la tabla.
¿Puedes probar a cambiar el nombre de la variable?

Un saludo.

pjd dijo...

Hola Tallian:

Gracias por tu consejo. Lo voy a probar y luego te cuento.

pjd dijo...

En realidad los nombres son distintos porque las variables comienzan con "w" aunque el resto del nombre sea igual.
Voy a probar igual pero no me parece que sea eso.
Luego te comento.
Gracias igualmente. Si se te ocurre alguna otra cosa para probar me escribes

Killbill13 dijo...

hola felicitaciones por este gran sitio , mi consulta es si existe alguna informacion para integrar cobol con una base de datos postgresql , mi sistema corre sobre acucobol y no se que tipo de licencia debo adquirir para poder usar base de datos con mis sistemas

gracias por su atencion y ayuda
saludos desde Ecuador

pjd dijo...

Hola:
¿Alguien tiene experiencia en utilizar el Cobol de Cobos en Eclipse?
He bajado e instalado todo pero no logro que compile.
Creo que tengo un problema en la configuracion del workspace.
Si alguien sabe de algún manual o tutorial sobre el tema le agradecería mucho si me lo indican
Saludos
Pablo

Hugo dijo...

Vengo del Cobol en modo texto y quisiera pasarme a programar en Cobol bajo Windows. Llevo tiempo mirando y muchas dudas:

- Compilador adecuado.
- Manuales de uso del entorno, no del lenguaje en sí.
- Licenciamiento: Quisiera probar concienzudamente el entorno/compilador adecuado antes de comprar nada. Y un mes no me llega.

Alguna sugerencia?
Muchas gracias.

Steka88 dijo...

donde puedo descargar el framework de cobol para instalarlo en mi maquina? Tengo win7 started... gracias! y la pagina es muy completa, sigan asi! Saludos!

paginas web cordoba dijo...

sabeis de donde puedo sacar el compilador para ubuntu 12.04?

Estaria muy muy agradecido, gracias.

pjd dijo...

Hola.
He descargado e instalado PikeCobol pero cuando voy a compilar el programa me salta un error 53 archivo no encontrado.
Yo creo que el programa intenta usar algún dll del Windows que no encuentra. Yo estoy usando Windows XP.
¿Alguna sugerencia?
Gracias

Tallian dijo...

Por mi parte decirte que nunca he usado PikeCobol (solo entornos mainframe) así que me temo que no puedo ayudarte : (

GURKO dijo...

que bueno leer un manual sin tantos "ordenador", estareís, y demases... jejeje gran aporte...

Tallian dijo...

Muchas gracias GURKO : )

matias bellani dijo...

muy bueno estoy recien empesando espero que no se me haga muy dificil desde ya gracias por tu aporte

Alejandro Hernàndez dijo...

Muchas Gracias!! Espero saques más temas y/o ejemplos para orientarnos en este lenguaje de programación. Saludos y gracias!!

Anónimo dijo...

Hola a todos, tengo una duda sobre el compilador de cobol II, para que acepte FUNCTION, ya que el actual compilador me da error ¿podéis pasarme uno que acepte las funciones de cobol II?

Anónimo dijo...

No nos vendría mal a más de uno que se siguiera actualizando este consultorio... ¡¡ buen trabajo !!

Loboc dijo...

Hola Anónimo. No siempre disponemos de todo el tiempo que nos gustaría para dedicar al consultorio. Esto es algo que hacemos sin ánimo de lucro y dedicando horas de nuestro tiempo libre. Siempre estamos abierto a que cualquier persona que desee colaborar nos envíe un post y lo publicaremos en su nombre. Un saludo.

anthony antho dijo...

MUY BUENA LA PAGINA PARA PERSONAS QUE SE ESTAMOS INICIANDO EN EL LENGUAJE COBOL PERO ESTARIA BUENO QUE SE ACTUALIZARAN A LO VISUAL COMO EL ACUBENCH, LA VERDAD HAY MUY POCA INFO SOBRE EL COMPILADOR Y ESTA MUY BUENO...!

Loboc dijo...

Muchas gracias! El principal motivo para que todos nuestros ejemplos estén en ISPF/TSO es que la mayoría de clientes del sector todavía lo utilizan, pero está claro que los entornos visuales más modernos ofrecen grandes ventajas.

Juan José Cerezo Mata dijo...

Yo lo vi hace años, (14 años exactamente), bajo OS/2 warp 4.0, Cobol Micro Focus y como entorno grafico de desarrollo (las ventanas) Dialog System, vamos que esto ha cambiado un monton fijo, supongo que ahora el el entorno grafico se creara desde visual studio o swing dependiendo del IDE de desarrollo sobre el que instalemos Cobol Micro Focus no?

Juan Apastillado dijo...

HOLA UNA VES MÁS, YA HABIA ESCRITO UN COMENTARIO PERO NO LO PUDE PUBLICAR, ESPERO QUE AHORA NO ME FALLE.
BUENO DESPUES DE APROXIMADAMENTE 15 AÑOS DE NO PROGRAMAR PUES DELIBERADAMENTE HABIA BORRADO MI MEMORÍA, EL GUSANITO ME VUELVE A PICAR, Y NI SIQUIERA PENSE QUE SE PUDIERA PROGRAMAR EN PCs, YA QUE LO HACIA EN MAQUINAS GRANDES, Y AQUI ESTOY COMO PRINCIPIANTE Y CON POCO TIEMPO LIBRE, LE VOY A ECHAR MUCHAS GANAS Y ESPERO NO PERDER ESTA PAGINA ASÍ COMO TAMPOCO LA AYUDA DE TODOS LOS QUE COLABORAN CON LA MISMA.
DE ANTEMANO MUCHAS GRACIAS.

Henry dijo...

Hola a todos. No soy programador, agradeceré su ayuda para solucionar el siguiente problema
Cobol I/O error 39,03 on MOVREP file C:\DATOS\MOVREP
Cobol I/O error at line 862 in ST 7100
Cobol traceback at line 260 in ST7000
Cobol traceback at line 278 in ST0000
Saludos y gracias

Rafael Gómez dijo...

Excelente iniciativa...me viene muy bien para repasar y aprender. El ejemplo 1 lo cargue en Micro Focus Mainframe Express 3.1 y anduvo muy bien(salvo un toque en el JCL).

Unknown dijo...

Este comentario ha sido eliminado por el autor.

Unknown dijo...

Buenas noches,

De verdad agradezco lo que hacen en este grandioso blog, espero no pierdan el impulso y que todos podamos seguir creciendo en conocimiento. Gracias de nuevo.

rodrigo ots dijo...

Hola buenas tardes soy nuevo en esto y me gustaría saber si me podrías pasar un enlace para descargarme COBOL así puedo practicar con el manual, desde ya muchas gracias por su tiempo

Unknown dijo...

Excelente tu pagina, podrías poner ejemplos de programación con SO390, gracias.

Bob dijo...

Excelente tu pagina, podrías poner ejemplos de programación con SO390, gracias.

Yonaider Salazar dijo...

Buen día, muchas gracias por todo el material, muy didáctico. Vi cobol hace mucho, por obligación -ahora por motivación propia- estoy desoxidando el cerebro, necesito varias orientaciones básicas por favor. Hace mucho no programo.
Transcribir un archivo fuente de los famosos “holamundo.cbl”, intento compilar con RMCOBOL y me arroja: “Open error for file”. He cambiado el archivo de directorio, incluso al raíz, a ver si lo localiza y nada. Si me pueden orientar, gracias.
Por otro lado recuerdo que se podía compilar completamente, si mal no recuerdo, en dos pasos. El RMCOBOL produce un .COB, necesito compilar completamente, obtener un .EXE. ¿Con que compilador puedo?
También necesito un enlace P2P para descargar AD/CD z/OS 1.10 por favor, que sea seguro que se descarga el paquete completo, pues mi equipo tarda mucho en descargar y es un problema después descubrir que el fichero está dañado, de ser posible.
Por todo gracias de antemano.

Yonaider Salazar dijo...

Henry, encontre esto por si sirve. Para el primer error

http://web.cse.ohio-state.edu/~sgomori/314/filerr.html

Tallian dijo...

Muchas gracias Yonaider :-)

Quique dijo...

Muy interesante tu trabajo. :-)

Tallian dijo...

Gracias Quique!

Roberto Rosas dijo...

Buenas, agradeciendo tu post que sirve en gran medida para adentrarse a este mundo de cobol y mainframes. Asi mismo quisiera ver la posibilidad de que me recomienden algun compilador que funcione bajo Win 7/64; intente con visual cobol de microfocus pero es de licencia igual intente con OpenCobol IDE pero me saltan errores, alguna otra opcion al respecto ?... gracias

Miguel martinez marcos dijo...

Hola, soy principianete en cobol, sabeis donde me puedo descargar de forma gratuita z/OS ?

Martha Lopez dijo...

tienes todo estos manuales en PDF? Gracias

enchegar dijo...

Hola soy Miguel.
He trabajado con Oracle y MySQL y he accedido a ellas desde php y java.
Tengo conocimientos de SQL y Cobol pero no he trabajado con DB2 y Cobol.
Me he instalado en mi ordenador sobre W10 el DB2 y OpenCobol pero no se como precompilar, compilar y ejecutar los programas Cobol en el ambiente de la Base de datos.
Si alguien conoce algún manual (en español) de como realizar paso a paso estas operaciones , se lo agradecería.
Un saludo.

ANGIECITA dijo...

Me encanta el contenido, por favor actualicen mas para principiantes