
ARCHIVOS EN SERVIDOR: LAS SENTENCIAS TRANSFER, DELETE Y CLOSE
1. TRANSFERENCIA DE ARCHIVOS AL SERVIDOR.
- Sentencia TRANSFER: para transferir datos desde nuestros programas ABAP a los archivos ubicados en el servidr de
aplicaciones.
Ej:
TRANSFER <estructura> TO <archivo>.
El modo en q se realiza la transferencia de información se corresponde con el modo de apertura del archivo.
Si el archivo no está abierto para escritura, el sistema intentará abrirlo en BINARY MODE o utilizando la última ejecución de la sentencia OPEN DATASET.
Ej: Transferencia de archivos con TRANSFER
* Abrir Fichero
OPEN DATASET p_path FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
MESSAGE s000(z_prueba) WITH text-004.
ELSE.
* Transfiero los datos al fichero
st_archivo-dni = '27654315'.
st_archivo-nombre_ape = 'Ricardo Alvarez'.
st_archivo-estado_usu = 'A'.
st_archivo-direccion = 'Lavallo1 1454'.
st_archivo-codigo_postal = '1568'.
st_archivo-f_nacimiento = '19781097'.
st_archivo-estado_civil = 'S'.
TRANSFER st_archivo TO p_path.
Con la transacción estándar CG3Y podemos copiar un archivo alojado en el servidor en nuestra computadora es muy sencillo utilizarla basta con pasar la ruta completa del origen y la del destino y elegir el formato de transferencia q puede ser ASCII o BINARY.
2. BORRADO DE ARCHIVOS DEL SERVIDOR
- Sentencia DELETE DATASET: para borrar archivos del servidor de aplicaciones.
Ej:
DELETE DATASET <archivo>.
Para borrar un archivo, previamente debemos abrirlo.
Si el borrado se realiza correctamente, entonces el SY-SUBRC = 0. Else 4.
Ej: Borrado de archivos con DELETE DATASET
* Borra el archivo
IF NOT p_borrar IS INITIAL.
DELETE DATASET p_path.
ENDIF.
3. CIERRE DE ARCHIVOS DEL SERVIDOR
- Sentencia CLOSE DATASET: para cerrar archivos del servidor de aplicaciones.
Ej:
CLOSE DATASET <archivo>.
NOTA: Es ampliamente recomendable realizar siempre el cierre de los archivos.
Ej: Cierre de archivos con CLOSE DATASET
* Cierro el fichero
CLOSE DATASET p_path.
IF sy-subrc NE 0.
MESSAGE s000(z_prueba) WITH text-006.
ENDIF.
ENDIF.
4. BUSQUEDA DE ARCHIVOS EN EL SERVIDOR
Utilizando la función /SAPDMC/LSM_F4_SERVER_FILE podemos crear una ventana de navegación en el servidor de aplicaciones para poder seleccionar el archivo q deseamos.
Ej: La función /SAPDMC/LSM_F4_SERVER_FILE
DATA: v1_file(500) TYPE c.
CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
EXPORTING
directory = p_parh
filemask = '*'
IMPORTING
serverfile = v1_file
EXCEPTIONS
canceled_by_user = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
MOVE v1_file TO p_path.
ENDIF.
Si ejecutamos el código anterior veremos el siguiente mensaje ya q no disponemos de un servidor de aplicaciones para probar.
Ej: Mensaje q nos informa q no disponemos del server
Operating system message: opendir
Si lo tuviéramos, visualizaríamos una ventana de diálogo donde podremos buscar los archivos en el servidor.