
Transferencia de archivo al servidor.
La sentencia TRANSFER es utiliza da para transferir datos desde nuestro programa ABAP a los archivos ubicados en el servidor de aplicaciones
TRANSFER <estructura> TO <archivo>., el modo que se realiza la transferencia se corresponde con el modo de apertura de archivos. si el archivo no esta abierto para escritura se intentara abrir en modo BINARY MODE utilizando la ejecución OPEN DATASET.
* 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 = 'Lavallol 1454'.
st_archivo-codigo_postal = '1568'.
st_archivo-f_nacimiento = '19781097'.
st_archivo-estado_civil = 'S'.
TRANSFER st_archivo TO p_path.
* Borra el archivo
IF NOT p_borrar IS INITIAL.
DELETE DATASET p_path.
ENDIF.
Con la trans. estándar SGY podemos copiar un archivo alojado en el servidor en nuestra computadora, basta con pasar la ruta completa del origen y la del destino. Elegir el formato de transferencias que puede ser ASCII o BINARIO.
Borrado de archivos del servidor
Usamos la sentencia DELETE DATASET para borrar los archivos del servidor de aplicaciones.
DELETE DATASET <archivo>, para borrar un archivo previamente debemos abrirlo. si el borrado se realiza correctamente, entonces el SY-SUBRC será 0. en caso contrario será 4.
Borra el archivo
IF NOT p_borrar IS INITIAL.
DELETE DATASET p_path.
ENDIF.
Cierre de archivos del servidor
Utilizamos la sentencia CLOSE DATASET para cerrar archivos del servidor de aplicaciones
CLOSE DATASET <archivo> es recomendable realizar cierre archivos
* Cierro el fichero
CLOSE DATASET p_path.
IF sy-subrc NE 0.
MESSAGE s000(z_prueba) WITH text-006.
ENDIF.
ENDIF.
Búsqueda de archivos en el servidor
Utilizamos 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 que deseamos.
DATA: vl_file(500) TYPE c.
CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
EXPORTING
directory = p_path
filemask = '*'
IMPORTING
serverfile = vl_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 vl_file TO p_path.
ENDIF.