Una vez que hemos realizado todas las operaciones que queríamos ejecutar en un programa Cobol, siempre es importante proceder al cierre del Fichero con el que hemos estado trabajando. Hay que recordar este punto, ya que uno de los errores típicos consiste en dejar el fichero abierto.
Un ejemplo de rutina de cierre de fichero sería la siguiente:
******************************************************************
* 9999-CERRAR-FICHEROS
******************************************************************
9999-CERRAR-FICHEROS.
* CIERRE DE LOS FICHEROS DE ENTRADA Y SALIDA
* ------------------------------------------
CLOSE ENTRADA1
SALIDA1
*
* ESTABLECEMOS MARCA DE FICHERO CERRADO
SET CLOSE-FILES TO TRUE
*
* CARGAMOS FILE STATUS DE ENTRADA EN VARIABLE ASOCIADA
* ----------------------------------------------------
MOVE FS-ENTRADA1 TO SW-FILE-STATUS
MOVE LT-DESC-ERR-CLOSE TO WS-DESCRIPCION
*
* GESTION DEL FILE STATUS
* -----------------------
PERFORM 9400-CONTROL-FS-FICHEROS
THRU 9400-CONTROL-FS-FICHEROS-EXIT
*
* CARGAMOS FILE STATUS DE SALIDA EN VARIABLE ASOCIADA
* ---------------------------------------------------
MOVE FS-SALIDA1 TO SW-FILE-STATUS
MOVE LT-DESC-ERR-CLOSE TO WS-DESCRIPCION
*
* GESTION DEL FILE STATUS
* -----------------------
PERFORM 9400-CONTROL-FS-FICHEROS
THRU 9400-CONTROL-FS-FICHEROS-EXIT.
*
9999-CERRAR-FICHEROS-EXIT.
EXIT.
Los puntos clave de esta rutina serían:
1º) Sentencia CLOSE: Para ejecutar el cierre de los ficheros con los que hemos estado trabajando a lo largo del programa.
CLOSE ENTRADA1
2º) Recogida de la variable FILE STATUS: Para verificar si ha habido algún error al ejecutar el cierre del fichero utilizado.
MOVE FS-ENTRADA1 TO SW-FILE-STATUS
3º) Gestión del FILE STATUS: Aquí tenemos que mostrar los diferentes mensajes de error, en función de los resultados obtenidos con la ejecución de la sentencia CLOSE.
PERFORM 9400-CONTROL-FS-FICHEROS
THRU 9400-CONTROL-FS-FICHEROS-EXIT.
Este proceso habría que repetirlo para cada uno de los ficheros que hemos empleado en el programa. De hecho, en el ejemplo vemos como se realiza tanto para el fichero ENTRADA1 como para el fichero SALIDA1.
Saludos.
No hay comentarios:
Publicar un comentario