💡 Por lo general, usamos el comando RGZPFM para reutilizar el espacio de los registros que hemos borrado en un archivo. Como los datos se insertan de forma secuencial, los espacios que dejan los registros eliminados no se usan para información nueva. Ese espacio inútil se acumula hasta que ejecutamos RGZPFM para reorganizar el archivo.

🔢 Importante: Una vez que reorganizas el archivo, el Número Relativo de Registro (RRN) de los datos cambiará.

🔑 Caso de uso: Si tienes un archivo que se lee principalmente por su valor clave y quieres cambiar la forma de acceder a él (de secuencial a por clave, o cambiar a una clave distinta), RGZPFM es la herramienta ideal.

📌 Ejemplo Práctico

Aquí tenemos los registros de la cuenta (ACCOUNT) según su orden de llegada original:

Plaintext

 

        ORG   ACC             CCY  PARTY        
 000001 190   A00000000001  CCY  P00000000001 
 000002 191   A00000000002  EUR  P00000000002 
 000003 192   A00000000003  USD  P00000000003 
 000004 192   A00000000004  TRY  P00000000004 
 000005 190   A00000000005  INR  P00000000005 
 000006 190   A00000000006  TRY  P00000000006 
 000007 192   A00000000007  INR  P00000000007 
 000008 191   A00000000008  GBP  P00000000002 
 000009 191   A00000000009  USD  P00000000001 
 000010 195   A00000000010  EUR  P00000000003 
 000011 193   A00000000011  TRY  P00000000005 
 000012 192   A00000000012  EUR  P00000000002 
 000013 190   A00000000013  EUR  P00000000009 
 000014 191   P00000000014  USD  P00000000004 
 000015 192   A00000000015  INR  P00000000010 
 000016 192   A00000000016  GBP  P00000000011 
 000017 192   A00000000017  AZK  P00000000017 
 000018 191   A00000000018  EUR  P00000000014 
 000019 190   P00000000019  EUR  P00000000015 

⚙️ Ahora, queremos ordenar los registros usando los valores clave del archivo (ORG/ACC/CCY). Para lograr esto, configuramos el parámetro KEYFILE = *FILE. (Nota: Si quisieras ordenarlos por una clave diferente, podrías indicar el nombre de un archivo lógico que contenga esa clave).

💻 Pantalla del comando RGZPFM:

Plaintext

 

                     Reorganize Physical File Mbr (RGZPFM)    
                                                              
Type choices, press Enter.                                    
                                                              
Data base file . . . . . . . . . FILE         > ACCOUNT       
  Library  . . . . . . . . . . .              >   QGPL        
Member . . . . . . . . . . . . . MBR          > ACCOUNT       
Key file:                        KEYFILE                      
  Logical file . . . . . . . . .              > *FILE  >>>>>>>>>>>       
    Library  . . . . . . . . . .                              
  Member . . . . . . . . . . . .                              
Rebuild access paths . . . . . . RBDACCPTH      *YES          
Allow cancel . . . . . . . . . . ALWCANCEL    > *NO           
                                                              
                           Additional Parameters              
                                                              
Source update options  . . . . . SRCOPT         *SAME   

Resultado: Después de ejecutar la reorganización, los registros en ACCOUNT quedarán perfectamente ordenados según su valor clave:

 

 

Plaintext

 

       ORG   ACC             CCY  PARTY      
000001 190   A00000000001  CCY  P00000000001
000002 190   A00000000005  INR  P00000000005
000003 190   A00000000006  TRY  P00000000006
000004 190   A00000000013  EUR  P00000000009
000005 190   P00000000019  EUR  P00000000015
000006 191   A00000000002  EUR  P00000000002
000007 191   A00000000008  GBP  P00000000002
000008 191   A00000000009  USD  P00000000001
000009 191   A00000000018  EUR  P00000000014
000010 191   P00000000014  USD  P00000000004
000011 192   A00000000003  USD  P00000000003
000012 192   A00000000004  TRY  P00000000004
000013 192   A00000000007  INR  P00000000007
000014 192   A00000000012  EUR  P00000000002
000015 192   A00000000015  INR  P00000000010
000016 192   A00000000016  GBP  P00000000011
000017 192   A00000000017  AZK  P00000000017
000018 193   A00000000011  TRY  P00000000005
000019 195   A00000000010  EUR  P00000000003