
1- Tratamiento de archivos en el servidor: en un ambiente real de trabajo, es común la utilización de un servidor de aplicaciones, para trabajar 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:
- OPEN DATASET: para la apertura de archivos del servidor.
- READ DATASET: para la lectura del archivo del servidor.
- TRANSFER: para transferir datos de archivos del servidor.
- DELETE. para borrar archivos del servidor.
- CLOSE: para cerrar archivo del servidor.
Transaccion AL11: podemos acceder los directorios de SAP del servidor.
2- Apertura de archivos en el servidor:
- Sentencia OPEN DATASET: para apertura de archivos. La sintaxis -> OPEN DATASET <archivo> FOR <access> IN <MODE>. - El nombre del archivo junto con el directorio donde se encuentra, pueden ingresarse como un literal entre comillas o en una variable. Si no ingresamos el directorio y solo ingresamos el nombre, entonces el sistema intentará abrir el archivo en el directorio en el que corre el servidor de aplicaciones.
- Si queremos abrir un archivo para lectura, debemos utilizar la cláusula FOR INPUT -> OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>
- Es recomendable cerrar todos los archivos que ya están abiertos antes de realizar una re-apertura con la sentencia OPEN DATASET.
- Si queremos abrir un archivo para escritura, debemos utilizar la cláusula FOR OUTPUT. Ej. (OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>.
- Si el archivo no existe, se creará automáticamente. Si existe pero está cerrado el contenido sera sobrescrito. Si existe y esta abierto el sistema se posicionara el comienzo del archivo. Si la apertura se realiza correctamente, entonces SY-SUBRC será 0, caso contrario 8.
- Si queremos abrir un archivo para agregar información, debemos utilizar la cláusula FOR APPENDING. Ej. (OPEN DATASET <archivo> FOR APPENDING IN TEXT <MODE>.
- Existen dos modos de apertura de un archivos.
- MODO TEXTO: debemos utilizar la cláusula IN TEXT MODE. Ej.: OPEN DATASET <archivo> IN TEXT MODE ENCODING DEFAULT.
- Si leemos o escribimos en un archivo que ha sido abierto en modo texto, la información es transferida línea a línea. Si utilizamos el modo texto debemos agregar la palabra reservada ENCODING DEFAULT.
- MODO BINARIO: debemos utilizar la cláusula IN BINARY MODE. Ej.: OPEN DATASET <archivo> FOR <ACCES> IN BINARY MODE.
- Si leemos o escribimos en un archivo que ha sido abierto en modo binario, la información es transferida byte a byte.
3- Lectura de archivo del servidor.
- Utilizaremos la sentencia READ DATASET para la lectura de archivos del servidor. Ej.: READ DATASET <archivo> INTO <estructura>.
- Para determinar en que variable debemos almacenar los datos que leeremos del archivo, debemos conocer la estructura del archivo que leeremos.