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.

domingo, 30 de marzo de 2014

Algo más sobre Uso de Indicadores.

 







En un artículo anterior, al comenzar la edición de este blog, hice mención a varias recomendaciones a como usar los indicadores.


En esta oportunidad vamos a mencionar formas arcaicas o en desuso de los indicadores porque me lo han pedido en los últimos comentarios del blog.
Vamos a enfocarnos en:


Como NO utilizar los indicadores.

Hemos visto a programadores de RPG II y RPG III utilizar indicadores de esta forma:

N31N45N78       Move 1  VARIABLE

Algunas variaciones más monstruosas sobre el mismo tema.

N31N45N78    
Or
N78 78N90        Move 1  VARIABLE
     

Lo peor es que cuando incursionan en la programación con RPG IV conservan la misma forma arcaica de programar.

Luego de un tiempo el mismo programador no recuerda que diablos significa N31 N45  N78 y debe comenzar a realizar un análisis “forense” hasta dar con el concepto que involucra cada indicador.

Con RPG IV o con RPG FREE podemos declarar variables tipo Booleana en la hoja ‘D’ .Se declara tipo ‘n’ y listo!.

Por ejemplo si el indicador 31 indica que se aprobó el préstamo del cliente.
¿Por qué no declarar una variable tipo booleana? Una variable llamada: Prestamo_Aprobado.

Podemos hacer: Prestamo_Aprobado = *On  
Podemos hacer: Prestamo_Aprobado = *Off

Y luego preguntar:  If Prestamo_Aprobado 

¿Es más sencillo y claro de entender verdad?

Otro uso arcaico de los indicadores es en las preguntas IF.

If *in03 = ‘1’  no es necesario preguntar si vale ‘1’ con colocar:

If  *in03       Es suficiente.

Lo mismo sucede con el indicador con negación delante:

If  *in03 = ‘0’ se reemplaza por: If Not *in03

Sin embargo la mayoría de los programadores se mantienen con su forma de programar en:
If  *in03 = ‘1’   If  *in03 = ‘0’ formas que denotan falta de claridad del programador en el manejo de las sentencias lógicas.

Es  lo mismo preguntar por *OFF que por ‘0’ al igual que preguntar por *ON que por ‘1’.

Hay instrucciones como el CHAIN el COMP que originalmente utilizan indicadores. Con la nueva programación en RPG-FREE se pueden utilizar operaciones como por ejemplo:

    Chain (Key1:Key2) Archivo    03    (El indicador 03 es opcional)

If %Found(archivo)  equivale a preguntar If  not*in03

La operación COMP que ya NO se usa es reemplazada por una condición estándar de
Comparación:   IF A > B

Otra costumbre en la vieja programación es esta:

45                         A IFGT B
                                 …..
                  ENDIF
Esto significa que si el indicador 45 esta encendido (*ON) ejecutar el IF y todo lo que hay adentro.
Esta es otra práctica que dista de estar entre las mejores prácticas de programación en RPG. Utilice todas las condiciones que necesite en la sentencia IF para despejar cualquier duda de su ejecución.

En Rpg_Free ya no es necesario el uso de indicadores para buscar un elemento en un arreglo (Array)

Posicion= %Lookup(‘hola’: Array: 1:200)

En Posicion  se devuelve la posición del arreglo donde se encontró la palabra ‘HOLA’ si POSICION es cero entonces no está en el arreglo.
Un indicador menos que utilizar y podemos usar una variable mas mnemotécnica (Posicion)


Si puedes utilizar variables estándar o variables booleanas en lugar de indicadores, tendrás suficientes indicadores a tu disposición cuando requieras verdaderamente el uso de indicadores como es el caso del manejo de pantallas. Para ese caso, no hay manera de reemplazar indicadores de pantalla con variables booleanas. El SDA no da espacio para variables booleanas o nombres largos que permitan el manejo de campos y condiciones en Keywords de pantallas para el despliegue y actualización interactiva de datos.

El utilizar RPG-Free nos brinda muchas facilidades que nos permiten ser más claros, sencillos y directos en la programación.

Si quieres “migrar” a RPG-Free revalúa tus técnicas de programación para que no repitas los mismos vicios que aprendiste en códigos de programación mas atrasados.

 Para mayor información sobre este tema puedes consultar este enlace de otro artículo publicado por mí en este mismo blog, hace algún tiempo:



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. 



Autor: Ing. Liliana Suárez