
Los archivos en el servidor y las sentencias OPEN y READ
1 El tratamiento de archivos en el servidor
El trabajo con archivos ubicados en el servidor de aplicaciones SAP. Es un enfoque recomendado cuando se manejan archivos grandes o cuando varios procesos deben acceder a los mismos datos desde un entorno centralizado.
ABAP ofrece instrucciones específicas para interactuar con archivos en el servidor:
-
OPEN DATASET: abre el archivo para lectura, escritura o anexado.
-
READ DATASET: lee datos del archivo.
-
TRANSFER: escribe datos en el archivo.
-
DELETE DATASET: elimina el archivo.
-
CLOSE DATASET: cierra el archivo.
Modos de apertura de archivo:
-
FOR INPUT: apertura para lectura.
-
FOR OUTPUT: apertura para escritura (sobrescribe).
-
FOR APPENDING: apertura para agregar información.
Modos de transferencia:
Es fundamental controlar el valor de SY-SUBRC tras cada operación para verificar si se ejecutó correctamente. Si el archivo no existe y se abre para escritura, el sistema lo crea automáticamente.
Se recomienda siempre cerrar los archivos abiertos mediante CLOSE DATASET para liberar recursos y evitar errores.
2 La apertura de archivos en el servidor
Para poder trabajar con un archivo en el servidor SAP (ya sea para leer, grabar o anexar datos), se debe abrir primero utilizando la sentencia ABAP:
OPEN DATASET <archivo> FOR INPUT/OUTPUT/APPENDING IN TEXT/BINARY MODE ENCODING DEFAULT.
Esta sentencia indica que el archivo será abierto para un propósito específico (lectura, escritura o anexado), y define además el modo de tratamiento del contenido (texto o binario) y la codificación.
Parámetros de apertura
-
FOR INPUT: se abre el archivo para lectura.
-
Si el archivo no existe, el sistema asigna SY-SUBRC = 8.
-
Si existe, se posiciona en la primera línea del archivo.
-
FOR OUTPUT: se abre para escritura.
-
Si el archivo existe, será sobrescrito.
-
Si no existe, se crea automáticamente.
-
Si el archivo está abierto, el cursor se sitúa en la primera línea.
-
FOR APPENDING: se abre para agregar datos al final.
-
Si el archivo existe, se posiciona al final.
-
Si no existe, se crea automáticamente.
3 La lectuta de archivos del servidor
Una vez abierto un archivo del servidor con OPEN DATASET ... FOR INPUT, es posible leer su contenido línea por línea utilizando la sentencia:
READ DATASET <archivo> INTO <variable>.
Esta instrucción permite leer los datos almacenados en el archivo y transferirlos a una variable en memoria ABAP para su posterior procesamiento.
READ DATASET <archivo> INTO <variable>.
<archivo>: debe ser el nombre del archivo abierto previamente con OPEN DATASET.
<variable>: puede ser una variable tipo CHAR, STRING, o una estructura, dependiendo del formato del archivo
Comportamiento de SY-SUBRC:
-
SY-SUBRC = 0: lectura realizada con éxito.
-
SY-SUBRC = 4: fin del archivo alcanzado.
-
SY-SUBRC = 8: error en la lectura.