Developer's Diary

25 agosto, 2010

Curso de EasyTrieve I – Primeros pasos

Filed under: Cobol / Jcl / Easytrieve, Programación — jnavero @ 12:21 PM

—- Nos mudamos: http://devthisblog.namocode.es
—————————————————————–
Introducción.

Aunque supongo que el que ha encontrado este articulo, sabe de sobra lo que busca, intentaré explicar todo poco a poco, estos textos, están un tanto basados en mi experiencia profesional así como en la documentación existente de IBM.

Al final de la saga (que no será muy larga) intentaré postear un enlace a un documento en PDF a modo de manual con este curso al igual que el publicado hace algunos días sobre los jcls.

NOTA: Este documento está escrito en Word y he intentado que el formato de los easytrieve sean correctos, pero, las comillas simples y las mayúsculas, Word las pone de forma automática.

¿Qué es un EasyTrieve?

Es un lenguaje de programación orientado sobre todo a la obtención de informes de cualquier tipo. Es sencillo y fácil de programar. A diferencia de los programas batch u online en cobol, estos no requieren de una compilación, ya que se implementan como un paso de un jcl y se ejecutan tan solo lanzando el jcl. Esto hace que sea rápido y fácil de implementar.

Primeros pasos y primer EasyTrieve.

Para crear un easytrieve, debemos hacer un paso de un jcl para poder ejecutar el EasyTrieve. En este paso le pasamos el EasyTrieve como parámetros de entrada. He de decir, que el código de un easytrieve es muy similar a la de un programa en cobol. El siguiente ejemplo, muestra nuestro primer programa en un easytrieve.

//*********************************************************************

//*EASYTRIEVE                                                         *

//*********************************************************************

//EASY1     EXEC PGM=EZTPA00

//STEPLIB  DD DISP=SHR,DSN=RAIZ.LIBRERIAS

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//SYSOUT   DD SYSOUT=*

//SYSDGRPT DD SYSOUT=*

//SYSIN    DD *

*————————————————-

* Primer EasyTrieve

*————————————————-

JOB INPUT NULL

DISPLAY ‘HOLA MUNDO’

STOP

Como podemos ver en este ejemplo, incluimos el paso del jcl con la utility EZTPA00, en función de cada instalación debemos añadir unos steplib u otros. Como podemos ver, este EasyTrieve muestra por pantalla nuestro primer hola mundo.

Comentarios

Para poner comentarios, al igual que el cobol, debe tener un asterisco al comienzo de la línea.

Variables

Son muy pocos los tipos de variables que se usan en un Easytrieve y esto es una de las cosas que las hacen más sencillas.

Tenemos las siguientes variables

Numéricas editadas (Números normales)

Numéricas empaquetadas (Números comprimidos)

Alfanuméricos.

Dentro de cada una de estas variables podemos hacer redefiniciones (algo similar a las estructuras de datos en C) esto lo veremos posteriormente. Veamos la forma de declarar cada una de estas variables con el siguiente ejemplo.

*————————————————-

* Ejemplo EasyTrieve con variables

*————————————————-

WS-VAR1           W    6 A

WS-VAR2           W    4 N 0

WS-VAR3           W    4 N 2

WS-VAR4           W    3 P 0

WS-VAR5           W    3 P 2

JOB INPUT NULL

WS-VAR1 = ‘PRUEBA’

WS-VAR2 = 1234

WS-VAR3 = 12.12

WS-VAR4 = 1234

WS-VAR5 = 12.12

DISPLAY ‘WS-VAR1: ‘ WS-VAR1

DISPLAY ‘WS-VAR2: ‘ WS-VAR2

DISPLAY ‘WS-VAR3: ‘ WS-VAR3

DISPLAY ‘WS-VAR4: ‘ WS-VAR4

DISPLAY ‘WS-VAR5: ‘ WS-VAR5

STOP

En este ejemplo, podemos ver los diferentes tipo de variables asi como la definición de las mimas. Como vemos, hay variables alfanuméricas, numéricas, numéricas con decimales, empaquetadas y empaquetadas con decimales.

Cuando definimos variables numéricas hay que tener en cuenta que si indicamos lugares decimales, del espacio que reservamos coge las posiciones indicadas como decimales. Es decir, en la siguiente definición:

WS-VAR3           W    4 N 2

Reserva 4 espacios de memoria de los cuales 2 son parte entera y 2 partes decimales.

Por otro lado, los campos comprimidos, debemos calcularlos, es decir, si deseamos introducir un campo editado (descomprimido) en un campo comprimido, debemos dividir entre 2 y si es impar le sumamos 1. Vemos un ejemplo de cómo seria.

Suponemos las siguientes variables:

WS-VARN           W    11 N 0

WS-VARP            W     6  P 0

Esto  sería así: 11 / 2 = 5.5 es decir 6 empaquetado.

Hasta aquí el primer capítulo del curso.

En la siguiente entrega veremos redefinición de variables, y el uso de cursores para el acceso a datos db2.

Anuncios

9 comentarios »

  1. Para que funcione lo tuve que hacer con la palabra DEFINE delante de la declaración de las variables.

    DEFINE VAR1 W 6 A
    DEFINE VAR2 W 4 N 0
    DEFINE VAR3 W 4 N 2
    DEFINE VAR4 W 3 P 0
    DEFINE VAR5 W 3 P 2

    Comentario por Nuha — 19 noviembre, 2010 @ 9:27 AM

    • Efectivamente, hay que poner DEFINE si no hay ficheros, creo que lo explico en capitulos mas alante. (No seguí un guión para hacer el tutorial)
      Jejeje

      Comentario por jnavero — 19 noviembre, 2010 @ 2:25 PM

  2. Muchas gracias por el curso.. estoy aprendiendo mucho 🙂

    Comentario por Nuha — 19 noviembre, 2010 @ 9:28 AM

    • Me alegra saber que sirve 🙂

      Comentario por jnavero — 19 noviembre, 2010 @ 2:28 PM

  3. estoy comprobando el manual y no haces mención o no lo he visto a que haya mas adelante expliques lo del define en caso de haber o no fichero. Tampoco entiendo lo de +6 +1 +7 ….

    Comentario por yeyito — 17 enero, 2011 @ 8:18 AM

  4. efectivamente, lo dices en capitulo IV pero tan de pasada qur no hay quien se fije

    Comentario por yeyito — 17 enero, 2011 @ 8:20 AM

    • Sorry, estas cosas pasan cuando apenas se tiene tiempo para hacer una estructura en condiciones.

      Ahora estoy un poco liado y con poco tiempo, lo que quiero hacer es un pdf como los otros que tengo y mejor organizado que es lo que le falta a este curso.

      Ademas el de Oracle debo continuarlo.

      Saludos.

      Comentario por jnavero — 17 enero, 2011 @ 5:28 PM

  5. Buenos días,
    Perdonar por el off topic pero a lo mejor no lo es tanto. En mi empresa, estamos buscando programadores de Easytrieve y no sé si os puede interesar a alguno de los que participáis en el foro o conocéis gente a la que podamos incorporar. Mi correo es pherranz.arroba.gmail.com para que me podáis mandar cv. Gracias y perdón por el offtopic.

    Comentario por pherranzablo — 5 marzo, 2012 @ 9:56 AM

  6. Genial para aprendices. Un saludo

    Comentario por J.C — 17 marzo, 2014 @ 5:03 PM


RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: