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.

Thursday, October 29, 2009

Mejores Prácticas de Programacion RPG












Aunque nos suministren miles de herramientas en el Iseries para desarrollar mejores programas, tendemos a arrastrar viejos hábitos que aprendimos en RPG II y RPG III. Con la incorporación de RPG4 y de Ile-Rpg es fundamental desarrollar códigos "limpios" que a su vez reduzcan tiempos de respuesta en los procesos.

A manera de ejemplo, supongamos que tenemos tres analistas en una competencia. El reto es optimizar el siguiente código en RPG III. Lo dejamos en esta versión de RPG porque muchas veces es utilizado como excusa el hecho de no tener experiencia en RPG4, Free RPG o IleRpg para generar un código engorroso y con un tiempo de ejecución innecesariamente alto.


En un ejercicio de imaginación supongamos los siguientes Costos:
- Cada IF cuesta: un segundo.
- Encender o apagar un indicador: 1 segundo
- Cada Z-add cuesta dos segundos:
son dos instrucciones en una: primero mover cero y luego sumar.
-Cada comparación: 1 segundo
-Llamar a la rutina: 1 segundo

Tuesday, October 27, 2009

Trabajar con Fechas en RPG










Aunque es muy cómodo permanecer en el campo de lo conocido, es importante en el mundo de la tecnología incorporar herramientas, codigos y mecanismos mas actualizados para desarrollar programas. Todavía se encuentran programas que para validar fechas recurren a aquellos famosos arreglos contenidos al final del programa
donde se definía cual mes del año tiene 28,29 30 o 31 dias. Tambien vemos aquel famoso operador mvr utilizado para saber si un año es o no bisiesto. Con rpg 400 y rpg free, existen nuevas funciones proporcionadas por el sistema operativo que ahorran tiempo de programación y lo mas importante: tiempo de respuesta.
Por ejemplo para saber si una fecha es correcta o incorrecta puedes recurrir a la
función test. Declara previamente la fecha que quieres evaluar y si la fecha es erronea el sistema operativo te devuelve el valor de %error en true (verdadero).
Para evaluar Fecnac. (fecha de nacimiento)

d ds
d Fecnac 1 8 0
d Ano 1 4 0
d Mes 5 6 0
d dia 7 8 0


test(de) *iso Fecnac;
if %error;
enviar mensaje al usuario
endif;
………………………………………………………

En el siguiente ejemplo la función %diff nos da la diferencia de en dias
hemos declarado las fechas julianas pero pueden ser declaradas en formato
*iso u otro que resulte cómodo. En el manual de Rpg Reference pueden ver mas detalles
del formato de fechas

dfecha1 s d datfmt(*jul)
dfeccha2 s d datfmt(*jul)

dias = %diff(fecha1:fecha2:*days);

En la variable dias tenemos la diferencia en dias de ambas fechas,
si queremos la diferencia en meses colocamos en el tercer parámetro
de %diff *months
…………………………………………………

Por último, pero no menos importante, podemos realizar operaciones con fechas con las funciones subdur y adddur.

d fechahoy s d datfmt(*eur)
d fechapago s d datfmt(*eur)
d fechafinal s d datfmt(*eur)
d dias s 5 0

fechahoy subdur 3:*m fechafinal

fechahoy subdur fechapago dias :*d


En la primera instrucción restamos 3 meses a la fecha de hoy y obtenemos una fecha resultante.
En la segunda instrucciñon restamos dos fecha y obtenemos el resultado en terminos de dias.
La función Adddur es similar pero en lugar de restar suma los tiempos o fechas
que le indiquemos.

Estas funciones son muy importantes para el cálculo de fechas de vencimientos de pago, intereses, terminos de contratos, entregas de pedidos y miles de transacciones comerciales que se definen en costo y ganancia por el tiempo transcurrido. Ya no se hace necesario desarrollar un programa o diseñar un procedimiento que se encargue de devolvernos el resultado de la operación que requerimos ejecutar con las fechas.

Continuamente se realizan avances en el RPG es nuestro deber mantenernos actualizados.

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

Sunday, October 25, 2009

No puedo ver el listado del Debug.











Cuando un programa falla y respondemos con ´D´ esperamos que se genere un listado
que nos facilite conseguir el origen del problema. Este listado puede generarse en el spool del usuario o en una cola de spool predeterminada por el sistema llamada QEZDEBUG. Sin embargo, puede suceder que buscamos el listado por todas partes y no lo conseguimos. El nivel de autoridad puede estar implicado en este problema. Para solucionarlo, colocas WRKSPLF y luego presionas SHIFT-F9. Seguidamente te aparece una pantalla que dice: Nivel de Autoridad. Colócalo en 2, pulsas Enter y al presionar F5 para hacer un refrescamiento de la pantalla del WRKSPLF verás el listado que estabas buscando

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