Lo que en ILE se llama Programa de Servicio ha sido
concebido en principio, para codificar, en un mismo programa, las utilidades de uso común por parte de los demás programas del sistema. La ventaja de este sistema centralizado es que todas las versiones y actualizaciones de las utilidades son mucho mas sencillas de controlar.
Un programa de servicio en su concepto fundamental esta
constituido por un conjunto de subprocedures que son declarados en el programa.
El programa de servicio típico no tiene cuerpo principal. Se coloca en la hoja ‘H’ la
plabra clave *NOMAIN para que el sistema operativo entienda que el contenido
del código contiene declaraciones y programación de subprocedures.
Por ejemplo las clásicas utilidades desarrolladas en programas o rutinas en RPG
tradicional se han desarrollado tales como:
“Monto Escrito” (para escribir en letras una cantidad en número),
“Días laborables”
“Encriptamiento/Desencriptamiento”
“Impresión de Chequeras”
Pueden ser colocados en un solo programa de servicio como un
subprocedure cada uno.
Cada Subprocedure debe tener la declaración de su prototipo
PR para los parámetros de entrada y sus respectivos PI para esos mismos
parámetros. Sin embargo, la declaración de los PR y PI se realizan en distintas
partes del programa.
La declaración de Prototipos o PR permite al sistema
operativo crear un punto de entrada o ENTRY POINT de acceso al programa de
servicio por cada PR declarado.
Esto significa que, el subprocedure que tiene un PR o
prototipo asociado, puede ser el proceso arranque de un conjunto de programas
enlazados y además puede ser invocado por programas y módulos externos.
Sin la declaración del Prototipo PR, el subprocedure sería solo de uso local
dentro del programa que esta declarado y no podría ser accedido por otros
programas o módulos. Es importante aclarar esto puesto que muchos programadores
no entienden por qué hay que utilizar PR y PI es decir, declarar los parámetros
de entrada "dos veces" para cada subprocedure (es un tema mas extenso para una próxima vez).
En el RPG tradicional no existía la posibilidad de multiples
ENTRY_POINT para un programa. El RPG tiene un solo conjunto de parámetros de entrada definidos.
En un programa de servicio cada subprocedure puede ser
llamado en forma independiente aún cuando este declarado en el mismo programa. Por
tanto, hay múltiples puntos de entradas ( o grupo de parámetros de acceso) por
la cual se puede acceder al programa de servicio.
Un programa de servicio sin cuerpo principal - como es este caso-no puede ser invocado a través de un CALL, solo se pueden invocar los subprocedures que están codificados internamente.
La declaración de los prototipos de los subprocedures se coloca al principio del
programa, uno tras otro. Es decir, se declara el
prototipo de “Monto Escrito”, seguidamente el prototipo de “Dias laborales” y
luego el prototipo de “Encriptamiento” , etc, y al culminar con los prototipos se
declaran seguidamente cada subprocedures con su código interno correspondiente
y su PI.
El comando para crear un programa de servicio es CRTSRVPGM.
En próximas entregas,
continuaremos detallando el tema de los programas de servicio.
Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Publicado por: Ing.
Liliana Suárez
No comments:
Post a Comment