✒️ABAP Los archivos en el servidor y las sentencias OPEN y READ
ABAP Los archivos en el servidor y las sentencias OPEN y READ
Tratamiento de archivos en el servidor
Es comùn en un ambiente real de trabajo el uso de un servidor de aplicaciones para trabajar con archivos.
Las principales sentencias para el manejo de archivos en el servidor de aplicaciones son:
OPEN DATASET: Abrir archivos del servidor
READ DATASET: Lectura archivos del servidor
TRANSFER: transferencia de datos de archivos del servidor
DELETE: Borrar
CLOSE: Cerrar archivos del servidor
Con la transacciòn AL11 podemos acceder a los directorios de SAP del servidor e incluso abrir los archivos, haciendo doble click sobre cualquier directorio disponible podemos ver los archivos que hay adentro. Si los archivos son de texto podemos ver su contenido. SI queremos crear un directorio debemos pedir los permisos a los BASIS.
Apertura de archivos en el servidor
Se usa OPEN DATASET con la siguiente sintaxis:
OPEN DATASET <archivo> FOR <ACCESS>IN<MODE>.
si hay algun problema en la apertura el sy-subrc serà 8.
Si no ingresamos el directorio y solo ingresamos el nombre, el sistema intentará abrir el archivo en el directorio en el que corre el server de aplicaciones.
Para abrir un archivo para lectura usamos la sgt sintaxis.
OPEN DATASET <archivo> FORM INPUT IN TEXT <MODE>.
El archivo que se intenta abrir debe existir, en caso de que no el sy-subrc será 8. Si el archivo existe y està abierto, el sistema se posicionará al comienzo del archivo.
SI queremos abrir un archivo para escritura, usamos FOR OUTPUT así:
OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>.
Si el archivo no existe, se creará automaticamente
Si existe pero está cerrado el contenido será sobrescrito.
Si existe y está abierto, el sistema se posicionará al comienzo del archivo.
Ejemplo,
OPEN DATASET p_path FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
MESSAGE s000 (z_prueba) WITH text-004.
ENDIF.
Si queremos abrir un archivo para agregar información usamos la clausula FOR APPENDING así:
OPEN DATASET p_path FOR APPENDING IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
MESSAGE s000 (z_prueba) WITH text-004.
ENDIF.
Si existe pero esta cerrado, el sistema lo abre y se posiciona al final del mismo.
Si existe y esa abierto, el sistema se posicionará al final del archivo.
Existen dos modos de apertura:
MODO TEXTO:
Usamos la cláusula IN TEXT MODE asi:
OPEN DATASET<archivo> FOR <ACCESS> IN TEXT MODE ENCODING DEFAULT.
Si leemos o escribimos en un archivo que ha sido abierto en modo texto, la información es transferida linea a linea.
Si usamos el modo texto debemo agregar la palabra ENCODING DEFAULT.
MODO BINARIO:
Para abrir un archivo en modo binario usamos IN BINARY MODE, así:
OPEN DATASET p_path FOR INPUT IN BINARY MODE.
IF sy-subrc NE 0.
MESSAGE s000(z_prueba) WITH text-004.
ENDIF.
Lectura de archivos del servidor
Usamos la sentencia READ DATASET para leer archivos del servidor. 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 Walter Giovanny Montoya García, en su ámbito de estudios para la Carrera Consultor ABAP.
Walter Giovanny Montoya García
Profesión: Administrador de Sistemas Informáticos - Colombia - Legajo: UX58H
✒️Autor de: 55 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Walter Montoya