![](/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/361.jpg)
Tratamiento de archivos en el servidor:
--------------------------------------------------------------------------------------------
La utilización de un servidor de aplicaciones para trabajar con archivos es muy común en un ambiente real de trabajo.
--------------------------------------------------------------------------------------------
Algunas sentencias ABAP 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.
--------------------------------------------------------------------------------------------
A través de AL11 podremos acceder a los directorios de SAP del servidor.
--------------------------------------------------------------------------------------------
Apertura de archivos en el servidor:
Utilizamos OPEN DATASET.
------------------------------------------------------------------------------------
Estructura:
OPEN DATASET <archivo> FOR <ACCESS> IN <MODE>.
------------------------------------------------------------------------------------
El nombre del archivo junto con su directorio pueden ingresarse de forma literal entra comillas o en una variable.
Si queremos abrir un archivo de solo lectura, debemos utilizar FOR INPUT.
------------------------------------------------------------------------------------
Estructura:
OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>.
------------------------------------------------------------------------------------
Si la apertura se realizó correctamente, SY-SUBRC será 0. Caso contrario, 8.
El archivo debe existir. Caso contrario, 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 re-apertura con la sentencia OPEN DATASET.
------------------------------------------------------------------------------------
Ejemplo:
OPEN DATASET p_path FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
* Error al abrir el archivo
MESSAGE s000(z_prueba) WITH text-004.
ELSE.
------------------------------------------------------------------------------------
Si queremos abrir un archivo para escritura, debemos utilizar FOR OUTPUT.
------------------------------------------------------------------------------------
Estructura:
OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>.
------------------------------------------------------------------------------------
Si el archivo no existe, éste se crea automáticamente.
Si existe y esta cerrado, el contenido será sobrescrito.
Si existe y esta abierto, el sistema se posicionará al comienzo del archivo.
Si la apertura se realiza correctamente SY-SUBRC será 0. Caso contrario, 8.
------------------------------------------------------------------------------------
Ejemplo:
OPEN DATASET p_path FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
* Error al abrir el archivo
MESSAGE s000(z_prueba) WITH text-004.
ENDIF.
------------------------------------------------------------------------------------
Si que abrir un archivo para agregar información, debemos utilizar FOR APPENDING.
------------------------------------------------------------------------------------
Estructura:
OPEN DATASET <archivo> FOR APPENDING IN TEXT <MODE>.
------------------------------------------------------------------------------------
Si el archivo no existe, éste se crea automáticamente.
Si existe y esta cerrado, el sistema lo abrirá y se posicionará al final.
Si existe y esta abierto, el sistema se posicionará al final del archivo.
Siempre SY-SUBRC será 0.
------------------------------------------------------------------------------------
Ejemplo:
OPEN DATASET p_path FOR APPENDING IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
* Error al abrir el archivo
MESSAGE s000(z_prueba) WITH text-004.
ENDIF.
------------------------------------------------------------------------------------
Existen dos modos de apertura:
MODO TEXTO:
Utilizamos la cláusula IN TEXT MODE ENCODING DEFAULT.
La información es transferida línea a línea.
MODO BINARIO:
Utilizamos la cláusula IN BINARY MODE.
La información es transferida byte a byte.
Ejemplo:
OPEN DATASET p_path FOR INPUT IN BINARY MODE.
IF sy-subrc NE 0.
* Error al abrir el archivo
MESSAGE s000(z_prueba) WITH text-004.
ENDIF.
--------------------------------------------------------------------------------------------
Lectura de archivos del servidor:
Utilizamos READ DATASET.
Debemos conocer la estructura del archivo para determinar en que variable almacenaremos los datos.
------------------------------------------------------------------------------------
Estructura:
READ DATASET <archivo> INTO <estructura>.
------------------------------------------------------------------------------------
Si la lectura se realizó correctamente, SY-SUBRC será 0. Caso contrario, 8.
------------------------------------------------------------------------------------
Ejemplo:
DO.
READ DATASET p_path INTO st_archivo.
IF sy-subrc = 0.
MOVE-CORRESPONDING st_archivo TO ti_archivo.
APPEND ti_archivo.
CLEAR: ti_archivo, st_archivo.
ELSE.
EXIT.
ENDIF.
ENDDO.
--------------------------------------------------------------------------------------------
 
 
 
Sobre el autor
Publicación académica de Martin Alejandro Goya, en su ámbito de estudios para la Carrera Consultor ABAP.
Martin Alejandro Goya
Profesión: Ingeniero en Computacion - Argentina - Legajo: CJ13E
✒️Autor de: 49 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Martin Goya