✒️ABAP Los archivos en el servidor y las sentencias OPEN y READ
ABAP Los archivos en el servidor y las sentencias OPEN y READ
1. El tratamiento de archivos en el servidor
En un ambiente real de trabajo de SAP es común la utilización de un servidor de aplicaciones para trabajar con archivos.
Esto se debe principalmente a dos razones fundamentales:
- Es común que de entrada de un proceso que se ejecuta en el sistema SAP sea la salida de otro proceso que se ejecuta en el sistema, por lo que dadas las circunstancias, se vuelve indispensable trabajar en un entorno centralizado en donde los archivos se almacenan en carpetas compartidas a la que los diferentes recursos de la empresa tienen acceso.
- En ocasiones los archivos que generan los procesos que se ejecutan en el sistema SAP son muy pesados, por lo que no sería posible almacenarlos en las computadoras locales.
Abab 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
- READ DATASET: para la lectura de archivos en el servidor.
- TRANSFER: para transferir datos de archivos al servidor.
- DELETE: para borrar archivos del servidor.
- CLOSE: para cerrar archivos del servidor.
Con la transacción AL11 podemos acceder a los directorios de SAP del servidor e incluso abrir los archivos. Ingresando a la transacción veremos todos los directorios disponibles, haciendo doble clic sobre cualquiera de ellos, podremos ver los archivos que hay adentro y si los archivos son de texto, incluso podemos ver su contenido haciendo nuevamente doble clic. Si deseamos crear un nuevo directorio seguramente vamos a necesitar que los administradores del sistema SAP nos otorguen los permisos necesarios.
2. La apertura de archivos en el servidor
Utilizaremos la sentencia OPEN DATASET para la apertura de archivos. La sintaxis de la sentencia es la siguiente:
OPEN DATASET <archivo> FOR <ACCESS> IN <MODE>.
Si la apertura del archivo se realizó correctamente, entonces la variable de sistema SY-SUBRC será cero, caso contrario, será 8.
En <archivo> vamos a especificar el nombre del archivo junto con el directorio en donde se encuentra. Esta información puede ingresarse como un literal entre comillas o en una variable. Si no ingresamos el directorio en donde se encuentra el archivo y solo ingresamos el nombre del archivo, entonces el sistema intentará abrir el archivo en el directorio en el que se ejecute servidor de aplicaciones.
Si deseamos abrir un archivo para lectura, debemos utilizar la cláusula FOR INPUT como se ve a continuación:
OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>.
El archivo que se intenta abrir debe existir, caso contrario, la variable de sistema SY-SUBRC será 8.
Si el archivo existe y está abierto el sistema se posicionará al comienzo del archivo.
Es recomendable cerrar todos los archivos que ya están abiertos antes de realizar una reapertura con la sentencia OPEN DATASET.
Si deseamos abrir un archivo para escritura, debemos utilizar la cláusula FOR OUTPUT tal como se ve a continuación:
OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>.
Si el archivo no existe entonces se creará automáticamente.
Si el archivo existe pero está cerrado el contenido será sobre escrito.
Si el archivo existe y está abierto, el sistema se posicionará el comienzo del archivo.
Si de apertura del archivo se realiza correctamente, entonces la variable del sistema SY-SUBRC será cero, caso contrario, será 8
Si deseamos abrir un archivo para agregar información, debemos utilizar la cláusula FOR APPENDING tal como vemos a continuación.
OPEN DATASET <archivo> FOR APPENDING IN TEXT <MODE>.
Si el archivo no existe, se creará automáticamente.
Si el archivo existe pero está cerrado, el sistema lo abrirá y se posicionará al final del mismo.
Si el archivo existe y está abierto, el sistema se posicionará al final del archivo.
En todos los casos anteriores siempre la variable de sistema SY-SUBRC será cero.
Existen dos modos de apertura de archivos en el servidor de aplicaciones de SAP:
- MODO TEXTO: para abrir un archivo en el servidor de aplicaciones de SAP en modo texto, debemos utilizar la cláusula IN TEXT MODE como se ve a continuación:
OPEN DATASET <archivo> FOR INPUT IN TEXT MODE ENCODING DEFAULT.
Si leemos o escribimos en un archivo que ha sido abierto en modo texto, entonces la información es transferida línea a línea.
Si utilizamos el modo texto debemos agregar la palabra reservada ENCODING DEFAULT.
- MODO BINARIO: para abrir un archivo en el servidor de aplicaciones de SAP en modo binario, debemos utilizar la cláusula IN BINARY MODE como se ve a continuación:
OPEN DATASET <archivo> FOR <ACCESS> IN BINARY MODE.
Si leemos o escribimos en un archivo que ha sido abierto en modo binario, entonces la información es transferida byte a byte.
3. La tectura de archivos del servidor
Utilizaremos la sentencia READ DATASET para la lectura de archivos del servidor de aplicaciones de SAP. La sintaxis es la siguiente:
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.
Si la lectura se realizo correctamente, entonces la variable del sistema SY-SUBRC será cero, caso contrario, será 8.
 
 
 
Sobre el autor
Publicación académica de Alexis Jesus Perez Ramirez, en su ámbito de estudios para la Carrera Consultor ABAP.
Alexis Jesus Perez Ramirez
Profesión: Licenciado en Computación - Venezuela - Legajo: LK96B
✒️Autor de: 69 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Licenciado en computación egresado de la ucv, con amplia experiencia en base de datos, análisis de sistemas y programación; tanto en ambiente web, cliente/servidor como en computación central.
Certificación Académica de Alexis Perez