✒️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
OPEN DATASET: Abre un fichero en el servidor de aplicación.
Sintaxis:
OPEN DATASET <fichero> [ MESSAGE <mensaje> ] [ FOR INPUT | FOR OUPUT | FORAPPENDING ]
[ IN BINARY | IN TEXT MODE ] [ AT POSITION <posición> ].
Abre el fichero <fichero>. Si no se especifica la opción para el modo de apertura, el fichero se abre para lectura en modo binario. Si el sistema puede abrir el fichero, SY-SUBRC vale 0. En caso contrario vale 8. <fichero> puede ser un literal o un campo que contenga el nombre del fichero. Si no se especifica el camino de acceso del fichero, el sistema abre el fichero en el directorio donde el sistema SAP se esté ejecutando, en el servidor de aplicación. Para abrir un fichero, el usuario bajo el que se esté ejecutando el sistema SAP debe tener las apropiadas autorizaciones del sistema operativo.
- MESSAGE -> Sobre el campo <mensaje> recibimos mensajes del sistema operativo de cómo ha ido la operación de apertura del fichero. <mensaje> y la variable del sistema SY-SUBRC nos pueden servir para controlar los posibles errores que puedan surgir.
- FOR INPUT -> El fichero se abre para lectura. Si el fichero no existe SY-SUBRC vale 8. Si el fichero ya se encuentra abierto (para cualquier opción de apertura: lectura, escritura, añadir), el sistema inicia el posicionamiento sobre el fichero al principio de éste. Con esto el sistema no da error, pero se recomienda utilizar la sentencia CLOSE DATASET antes de utilizar de nuevo un fichero.
- FOR OUPUT -> Abre un fichero para escritura. Si el fichero no existe se crea, si existe y además está abierto en el programa, el posicionamiento sobre el fichero se inicia a la primera posición de éste. Si el fichero no se puede abrir, SY-SUBRC valdrá 8.
- FOR APPENDING -> El fichero se abre para escritura para añadir registros al final del fichero. Si el fichero no existe se crea. Si el fichero existe y está cerrado, el sistema abre el fichero y posiciona el cursor del fichero al final de éste. Si el fichero existe y está abierto en el programa, la posición del cursor del fichero se posiciona al final de éste. La variable del sistema siempre toma el valor 0. Es aconsejable cerrar el fichero antes de abrirlo en el mismo programa.
- IN BINARY MODE -> El fichero abierto, tanto para lectura como para escritura, los datos se transmiten byte a byte. El contenido del fichero no es interpretado durante la transmisión. Cuando escribimos el contenido de un campo sobre un fichero, el sistema transmite todos 85 los bytes del campo fuente. Cuando leemos datos de un fichero de un campo, el número de bytes transferidos depende de la longitud del campo receptor. Cuando después de la lectura, referenciamos el campo destino en otra sentencia, el sistema interpreta el contenido del campo en función de su tipo.
- IN TEXT MODE -> El fichero se abre en modo texto. Los datos leídos del fichero o los datos escritos sobre el fichero se realizan de línea en línea. Por cada sentencia TRANSFER se escriben todos los bytes pertenecientes a una línea y se pone una marca de fin de línea. Si el campo destino es más pequeño que la línea del fichero, los datos se truncan.
READ DATASET: Lee un fichero secuencial en el servidor de aplicación.
Sintaxis:
READ DATASET <fichero> INTO <campo> [ LENGTH <longitud> ].
Lee datos del fichero secuencial <fichero> sobre el campo <campo>. Para decidir el formato de <campo> es necesario conocer la estructura del fichero. El modo de transferencia se indica en la sentencia OPEN DATASET. Si el fichero no está abierto para lectura, el sistema intenta abrir el fichero en modo binario, o con las opciones de la última sentencia OPEN DATASET sobre ese fichero. No obstante, es recomendable abrir siempre el fichero con la sentencia OPEN DATASET.
Si la operación de lectura ha sido satisfactoria la variable SY-SUBRC vale 0, si vale 4 quiere decir que hemos llegado al final del fichero, y si vale 8 es que el fichero no ha podido ser abierto. Trabajando en el modo binario, se puede utilizar la cláusula LENGTH para que el sistema actualice el campo <longitud> con la longitud del campo leído.
 
 
 
Sobre el autor
Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para la Carrera Consultor ABAP.
Sergio Armando Beltran Castaneda
Profesión: Ingeniero de Sistemas con Especialización en Gerencia de Proyectos - Colombia - Legajo: WK55K
✒️Autor de: 70 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy ingeniero de sistemas desde hace mas de 10 años y quiero enfocarme en el mundo sap, iniciando en el lenguaje abap, con miras a ampliar mi conocimiento profesional y laboral.
Certificación Académica de Sergio Beltran