Ubicar el registro 100 desde un RPG es simple, solo indicamos el numero del registro que queremos ubicar en el código de operación CHAIN
100 CHAIN ARCHIVO
Hacerlo en Cobol es igual de sencillo pero en la Declaración del Archivo debemos indicar algunas cosas adicionales. La cláusula RELATIVE nos permite organizarlo por registro relativo, es decir, en el orden tal como ingresaron al archivo. A la vez nos permite actualizar o eliminar los registros procesados.
ORGANIZATION IS RELATIVE
El acceso se realiza con clave relativa
ACCESS MODE IS RANDOM
RELATIVE KEY IS RRN-PLANO
En este ejemplo procesamos un archivo plano, ubicamos el registro 100 y lo eliminamos.
ENVIRONMENT DIVISION.
*---------------------
INPUT-OUTPUT SECTION.
FILE-CONTROL.
*
SELECT PLANO
ASSIGN TO DATABASE-PLANO
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS RRN-PLANO
FILE STATUS IS FS-PLANO.
DATA DIVISION.
*--------------
FILE SECTION.
FD PLANO
LABEL RECORDS ARE STANDARD.
01 REG-PLANO.
03 FILLER PIC X(648).
*
WORKING-STORAGE SECTION.
* Variables
01 RRN-PLANO PIC 9(5).
* Files Status
77 FS-PLANO PIC XX.
88 PLANO-EOF VALUE "10".
77 SW-FIN-PROGRAMA PIC 9.
88 FIN-PROGRAMA VALUE 1.
PROCEDURE DIVISION.
*-------------------
PRINCIPAL.
*----------
PERFORM INICIO
PERFORM PROCESO UNTIL FIN-PROGRAMA
PERFORM FIN
STOP RUN.
*
INICIO.
*-------
OPEN I-O PLANO.
FIN.
*----
CLOSE PLANO .
PROCESO.
*--------
MOVE 100 TO RRN-PLANO
READ PLANO
AT END
DISPLAY "REGISTRO NO ENCONTRADO"
NOT AT END
DISPLAY REG-PLANO
DELETE PLANO
END-READ.
MOVE 1 TO SW-FIN-PROGRAMA.
Esto se puede aplicar a archivos con DDS, con claves o archivos sin DDS (planos).
No hay comentarios:
Publicar un comentario