Hola, me encontre este tema por casualidad y pues les dejo un ejemplo de como lo hice yo en un programa, saludos.
*&---------------------------------------------------------------------*
*& Form DESCARGA_UNIX.
*&---------------------------------------------------------------------*
FORM descarga_unix USING dir_unix.
* dir_unix es la direccion destino que se solicita para depositar el archivo .txt
*t_interna es la tabla que contiene en este caso el reporte de salida a impresion, ya que este acomodada como tu quieras solo la llamas *con esta funcion.
DATA: file_unix(80) TYPE c.
* Asignar el nombre del archivo a ser generado.
CONCATENATE dir_unix 'Reporte.txt' INTO file_unix.
IF NOT file_unix IS INITIAL.
* Abrir el archivo destino.
OPEN DATASET file_unix FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc = 0 AND file_unix CA '/'.
* Carga la tabla interna con el contenido del archivo plano.
LOOP AT t_interna.
TRANSFER t_interna TO file_unix.
ENDLOOP.
* Cerrar el archivo ASCII plano despues de que lo lleno.
CLOSE DATASET file_unix.
ELSE.
MESSAGE e000 WITH
'NO se genero el archivo en el servidor UNIX.'.
ENDIF.
* Cerrar el archivo ASCII plano en caso de error.
CLOSE DATASET file_unix.
ENDIF.
ENDFORM. "DESCARGA_UNIX