Lenguaje de Programación
RPG
RPG son las siglas de:
En inglés, Report Program Generator programming language o lenguaje de programación RPG.
El lenguaje de programación RPG es un lenguaje de programación desarrollado por IBM en 1964 y diseñado para generar informes comerciales o de negocios. En 1960 RPG es creado para la familia 1400, pero hasta 1964 no es lanzada la versión final para la IBM 360. Ha sido actualizado en diversas ocasiones, dando origen a las diferentes versiones del lenguaje. Una de las últimas actualizaciones que se ha realizado hasta la fecha es el RPG/IV en 1995, disponible con los ordenadores IBM de la familia AS/400. Posteriormente, en 2001, y con la aparición de la versión 5 del OS/400, surgió una nueva modificación sobre el lenguaje, soportándose a partir de ese momento la programación en formato libre. Así mismo, se desarrollan las funciones incorporadas que sustituyen a muchos de los antiguos indicadores y códigos de operación. Todas estas incorporaciones permiten que el RPG se convierta en un lenguaje mucho más legible, claro, flexible y moderno.
RPG es como el iSeries AS/400, ahora i5, en sí mismo uno de los secretos mejor guardados de IBM, ya que parece que lo estima tanto que casi no habla de él.
En la historia de los Lenguajes de Programación ha habido de todo, y RPG es un lenguaje "propietario", inventado por IBM para facilitar la programación de tareas de negocio en las Empresas. La historia del lenguaje RPG está llena de continuas mejoras y versiones, y la realidad ahora es que es la base (junto con Cobol) de los programas que funcionan en las Empresas que funcionan.
En los últimos años, IBM ha mejorado en mucho RPG, ahora llamado RPG IV o RPG ILE, dotándolo de muchas opciones y funciones, mejoras en el compilador y creando el entorno ILE para facilitar la programación más estructurada y la combinación de múltiples lenguajes, como Java, C++, etc.
Un ejemplo de la flexibilidad y potencia de RPG es RpgForWeb, un entorno que facilita la creación de Aplicaciones Web usando RPG IV y el estándar de la Web; html y javascript.
Las Aplicaciones se pueden desarrollar con muchos lenguajes, incluso puede ser bueno combinar varios lenguajes en una Aplicación, y en la mayoría de las ocasiones no importa tanto el lenguaje con el que está desarrollada una Aplicación como el conocimiento del medio y la inteligencia del programador.
Así, que no importa mucho todo esto, hay muchos lenguajes pero en el entorno del mundo de los negocios los líderes (al menos en el entorno IBM) son RPG y Cobol.
En CPI Software creemos que RPG vale tanto como cualquiera, así que -porqué no- también para Internet. Por eso existe RpgForWeb, para que los programadores RPG hagan también Aplicaciones Web como nadie.
RPG es, probablemente, el lenguaje de programación más extendido en nuestro entorno (AS/400, iSeries e i5). Como heredero directo de la familia de ordenadores S/3x de IBM, y dada la política de compatibilidad con versiones anteriores seguida por IBM (gracias a la cual, programas diseñados para ejecutarse en un S/34 hace aproximadamente 20 años, continúan ejecutándose sin problemas en los modernos i5), RPG se ha convertido en el lenguaje por excelencia para los ordenadores de la gama AS/400, iSeries e i5.
Poco, o nada, queda ya del antiguo RPG II, con su ciclo lógico, sus rupturas por nivel de control (cabecera, detalle y totales), su absoluto control por medio de indicadores, etc. Y pocos lenguajes habrán experimentado una transformación tan importante en los últimos años como RPG.
Actualmente RPG es un lenguaje orientado a la gestión, con absoluta integración con bases de datos relacionales (DB2), que soporta SQL embebido, permite la ejecución de módulos diseñados en otros lenguajes (dentro del entorno integrado de lenguajes de IBM - ILE o Integrated Language Environment-), puede ser invocado por métodos Java, C, C++, etc.
Así pues, y después de describir brevemente el origen y la situación actual de RPG, pasaremos a analizar un poco más a fondo el lenguaje de programación y su estructura. Para ello, nos centraremos en la estructura y sintaxis de RPG/IV.
La estructura de un programa RPG está organizada por tipos de especificaciones (o instrucciones). En un programa RPG, encontraremos habitualmente, cuatro tipos de especificaciones:
1.- Especificaciones de Control:
Irán siempre al inicio del programa, y en ellas indicaremos algunos parámetros generales de definición del programa.
2.- Especificaciones de definición de ficheros:
Van inmediatamente detrás de las especificaciones de control y en ellas definiremos todos los ficheros, tanto de base de datos como de dispositivos (pantalla, impresora, etc.) que utilizará nuestro programa, así como el tipo de utilización de los mismos (Entrada, Salida, Entrada/Salida) , forma de acceso (secuencial, por claves, etc.) y otra serie de valores relativos a dichos ficheros y cómo nuestro programa manejará los mismos.
3.- Especificaciones de descripción de datos:
En ellas describiremos todos aquellos datos adicionales (no incluidos en ficheros), tales como variables de programa, series, punteros, estructuras de datos, etc.
4.- Especificaciones de cálculo:
Son las instrucciones ejecutables propiamente dichas. En ellas definiremos tanto las instrucciones de control de flujo del programa como las operaciones matemáticas, de acceso a datos, de lectura y escritura en ficheros y dispositivos, llamadas a otros programas o procedimientos, etc.
En un momento en que parece que todas las aplicaciones informáticas se deberían desarrollar con las herramientas que nos proporciona la última tecnología de software (HTML, XML, Java, JSP, etc.), lo cual supone una ruptura total con nuestra forma tradicional de trabajar en AS/400, para lo cual deberíamos utilizar las herramientas que nos proporciona la nueva plataforma WebSphere para el desarrollo de aplicaciones eBusiness, y también previamente deberíamos haber realizado una formación en dichas herramientas, larga y difícil; pero si por el contrario se ha decidido desarrollar una nueva aplicación con la opción de una evolución pero sin cambio de filosofía de programación, vamos a ver algunas herramientas con las que deberíamos contar a la hora de desarrollar la nueva aplicación, todas ellas también llevarán un período de formación pero muchísimo más corto y fácil, que si elegimos la opción anterior; aunque la formación siempre la deberíamos ver como una inversión tanto para la empresa como para el individuo.
En nuestra nueva aplicación nos surgirían varias “carencias” que creemos que tiene nuestro AS/400, la primera es el diseño de nuestros ficheros de pantalla y de impresora, la utilización del editor, etc., todo ello en nuestra “pantalla verde“de texto, pero dicha carencia queda subsanada con la utilización de la herramienta CODE/400.
Para el diseño de nuestra Base de Datos
Deberíamos plantearnos la utilización de la Integridad Referencial y los Triggers, dos opciones muy interesantes de cara a la optimización del uso de la DB2/400.
Como lenguaje de programación deberemos usar indiscutiblemente el RPG/IV (en Bit llevamos formados decenas de programadores de RPG/IV y entorno ILE) y/o RPG/Free, para aprovechar sus ventajas y nunca más hacer nada nuevo en RPG/400.
Una vez hecha la aplicación convertir nuestros ficheros de pantalla (DSPF) a HTML, para poder prescindir de la visualización de la información en la famosa “pantalla verde”, para lo cual utilizaríamos la herramienta WebFacing.
WebFacing.Herramienta que nos permite pasar nuestras aplicaciones de “pantalla verde” a entorno visual, transformando nuestros ficheros de pantalla (DSPF) en páginas HTML y seguir ejecutando nuestros programas RPG pero visualizando dichas páginas HTML en lugar de nuestros formatos de registro de los ficheros WORKSTN.
Esta herramienta nos permite “modernizar” rápidamente nuestras aplicaciones al poder ahora visualizarlas en el formato de Internet (páginas HTML) y poderlas ejecutar incluso desde un Navegador.
Todo ello se podrá llevar a cabo, debido a que con la aparición de la Versión 5 del OS/400, en junio del 2.001, se produce un salto cualitativo para el diseño de aplicaciones sobre el AS/400, salto que ya se ha ido vislumbrando durante los diferentes Releases de la Versión 4, y aunque se podrían destacar otras muchas mejoras o productos nuevos, sólo me voy a referir a tres de ellos en este y próximos artículos que serán publicados, dichos productos son el CODE/400, el RPG/IV y/o RPG/Free y la herramienta WebFacing, dicha elección es debida a que considero que son los productos más interesantes para el desarrollo de nuevas aplicaciones, siguiendo la opción de evolución pero sin cambio de filosofía de programación.
CODE/400.
Componente de WebSphere Development Tools para iSeries, es un producto muy mejorado en esta Versión 5, que viene a sustituir las funciones realizadas por el PDM, el SEU, el SDA, y el RLU fundamentalmente, pero realizadas desde un PC, bajo entorno visual y con más prestaciones que las herramientas anteriores de la pantalla de texto, permitiendo trabajar con miembros fuente tanto en el AS/400 como en una carpeta del PC, incluso sin estar conectado a un AS/400.
El producto consta de:
Editor de fuentes.
Diseñador de ficheros de pantalla.
Diseñador de ficheros de impresora.
Generador de programas.
Organizador de proyectos.
Depurador.
Introducción al CODE/400:
En esta primera aproximación al CODE/400, dado el espacio disponible, haré una introducción a su Editor, con dicho editor se trabaja sólo desde PC, en un entorno totalmente visual, con fuentes que residen en archivos fuente de nuestro AS/400 o en carpetas del PC, pudiendo realizar entre otras las siguientes funciones:
Edición de fuentes.
El editor del CODE/400 puede editar los siguientes tipos de fuentes:
RPG/400, RPG/IV, SQL RPG/400, SQL RPG/IV.
ILE COBOL, COBOL, SQL COBOL, ILE SQL COBOL.
CLP, ILE CL, PF, LF, DSPF, PRTF.
C, C++, JAVA, HTML.
Buscar y Sustituir.
Se puede buscar un campo, un código de operación, etc, y opcionalmente puede ser sustituido.
Localizar.
Se pueden localizar instrucciones por número de línea, fecha, marca, marca rápida, etc.
Filtros.
Se puede buscar un campo, un código de operación, una fecha o rango de fechas, en todas sus apariciones en el programa fuente.
Indentación del fuente RPG.
Se puede visualizare el fuente indentado, para su mejor comprensión.
Navegador.
Esta opción permite ver las subrutinas usadas y las relaciones que hay entre ellas, de un modo gráfico.
Referencias cruzadas.
Esta opción permite ver las referencias cruzadas existentes entre campos e indicadores y en que sentencias son usadas.
Comparar dos fuentes.
Esta opción permite ver y comparar dos miembros fuente.
Creación de Procedimientos con SmartGuide.
Esta opción permite crear un esqueleto básico de un procedimiento, nos lo genera a partir de contestar a unas ventanas de petición de nombre de procedimiento y parámetros; y una vez contestadas sólo deberemos entrar el código de las especificaciones C del procedimiento. En la Figura 3A, 3B y 3C se puede ver un ejemplo.
Creación de Definiciones D con SmartGuide.
Esta opción permite crear definiciones en las especificaciones D, nos lo genera a partir de contestar a unas ventanas de petición de nombre de Estructura de Datos, campos de fecha, hora, alfanuméricos, numéricos empaquetados, binarios, etc.
Búsqueda en varios fuentes a la vez.
Esta opción permite realizar una búsqueda en varios fuentes a la vez.
Ayudas.
Se puede consultar la ayuda para los códigos de operación del RPG y las palabras clave de las DDS.
Conversión de fuentes.
Esta opción permite la conversión de programas primero de RPG/400 a RPG/IV y después de RPG/IV a RPG/Free, siendo una función muy interesante para convertir programas viejos desde el RPG/400 al RPG/Free, conversión que se realiza de forma rápida y sencilla.
Verificación de fuentes.
Esta opción permite la verificación del miembro fuente, visualizando una ventana con todos los errores que contiene.
Guardado automático.
Se puede guardar el fuente automáticamente en un fichero temporal, o bien transcurrido un tiempo, 15 minutos por ejemplo, o bien, después de realizar un número de operaciones, 50 operaciones por ejemplo, todo parametrizable.
El fuente se guardará en: C:\WDT400\tmp\nombrefuente.extension
Bastante más que el SEU.
Con todo lo relacionado anteriormente, aunque tiene todavía más funciones que las expuestas aquí, se ve claramente que el editor del CODE/400 es bastante más que nuestro SEU de “pantalla verde”, nos da muchas más funciones que el SEU, con las ventajas añadidas que siempre proporciona el entorno gráfico, copiar, cortar, pegar, etc, lo cual significa que en nuestro AS/400 ya poseemos un editor “moderno”. Norma automática, sin tener que hacer ningún retoque.
miércoles, 22 de noviembre de 2006
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario