Páginas

Monday, February 22, 2010

Declaración múltiple de un archivo en un CLP.












Es posible manejar múltiples instancias de un mismo archivo en un CLP. El límite de instancias es cinco. Es decir, podemos declarar cinco veces el mismo archivo en un programa CLP indicando distintos OPNID en sus declaraciones respectivas.

En el código que muestro a continuación pueden ver el mismo archivo declarado dos veces con distinto OPNID.

Cuando se va a leer información de un archivo es necesario realizar un OPNDBF antes del comando de lectura RCVF. El OPNDBF debe tener especificado el OPNID que identifica la instancia del archivo que va a ser aperturado.
El código de ejemplo que les presento a continuación trata de un programa que maneja

   Inicio:      PGM        

/*El mismo archivo declarado dos veces con distintos OPNID */
                                                                             
DCLF       FILE(LIBRERIA/ABAPF004) RCDFMT(ABARC004) +                                           
     OPNID(ABAPF)                                                                          
 DCLF       FILE/(LIBRERIA/ABAPF004) RCDFMT(ABARC004) +                                           
     OPNID(ABAnue) 
                                                                       
  OPNDBF     FILE(LIBRERIA/ABAPF004) OPTION(*ALL) +                                               
  MBR(*FIRST) OPNID(ABAPF) ACCPTH(*FILE)     
                                         
   RCVF       RCDFMT(ABARC004) OPNID(ABAPF)                                                           
   CLOF       OPNID(ABAPF)      
   ADDPFM     FILE(LIBRERIA/ABAPF004) MBR(NUEVO) +                                                  
   SHARE(*YES)                                                                            

   CPYF       FROMFILE(LIBRERIA/ABAPF004) +                                                            
                 TOFILE(LIBRERIA/ABAPF004) TOMBR(NUEVO) +                                             
                  MBROPT(*ADD) FROMRCD(1) TORCD(1)                                                       
                                                                                                                       
   OPNDBF     FILE(LIBRERIA/ABAPF004) OPTION(*ALL) +                                                 
                      MBR(nuevo) OPNID(abanue) ACCPTH(*FILE)                                                 
                                                                                                                       
   OVRDBF     FILE(ABAPF004) TOFILE(LIBRERIA/ABAPF004) +                                             
                      MBR(NUEVO) POSITION(*START) SHARE(*YES)                                                
                                                                                                                       
     RCVF       RCDFMT(ABARC004) OPNID(ABANUE)    
                                                      
     MONMSG     MSGID(CPF0864) EXEC(GOTO FIN)     
                                            
                                                                                          
     CLOF       OPNID(ABAnue) 

   FIN: ENDPGM  

Autor: Ing. Liliana Suárez.

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


No comments:

Post a Comment