✒️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
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.
- CLOSE: para cerrar archivos.
Con la transacción AL11 podemos acceder a los directorios de SAP del servidor e incluso abrir los archivos.
Apertura de archivos en el Servidor
Utilizando la sentencia OPEN DATASET permitiremos la apertura de archivos. la sintaxis es: OPEN DATASET <archivo> FOR <ACCESS> IN <MODE>
Si la apertura del archivo se realizó correctamente, entonces el SY.SUBRC será 0 caso contrario, será 8.
El nombre del archivo junto con el directorio en donde se encuentra, pueden ingresarse como un literal entre comillas o en una variable. si no ingresamos en el directorio y solo ingresamos el nombre, entonces el sistema intentara abrir el archivo en el directorio en el que corre el servidor de aplicaciones.
Si queremos abrir un archivo para lectura, debemos utilizar la cláusula FOR INPUT. La sintaxis es: OPEN DATASET <archivo> FOR INPUT IN TEXT <MODE>
El archivo que se intenta abrir debe existir caso contrario el SY-SUBRC será 8. Si el archivo existe y está abierto, el sistema se posicionara al comienzo del archivo.
Si queremos abrir un archivo para escritura, debemos utilizar la cláusula FOR OUTPUT. La sintaxis es: OPEN DATASET <archivo> FOR OUTPUT IN TEXT <MODE>.
SI el archivo no existe, se CREARA automáticamente.
SI existe pero está cerrado el contenido será sobrescrito.
Si existe y está abierto, el sistema se posicionara al comienzo del archivo.
Si la apertura se realiza correctamente, entonces el SY-SUBRC será 0. Caso contrario, será 8.
SI queremos abrir un archivo para agregar información, debemos utilizar la cláusula FOR APPENDING. La sintaxis es: OPEN
DATASET <archivo> FOR APPENDING IN TEXT <MODE>.
SI el archivo no existe, se CREARA automáticamente.
Si existe pero está cerrado, el sistema lo abrirá y se posicionara al final del mismo.
SI existe y está abierto, el sistema se posicionara al final del archivo.
Siempre el SY-SUBRC será 0.
Existen dos modos de apertura de archivos.
- Modo Texto: debemos utilizar la cláusula IN TEXT MODE. La sintaxis es: OPEN DATASET <archivo> FOR <ACCESS> IN TEXT MODE ENCODING DEFAULT.
Si leemos o escribimos un archivo que ha sido abierto en modo texto la información es transferida línea a línea.
SI utilizamos el modo texto debemos agregar la palabra reservada ENCODING DEFAULT. - Modo Binario: debemos utilizar la cláusula IN BINARY MODE. La sintaxis es: OPEN DATASET <archivo> FOR <ACCESS> IN BINARY MODE.
Si leemos o escribimos un archivo que ha sido abierto en modo binario la información es transferida byte a byte.
Lectura de archivos del servidor
Utilizaremos la sentencia READ DATASET. La sintaxis será 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 estructura se realizó correctamente, el SY-SUBRC será 0. Sino, será 8.
Ejemplo:
* Leo el Fichero
DO.
READ DATASET p_path INTO st_archivo.
IF sy-subrc = 0.
MOVE-CORRESPONDIG st_archivo TO ti_archivo.
APPEND ti_archivo.
Clear: ti_archivo, st_archivo.
Else.
EXIT.
ENDIF.
ENDDO.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Felix Meza
Sobre el autor
Publicación académica de Jeferson José Peña Curvelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Jeferson José Peña Curvelo
Venezuela - Legajo: PD49W
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Jeferson Peña