![](/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/244.jpg)
Lección 4: Archivos en Servidor: las sentencias OPEN y READ
1. Tratamiento de Archivos en el Servidor
Las principales sentencias para el manejo de archivos en el servidor son:
- OPEN DATASET : Para la apertura de archivos del servidor
- READ DATASET : Para la lectura de archivos del servidor
- TRANSFER : Para transferir datos del archivo al servidor
- DELETE: Para borrar archivos del servidor
- CLOSE: Para cerrar archivos del servidor
Audio: Con la transacción AL11 se pueden ver los directores que se encuentran en el servidor y los archivos que hay dentro de cada uno. Si damos doble clic sobre algún archivo y si estos son de texto vamos a ver el contenido de estos. Si deseamos crear un nuevo directorio vamos a necesitar que los administradores nos otorguen los permisos necesarios.
2. Apertura de archivos en el servidor
Se utiliza la sentencia OPEN DATASET, con la siguiente sintaxis:
OPEN DATASET <archivo> FOR <ACCES> IN <MODE>
Si es correcta el SY-SUBRC = 0, si no es correcta SY-SUBRC=8
Nota: el nombre del archivo puede ingresarse junto al directorio que lo contiene, esto se hace como literal entre comillas o en una variable, si solo ingresarmos el nombre SAP lo buscará en el directorio en el que corre el servidor de aplicaciones.
Con las siguientes modalidades:
- Si lo abrimos solo para lectura usamos FOR INPUT
OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>
El archivo debe existir y caso contrario SY-SUBRC = 8. Si el archivo existe y está abierto el sistema se posicionará al comienzo del archivo.
Es recomendable cerrar todos los archivos que fueron abiertos antes de una re-apertura
2. Si lo abrimos para escritura
OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>
Si el archivo no existe, se creará automáticamente.
Si existe y está cerrado el contenido será sobre-escrito
Si existe y está abierto, el sistema se posicionará al comienzo del archivo.
Si la apertura se realiza sin error el SY-SUBRC = 0, caso contrario SY-SUBRC= 8.
3. Si lo abrimos para agregar información
OPEN DATASET <archivo> FOR APPENDING IN TEXT <MODE>
Si el archivo no existe, se creará en automático.
Si existe y está cerrado, el sistema se posicionará al final del mismo
Si existe y está abierto, el sistema se posicionará al final del archivo.
El SY-SUBRC siempre será 0.
Ejemplo:
Open DataSet p_path For Appending In Text Mode Encoding Default.
If sy-subcr NE 0.
Message s000(z_prueba) With text-004.
EndIf.
Existen 2 modos de apertura de archivo:
- Modo Texto: usamos la cláusula IN TEXT MODE ( se debe agregar la palabra reservada ENCODING DEFAULT)
- Sintaxis: Open DataSet <archivo> FOR <Access> IN TEXT MODE ENCODING DEFAULT.
Si se lee o escribe en modo texto, la información es transferida linea a linea
- Modo Binario : usamos la cláusula IN BINARY MODE
Si se lee o escribe en modo binario, la información es transferida byte a byte
Open DataSet <archivo> FOR <Access> IN BINARY MODE.
3. Lectura del archivo del servidor
Se realiza con la sentencia READ DATASET, la sintaxis de la sentencia es la siguiente:
READ DATASET <archivo> INTO <estructura>
Para determinar en que variable debemos almancenar los datos que leeremos del archivo, debemos conocer la estructura del archivo que leeremos.
Si la lectura fue correcta SY-SUBRC = 0, caso contrario SY-SUBRC = 8.
 
 
 
Sobre el autor
Publicación académica de Eric David Rivas Rivas, en su ámbito de estudios para la Carrera Consultor ABAP.
Eric David Rivas Rivas
Profesión: Ing. en Ciencias de la Computación - El Salvador - Legajo: GO81U
✒️Autor de: 29 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP FI Nivel Avanzado
- Carrera Consultor en SAP FI Nivel Inicial
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime