Hola,
Para subir el fichero plano puedes utilizar la funcion GUI_UPLOAD, te adjunto un ejemplo.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'c:\datos.txt' "Ruta del fichero
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X' "X es el tabulador como delimitador
TABLES
DATA_TAB = t_datos "Tabla donde meto los datos del fichero
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Y para sobrescribir los datos puedes utilizar la instrucción MODIFY, que lo que hace es que si ya existe algún registro con los mismos campos clave te lo sobrescribe y si no existe te crea uno nuevo.
Saludos.