Вы находитесь на странице: 1из 3

OPEN DATASET Abre un fichero en el servidor de aplicacin.

Sintaxis: OPEN DATASET <fichero> [ MESSAGE <mensaje> ][ FOR INPUT | FOR OUPUT | FOR APPENDING ] [ IN BINARY | IN TEXT MODE ] [ AT POSITION <posicin> ]. Abre el fichero <fichero>. Si no se especifica la opcin para el modo de apertura, el fichero se abre para lectura en modo binario. Si el sistema puede abrir el fichero, SYSUBRC 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 aplicacin. 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 cmo ha ido la operacin de apertura del fichero. <mensaje> y la variable del sistema SYSUBRC 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 opcin de apertura: lectura, escritura, aadir), 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 adems est abierto en el programa, el posicionamiento sobre el fichero se inicia a la primera posicin de ste. Si el fichero no se puede abrir, SY-SUBRC valdr 8. FOR APPENDING -> El fichero se abre para escritura para aadir 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 posicin 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 transmisin. 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 nmero de bytes transferidos depende de la longitud del campo receptor. Cuando despus de la lectura, referenciamos el campo destino en otra sentencia, el sistema interpreta el contenido del campo en funcin de su tipo. IN TEXT MODE -> El fichero se abre en modo texto. Los datos ledos del fichero o los datos escritos sobre el fichero se realizan de lnea en lnea. Por cada sentencia TRANSFER se escriben todos los bytes pertenecientes a una lnea y se pone una marca de fin de lnea. Si el campo destino es ms pequeo que la lnea del fichero, los datos se truncan. Si el campo destino es mayor que la lnea leda, se rellena con caracteres en

blanco. Se debe utilizar el modo texto si queremos escribir string sobre el fichero, o si conocemos el formato de la lnea del fichero. AT POSITION -> El fichero se abre en una posicin determinada. El cursor del fichero se posiciona en la posicin <posicin> es contada en bytes desde el principio del fichero. No se puede especificar una posicin anterior al principio del fichero.

TRANSFER Definicin Escribe registros sobre un fichero en el servidor de aplicacin. Sintaxis: TRANSFER <campo> TO <fichero> [ LENGTH <longitud> ]. Escribe el valor del campo <campo> en el fichero <fichero>. El modo de transferencia se especifica en la sentencia OPEN DATASET. Si el fichero no esta abierto para escritura, el sistema intenta abrirlo en modo binario o con las opciones de la ltima sentencia OPEN DATASET para ese fichero, sin embargo, es recomendable abrir siempre el fichero con la sentencia OPEN DATASET.<fichero> puede ser un literal o un campo como en la sentencia OPEN DATASET. <campo> pude ser de un tipo elemental, o un string que no contenga tablas internas como componentes. Las tablas internas no se puede escribir directamente sobre ficheros. Con la opcin LENGHT se puede especificar la longitud de los datos que va a ser transferido. El sistema transfiere los primeros <longitud> bytes sobre el fichero. Si el campo <longitud> es ms pequeo que el campo, se trunca. Si <longitud> es ms grande que el campo, el campo se rellena con espacios en blanco.

CLOSE DATASET Definicin Esta sentencia cierra un fichero del servidor de aplicacin. Sintaxis: CLOSE DATASET <fichero>.Cierra el fichero <fichero>. <fichero> puede ser un literal o un campo, de la misma forma que en la sentencia OPEN DATASET. La operacin de cerrar un fichero es slo necesaria si quieres borrar el contenido de ste durante otra operacin de escritura. Para evitar errores y hacer que los programas sean ms fciles de leer, se debe cerrar un fichero antes de volver a utilizar la sentencia OPEN DATASET. Utilizando la sentencia CLOSE el programa se divide en bloques lgicos, haciendo ms fcil el mantenimiento.