6.4. - Archivos en servidor: las sentencias OPEN y READ
6.4.1. - Tratamiento de archivos en el servidor
Es común la utilización de un servidor de aplicaciones para trabar con archivos. ABAP dispone de una serie de sentencias para el tratamiento de archivos ubicados en el servidor de aplicaciones.
Las principales sentencias para el manejo de archivos en el servidor de aplicaciones son:
1. OPEN DATASET
a. Apertura de archivos del servidor
2. READ DATASET
a. Lectura de archivos del servidor
3. TRANSFER
a. Transferir datos de archivos del servidor
4. DELETE
a. Borrar archivos del servidor
5. CLOSE
a. Cerrar archivos del servidor.
6.4.2. - Apertura de archivos en el servidor
Se utilizara la sentencia “OPEN DATASET” para la apertura de archivos. La sintaxis es la siguiente:
Si la apertura del archivo se realizó correctamente, SY-SUBRC = 0, sino SY-SUBRC = 8.
El nombre de archivo junto con el directorio en donde se encuentra, pueden añadirse como un literal entre comillas o en una variable. Si solo se indica el nombre, el sistema intentara abrir el archivo en el directorio en el que correo el servidor de aplicaciones.
Si se quiere abrir un archivo para lectura, se debe utilizar la cláusula “FOR INPUT”.
El archivo que se intenta abrir debe existir. Si no existe SY-SUBRC = 8.
Si el archivo existe y está abierto, el sistema se posicionará al comienzo del archivo.
En el ejemplo, p_path es un parámetro de la pantalla de selección en donde el usuario escribe el directorio y el nombre del archivo. Es recomendable cerrar todos los archivos que ya están abiertos antes de realizar una reapertura con la sentencia “OPEN DATASET”.
Si se quiere abrir un archivo para escritura, se debe utilizar la cláusula “FOR OUTPUT”.
Si el archivo no existe, se creará automáticamente.
Si existe pero está cerrado, el contenido será sobrescrito.
Si existe y está abierto, el sistema se posicionara al comienzo del archivo.
Si la apertura se realiza correctamente, entonces SY-SUBRC = 0, sino SY-SUBRC = 8.
Si se quiere abrir un archivo para agregar información, se debe utilizar la cláusula “FOR APPENDING”.
Si el archivo no existe, se creará automáticamente.
Si existe pero está cerrado, el sistema lo abrirá y se posicionara al final.
Si existe y está abierto, el sistema se posicionará al final del archivo.
Siempre SY-SUBRC = 0.
Existen dos modos de apertura de archivos:
1. Modo texto
a. Se debe utilizar la cláusula “IN TEXT MODE”.
b.
c. Si se lee o escribe en un archivo que ha sido abierto en modo texto, la información es transferida línea a línea.
d. Si se utiliza el modo texto, se debe añadir la palabra reservada “ENCODING DEFAULT”.
e.
2. Modo binario
a. Se debe utilizar la cláusula “IN BINARY MODE”.
b.
c. Si se lee o escribe un archivo que ha sido abierto en modo binario, la información es transferida byte a byte.
d.
6.4.3. - Lectura de archivos del servidor
Se utiliza la sentencia “READ DATASET” para la lectura de archivos del servidor. La sintaxis es:
Si la lectura se realizó correctamente, SY-SUBRC = 0, sino SY-SUBRC = 8.