✒️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 es común el uso de un servidor de aplicaciones para trabajar con archivos, y ABAP cuenta con sentencias para el tratamiento de estos 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 en el servidor.
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.
Nota: Con la transacción AL11 podemos acceder a los directorios de SAP del servidor e incluso abrir los archivos. Ingresando a la transacción veremos todos los directorios disponibles, haciendo doble clic sobre cualquiera de ellos podemos ver los archivos que hay adentro, si estos son de texto incluso se puede ver el contenido haciendo nuevamente clic sobre el archivo que queremos consultar. Si deseamos crear un nuevo directorio necesitaremos que los administradores del sistema nos otorguen los permisos necesarios.
Apertura de archivos
Se utiliza la sentencia OPEN DATASET para la apertura de archivos, la sintaxis de la sentencia es así:
OPEN DATASET <archivo> FOR <ACCESS> IN <MODE>.
Nota: Si la apertura del archivo se realizó correctamente el SY-SUBRC será igual a 0, en caso contrario será 8.
El nombre del archivo junto con el directorio en donde se encuentra pueden ingresarse con literal entre comillas o en una variable. En caso de no ingresarse el directorio y sólo se ingrese el nombre, entonces el sistema intentará abrir el archivo en el directorio en el que corre el servidor de aplicaciones.
Si lo que se desea es abrir un archivo para lectura, se tiene que usar la cláusula FOR INPUT:
OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>.
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 agregar información, debemos utilizar la cláusula FOR APPENDING
OPEN DATASET <archivo> FOR APPENDING IN TEXT <MODE>.
EJEMPLO:
PEN 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.
Existen dos modos de aperture de archivos:
Modo Texto: Se tiene que utilizar la cláusula IN TEXT MODE, tal como vemos a continuación.
OPEN DATASET <archivo> FOR <ACCESS> IN TEXT MODE ENCODING DEFAULT.
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.
MODO BINARIO: Se utiliza la cláusula IN BINARY MODE:
OPEN DATASET <archivo> FOR <ACCESS> IN BINARY MODE.
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.
LECTURA DE ARCHIVOS EN EL SERVIDOR.
Se hace mediante la sentencia READ DATASET, para la lectura de archivos en el servidor. La sintaxis de la sentencia es la siguiente.
READ DATASET <archivo> INTO <estructura>.
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.
 
 
 
Sobre el autor
Publicación académica de Jose Alberto Rivera Gonzalez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jose Alberto Rivera Gonzalez
Profesión: Técnico Informático - Mexico - Legajo: LG32F
✒️Autor de: 102 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jose Rivera