![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Los archivos en el servidor y las sentencias OPEN y READ
ABAP Los archivos en el servidor y las sentencias OPEN y READ
![ABAP Los archivos en el servidor y las sentencias OPEN y READ ABAP Los archivos en el servidor y las sentencias OPEN y READ](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/50.jpg)
EL TRATAMIENTO DE ARCHIVOS EN EL SERVIDOR: En un ambiente de trabajo de SAP 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 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 de archivos del servidor.
- TRANSFER: para transferir datos de archivos al servidor.
- DELETE: para borrar archivos del servidor.
- CLOSE: para cerrar archivos del servidor.
A través de la transacción AL11 se puede acceder a los directorios del servidor de SAP e ingresar a los archivos.
LA APERTURA DE ARCHVIOS EN EL SERVIDOR: utilizaremos la sentencia OPEN DATASET para la apertura de archivos. La sintaxis de la sentencia es: OPEN DATASET <archivo>FOR<ACCESS>IN<MODE>, en caso de que se desee abrir un archivo solo para lectura se utiliza la sentencia: OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>.
Importante: 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, ej: OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>.
- Entonces, si el archivo no existe entonces se creará automáticamente.
- Si el archivo existe, pero está cerrado el contenido será sobrescrito.
- Si el existe y está abierto, el sistema se posicionará al comienzo del archivo.
- Si la apertura del archivo se realiza correctamente, entonces la variable del sistema SY-SUBRC será 0 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>.
- Entonces, si el archivo no existe entonces 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 del sistema SY-SUBRC será 0.
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, ej: 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, ej: OPEN DATASEET <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.
LA LECTURA DE ARCHIVOS DEL SERVIDOR: se utilizará la sentencia READ DATASET para la lectura de archivos del servidor de aplicaciones de SAP. La sintaxis de la sentencia en la siguiente: READ DATASET <archivo> INTO <estructura>.
- Para determinar en qué variable debemos almacenar los datos que leeremos del archivo, debemos conocer la estructura del archivo que leeremos.
- Si la lectura se realizó correctamente, entonces la variable del sistema SY-SUBRC será 0. Caso contrario será 8.
 
 
 
Sobre el autor
Publicación académica de Jean Carlos Lopez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jean Carlos Lopez
Profesión: Ingeniero en Infomática - Venezuela - Legajo: AG33O
✒️Autor de: 75 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP BASIS Nivel Inicial
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime