Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

Sunday, February 22, 2009

Mejores Practicas en RPG: Uso de Constantes e Indicadores



Uso de constantes en un programa RPG:


Por ejemplo:

Si status = 1 es Activo y Status = 2 es Inactivo,
es recomendable declarar dos contantes:

D ACTIVO const(1)
D INACTIVO const(2).


Al preguntar en el programa por el status no es lo mismo decir:

C If Status = 1

que decir

C If Status = Activo,

De esta manera se autodocumenta el programa y se hace mas legible para un nuevo programador que deba darle mantenimiento.

----------------------------------

Uso de indicadores.

Rpg 4 nos da el chance de declarar variables tipo indicador(booleano). Podemos declarar una variable booleana llamada: CalcularInteres. (el tipo es N en la hoja D)

Supongamos que estamos realizando un programa que analiza condiciones de crédito.
Luego de analizar las condiciones de credito, la lógica del programa lleva a tomar una decisión sobre si los intereses del crédito deben calcularse o no.

Lo que solemos hacer es "encender" un indicador que nos diga si debe o no calcularse el interes y luego se llama a un monton de rutinas que completen el proceso.


Algunas de estas rutinas seguramente preguntarán:
C IF *in50

(en caso de que hubiesemos decidido utilizar el indicador 50 para este fin)

EL indicador no es mnemonico pero si usamos la Variable CalcularInteres vemos claramente a qué se refiere la lógica del programa sin tener que tomarnos tanto tiempo en descubrir qué hace el indicador 50 en todo el programa.

Podemos colocar la variable

C Eval CalcularInteres = *ON

Definitivamente colocar:

C If calcularInteres...
es mejor que colocar

C If *in50...


Al igual que con las constantes, esta es otra forma de autodocumentar el programa.

--------------------------------------

Seguimos con el Uso de indicadores.
Si en el rpg 4 queremos saber si un indicador está encendido o apagado no es elegante preguntar:

C If *in50 = *Off,

Para Rpg 4 se pregunta

C If Not *in50

si queremos saber si esta apagado y para saber si esta encendido se pregunta:

C If *in50.

Se reconoce facilmente a un programador que viene de RPG III y no tiene mucha experiencia en RPG 4, cuando vemos esta mezcla de lo nuevo con lo viejo. Entre los analistas de as400 se llama rpg 4 tambien a rpg ile aunque no sea exactamente lo mismo.


Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.


Autor:  Ing. Liliana Suárez

2 comments:

Sergio said...

Esto de definir de tipo N en la hoja D CalcularInteres, por ejemplo, para luego preguntar por su valor de verdad es muy útil. Lo acabo de aprender veo su utilidad.
Veo que tengo costumbres de RPG 3 trabajando con RPG 4 [:D] pero no por haber trabajado con RPG 3 sino porque los códigos que me han tocado corregir estan de la forma "C If *in50 = *Off"
Muy Bueno.

Alex Delbec said...

buenas tardes, podrías proporcionar mas material respecto al uso de indicadores, o los tipos de inidcadores y como se usa, como se declara, etc. estoy viendo los libros de ibm, pero no entran en detalle al nacimiento del indicador, sino que lo usan y no son muy explicitos. saludos.