
Tratamientos de archivos en el servidor
En un ambiente real de trabajo se utiliza comunmente un servidor de aplicaciones para trabajar con archivos, por dos razones fundamentales:
- Es comun que la entrada de un proceso que se ejecuta se la salida de otro, por ello se vuelve indispensable trabajar en un entorno centralizado donde los archivos esten en carpetas compartidas.
- En ocaciones los archivos que generan los procesos que se ejecutan son muy pesados, por lo que no es posible almacenarlos en las computadoras locales.
ABAP tiene sentencias para el tratamiento de archivos en el servidor de aplicaciones, las principales son:
OPEN DATASET: apertura de archivos del servidor
READ DATASET: lectura de archivos del servidor
TRANSFER: transferir datos de archivos al servidor
DELETE: borrar archivos del servidor
CLOSE: cerrar archivos del servidor
- OPEN DATASET: apertura de archivos del servidor
OPEN DATASET <archivo> FOR <access> IN <mode>
Si la apertura del archivo fue correcta, sy-subrc sera 0, si no sera 8.
En archivo se escribe el nombre del archivo junto con el directorio donde se encuentra. La informacion puede ingresarse entre comillas o en una variable. Si no se ingresa directorio donde esta el archivo y solo se ingresa el nombre, entonces el sistema intentara abrir el archivo en el directorio en que se ejecuta el servidor de aplicaciones.
Si se quiere abrir un archivo solo para lectura, se debe ingresar FOR INPUT. Se recomienda cerrar todos los archivos antes de reabrir uno.
Si queremos abrir un archivo para escritura, usamos FOR OUTPUT:
OPEN DATASET <archivo> FOR OUTPUT IN TEXT <mode>.
Si queremos abrir un archivo para agregar informacion usamos la clausula FOR APPENDING:
OPEN DATASET <archivo> FOR APPENDING IN TEXT <mode>.
Si no existe el archivo se creara automaticamente; si existe pero esta cerrado el sistema lo abrira y llevara al final; si existe y esta abierto el sistema lleva al final.
Existen dos modos de apertura de archivos en servidos de aplicaciones:
MODO TEXTO:
Para abrir un archivo en modo texto usamos IN TEXT MODE:
OPEN DATASET <archivo> FOR INPUT IN TEXT MODE ENCONDING DEFAULT <mode>.
Si se lee o escribe en un archivo abierto en modo texto la informacion es transferida linea a linea. Se debe usar la clausula ENCONDING DEFAULT en este modo.
MODO BINARIO:
Para abrir un archivo en modo binario se usa IN BINARY MODE:
OPEN DATASET <archivo> FOR ACCESS <mode> IN BINARY MODE.
Si se lee o escribe en un archivo abierto en modo binario la informacion es transferida byte a byte.
- READ DATASET: lectura de archivos del servidor
READ DATASET <archivo> INTO <estructura>.
Para saber en que variable se guardaran los datos que se leen del archivo, se debe conocer la estructura del mismo. Si la lectura se realizo correctamente sy-subrc sera 0, si no sera 8.