SIDRA400

¿Quieres usar las APIs del sistema con ILE RPG?
    Siempre que he intentado explicar lo que significa una API me he encontrado con el mismo problema: no sé dar una definición apropiada, sencilla y entendible. API es la abreviatura en inglés de Application Programming Interfaz o en castellano Interfaz de Programación de Aplicaciones. Algunos dirán que es una capa de abstracción y tendrán razón. Otros que proporcionan una interfaz que permite una comunicación entre componentes de software, mediante un conjunto de funciones de uso general o específico.

    Y así, una por cada profesional que le preguntes. Bueno, he exagerado un poco. La primera vez que leí esta palabra se utilizaba para hablar de la interfaz de programación de Windows, a principios de la década de los 90. Para aquellos no familiarizados con este concepto, podríamos decir que una API es un conjunto de funciones o procedimientos que nos permite aprovechar, una y otra vez, una determinada funcionalidad, evitando programarla desde cero. En el caso que nos ocupa, se tratan del conjunto de programas, funciones y procedimientos que nos ofrece el sistema operativo para interactuar con él.

    Image:¿Quieres usar las APIs del sistema con ILE RPG?

    El sistema nos proporciona, desde sus inicios, cientos de APIs (o miles). Y es posible que, sin darnos cuenta, ya hayamos utilizado algunas de ellas, como por ejemplo QCMDEXC, para ejecutar un mandato desde un programa RPG. Fue mi primera vez, en el año mil novecientos noventa-y-pocos. Desde entonces he utilizado algunas más. Me han permitido construir programas y utilidades de sistema que ayudan en el trabajo diario de mi empresa y departamento. He podido hacer cosas que con una programación tradicional sería imposible o muy difícil. Como ya he dicho, hay cientos o miles de APIs. Permiten, entre otras cosas: obtener información de los objetos que habitan el sistema; manejar objetos como colas de datos, espacios de usuarios, archivos, etc.; utilizar mensajes; funciones de conversión de datos; manejar archivos en spool; y mucho más.

    Hoy os presento los fuentes que he ido confeccionando durante todos estos años con los prototipos de algunas APIs y las estructuras de datos necesarias para su uso. Ni mucho menos están todas las que proporciona el sistema, sólo están aquellas que he necesitado en alguna ocasión. En este mismo blog ya los incluí junto con la utilidad SU. Estos miembros fuente están preparados para utilizarse desde ILE RPG con la directiva /Copy, pero no enseñan como utilizar las APIs. No soy muy bueno dando lecciones.

    No es fácil adquirir los conocimientos necesarios para su utilización. Al principio no habían muchos medios para aprender a utilizarlas, apenas los manuales (en inglés) de IBM. Hoy, en Internet podremos encontrar cientos de recursos que nos ayudarán en esta ardua tarea. Es el medio que yo más empleo. Existe muchísima documentación digital y escrita, sobre todo en inglés.

    Hay un libro de Bruce Vining, Doug Pence y Ron Hawkins que trata este tema en profundidad.
    Sin embargo, para aquellos que quieran introducirse en este tema han de saber que desde hace algunos años han proliferado, en la prensa especializada, los artículos que tratan este asunto. Éstos podrían ser un buen punto de inicio para entender y usar las APIs:
    En castellano también podremos encontrar algunos artículos en ServerNews (http://www.help400.es/) y predecesoras. Los suscriptores habrán podido disfrutar de ellos.

    En el InfoCenter (http://publib.boulder.ibm.com/iseries/), en la sec ción de Programación, podemos encontrar los manuales de referencia así como algunos ejemplos de uso. Preguntar a Google también puede resultar positivo. Ante la soliticitud de información sobre una API devuelve decenas o cientos de enlaces. Un lugar que me ha servido de mucha ayuda ha sido:

    think400.dk - http://www.think400.dk/apier.htm

    aquí he encontrado muchos ejemplos que me han permitido entender algunas APIs complejas.

    Hay dos libros que perfectamente podrían estar en cualquier estantería (de madera o digital) de cualquier desarrollador de RPG que quisiera aprender a utilizar las APIs. Sus títulos son:
    El primero es mi manual de consulta desde hace años y me ha enseñado a utilizar ILE RPG de otra manera.

    Finalmente, no hay Gurú del entorno que no las utilice y facilite información sobre ellas:

    Scott Klement
    - http://www.scottklement.com/
      con sus excelentes guías sobre sockets o sobre el IFS

    Bob Cozzy
    - http://www.rpgworld.com/
      con decenas de ejemplos. También promueve una iniciativa para ir incorporando nuevos prototipos de APIs en su "colección abierta" de éstas.

    Entre otras cosas, he utilizado las APIs del sistema para: obtener información de los perfiles de usuario, de los objetos en general, leer la lista de trabajos planificados, procesar los mensajes de una cola de mensajes, enviar y recibir mensajes, leer los archivos en spool de una determinada cola, chequear copias de seguridad, leer y escribir registros de ficheros, utilizar el IFS, ....

    ¡Que os divirtáis!

     iSeries  Javier Mora  4 Comentar Febrero 17th, 2009


Entradas Recientes

SIDRA400 Powered by IBM/Domino