Serie ficheros virtuales

 

 

 

 

RPG Ficheros Virtuales


 

 

Banco de Pruebas

 

 


   Estructura de soporte  

 

 

   Un esquema resumen de uso típico

 

 

      - Definir las estructuras de soporte de los ficheros 

 

      - Crear los ficheros  

 

      - Establecer los bucles de proceso

 

         Carga, lectura, actualización, salida, etc. 

 

 

      - Cerrar la aplicación 

  

 

                                                                                                      ________



 

Estructura de soporte

 

 

 

      **********************************************************************************************

      *  DS8888   *  Banco de pruebas de SRAGM

      **********************************************************************************************

 

      ***

      * *  Definición fichero virtual DS8888

      ***

     D DS8888c         DS                  QUALIFIED BASED(pDS8888c)            Soporte  DS8888

     D  DSK                                LIKEDS(DSCc)                         ClavesPF DS8888

     D  DSK01                              LIKEDS(DSC01c)                       ClavesLF DS8888

     D  DSD                                LIKEDS(DSDc)                         Datos    DS8888

 

      ***

      * *  Definición claves PF (Es la definición de una red [I,J], como en la emulación de una hoja de cálculo)

      ***

     D DSCc            DS                  QUALIFIED BASED(pDSCc)

     D  I                            10S 0                                      I

     D  J                            10S 0                                      J

 

      ***

      * *  Definición claves LF (Orden inverso)

      ***

     D DSC01c          DS                  QUALIFIED BASED(pDSC01c)

     D  JI                           10S 0                                      N*N - IJ + 1

 

      ***

      * *  Definición datos fichero virtual DS8888

      ***

     D DSDc            DS                  QUALIFIED BASED(pDSDc)

     D  IJ                           10S 0                                      N*(I-1) + J

     D  IMPT                         10S 0                                      [100000]+N*(I-1) + J

      * La constante [100000] se añadirá/retirará en los UPDATE de prueba

 

 

 

                                                                                                      ________

 

 

 

Un esquema resumen de uso típico

 

 

Un uso típico de la aplicación se puede esquematizar como

 

 

 

- Definir las estructuras de soporte de los ficheros, tipo

 

      ***

      * *  Definición fichero virtual DS8888

      ***

     D DS8888c         DS                  QUALIFIED BASED(pDS8888c)            Soporte  DS8888

     D  DSK                                LIKEDS(DSCc)                         ClavesPF DS8888

     D  DSK01                              LIKEDS(DSC01c)                       ClavesLF DS8888

     D  DSD                                LIKEDS(DSDc)                         Datos    DS8888

 

 

 

 

 

- Crear los ficheros de soporte con SRAGM_NEW [SRAGM_NOW, SRAGM_CRTLF], como en

 

 

 

    // Físico base

 

 

    TTNID = SRAGM_NEW('DS8888':%size(DS8888c.DSK):%size(DS8888c));

 

 

 

    // Lógico de acceso alternativo

 

 

    TTNID01 = SRAGM_CRTLF('DS888801':'DS8888':%size(DS8888c.DSK) + 1:
                                              %size(DS8888c.DSK01));

 

 

 

 

- Establecer los bucles de proceso.

 

 

Tanto de carga, como en

 

 

   [Normalmente habrá una inicialización previa utilizando SRAGM_CLRF('DS8888');]

 

   for T_I = 1 to P_NUME;

 

      for T_J = 1 to P_NUME;

 

        DS8888.DSK.I = T_I;

        DS8888.DSK.J = T_J;

 

       . . .

  

        T_Resu = SRAGM_WRITE('DS8888':%addr(DS8888));  [ También puede utilizarse SRAGM_VER('DS8888':%addr(DS8888)); ]

   

 

     endfor;

 

  endfor;

 

 

 

 

Como de lectura, actualización, salida de resultados, etc., similar a

 

 

[Opcionalmente habrá un posicionamiento con T_Resu = SRAGM_SETLL('DS8888':%addr(DS8888):%size(DS8888.DSK01));]

 

 

   for T_I = 1 to P_NUME;

 

     ...

 

          T_Resu = SRAGM_READ('DS8888':T_I:%addr(DS8888));   [SRAGM_READE/UPDATE/CHAIN('DS8888':%addr(DS8888));]

 

 

   endfor;

 

 

 

 

- Por último se cerraría la aplicación

 

   En iSeries no se precisa una instrucción explícita, toda la memoria asignada se libera automáticamente al finalizar el grupo de activación. El alcance del grupo de activación se puede graduar según los propósitos del desarrollo. Puede abarcar desde el nivel de invocación del programa en curso hasta el conjunto del job.

 

   Una elección que responde satisfactoriamente es abarcar el conjunto de una opción de menú en usos interactivos y el conjunto del job en procesos batch.

 

 

   En cualquier caso, se pueden utilizar las instrucciones SRAGM_CLRF para vaciar una base de datos virtual y SRAGM_ERASE para suprimirla.



                                                                                                      ________