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.

Monday, January 13, 2014

Mejorando los Tiempos de Respuesta: Miembros en Archivos Físicos



Hay varias opciones para agilizar los tiempos de respuesta en el proceso de accesar la data de un archivo. Esta vez vamos a ver el uso de miembros en un archivo físico.

Los archivos físicos pueden ser “particionados” en varios miembros.  Esto de lo Miembros es  parecido a las particiones que se hacen a un disco con la diferencia de que se trata de particiones virtuales. Es decir particiones lógicas.

 Con el comando ADDPFM se pueden agregar miembros

 El comando es:
 ADDPFM FILE(LIBRERIA/ARCHIVO) MBR(NOMBRE-del-Miembro)

  El tope es hasta 32.767 miembros.
 Podemos poner un nombre mnemónico a cada miembro que nos permita a simple vista entender que tipo de data se almacena en ese miembro.

Supongamos que queremos tener en disco la data de cierre del año fiscal desde hace 14 años hasta el año actual. (Año actual =2014)
Cada miembro puede contener data de distintos años. Podemos crear tres miembros. Por ejemplo, el primer miembro contiene la data de los primeros cinco años, el segundo de los otros cinco y el tercero de los últimos cinco años.

Cuando vamos a grabar en un archivo debemos detectar la fecha de la data y hacer ovrdbf sobre el archivo con el miembro destino de la información. Las consultas, listadores y procesos deben grabar sobre el miembro que contiene la data correspondiente a la fecha dentro del rango definido.
Lo archivos lógicos además deben ser creados apuntando a cada miembro. De esta manera cada miembro tiene sus propios archivos lógicos e índices asociados. Cada aplicativo que utiliza el archivo hace una cantidad de accesos a la data mucho menor cuando se limita el alcance a un miembro específico que tiene un total de registros mucho menor que la sumatoria de todos los miembros.

Hagamos un ejercicio:

Al primer miembro lo podemos llamar AF00AL05 para indicar que contiene la data del año fiscal  (AF) desde el año 2000 (00) al año 2005 (05).

Creamos el miembro:
ADDPFM FILE(LIBRERIA/ARCHIVO) MBR(AF00AL05)

En caso de utilizar directamente el archivo físico en el programa, el OVRDBF correspondiente que tendría que hacer el aplicativo antes de actualizar o leer es:
OVRDBF FILE(ARCHIVO) TOFILE(LIBRERIA/ARCHIVO) MBR(AF00AL05)

Si decidimos crear un archivo lógico para utilizarlo en nuestras aplicaciones lo creamos de
Esta manera:
CRTLF FILE(LIBRERIA/LOGICO1) DTAMBRS((LIBRERIA/ARCHIVO(AF00AL05)))

Al segundo miembro lo podemos llamar AF06AL10 para indicar que contiene la data del año fiscal  (AF) 2006 (06) al 2010 (10)

Creamos el miembro:
ADDPFM FILE(LIBRERIA/ARCHIVO) MBR(AF06AL10)

En caso de utilizar directamente el archivo físico en el programa, el OVRDBF correspondiente que tendría que hacer el aplicativo antes de actualizar o leer es:
OVRDBF FILE(ARCHIVO) TOFILE(LIBRERIA/ARCHIVO) MBR(AF06AL10)

Si decidimos crear un archivo lógico para utilizarlo en nuestras aplicaciones lo creamos de
Esta manera:
CRTLF FILE(LIBRERIA/LOGICO2) DTAMBRS((LIBRERIA/ARCHIVO(AF06AL10)))
Al tercer miembro lo podemos llamar AF11AL15 Para indicar que contiene la data del año fiscal  (AF) 2011 (11) al 2015 (15)

Creamos el miembro:
ADDPFM FILE(LIBRERIA/ARCHIVO) MBR(AF11AL15)
En caso de utilizar directamente el archivo físico en el programa, el OVRDBF correspondiente que tendría que hacer el aplicativo antes de actualizar o leer es:
OVRDBF FILE(ARCHIVO) TOFILE(LIBRERIA/ARCHIVO) MBR(AF11AL15)
Si decidimos crear un archivo lógico para utilizarlo en nuestras aplicaciones lo creamos de
Esta manera:
CRTLF FILE(LIBRERIA/LOGICO3) DTAMBRS((LIBRERIA/ARCHIVO(AF11AL15)))

Gráficamemente podemos representar el archivo de la siguiente manera.




Algunas organizaciones al cierre de año, crean a tiempo de ejecución un miembro nuevo cuando detectan que es un año fiscal que no tiene miembro asignado. Es decir en los programas CLP crean un nuevo miembro siguiendo una nomenclatura estándar y grabando en un archivo aparte el nombre del nuevo miembro con el rango de fechas que le ha sido asignado.
Por ejemplo, podemos tener  un archivo de control de miembros definido de esta manera



Con la siguiente data cargada manual o automáticamente.









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