✒️ABAP Los archivos en el servidor y las sentencias OPEN y READ
ABAP Los archivos en el servidor y las sentencias OPEN y READ
- En un ambiente real de trabajo de SAP es como una 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.
- La transacción al11 podemos acceder a los directorios de SAP del servidor e incluso abrir los archivos ingresando 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
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 punto 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.
OPEN DATASET < archivo> FOR APPENDING IN TEXT <MODE>.
- Si el archivo no existe se creará
- 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
 
 
 
Sobre el autor
Publicación académica de Alejandra Daniela Naranjo Belmonte, en su ámbito de estudios para la Carrera Consultor ABAP.
Alejandra Daniela Naranjo Belmonte
Profesión: Analista/desarrollador de Software - Mexico - Legajo: ON48V
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alejandra Naranjo