Read dataset devuelve ## la leer el archivo txt

Saludos a todos, estoy usando Read dataset para leer un archivo txt en el servidor pero me devuelve ### y sy-subrc = 4. El archivo plano esta delimitado por tabulardo y solo tiene 2 columna pero como 10 mil registros. Como podia resolver esto?

Hola!
Podrías pasarnos el código para ver en detalle que estás haciendo?
Gracias

saludos @sconoredhot este es le codigo.

DATA: line(10000) .
OPEN DATASET filename FOR INPUT IN BINARY MODE.

IF sy-subrc EQ 0.
DO .
CLEAR: wa_dsd .
READ DATASET filename INTO line .

IF sy-subrc EQ 0.

imagen

Tus archivos siempre los abres en forma binaria porque ahí es donde puede estar el problema en binary mode

Si, como dice el compañero puede ser lo de binary, te paso un ejemplo:

DATA: gt_itab TYPE STANDARD TABLE OF char2048.
DATA: gs_itab TYPE char2048.
DATA: l_filename TYPE string.

l_filename = p_path.
REFRESH gt_itab.
OPEN DATASET l_filename FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc EQ 0.
DO.
CLEAR: gs_itab.
READ DATASET l_filename INTO gs_itab.
IF sy-subrc NE 0.
EXIT.
ELSE.
APPEND gs_itab TO gt_itab.
ENDIF.
ENDDO.
ELSE.
g_error = ‘X’.
ENDIF.

Saludos,
Sebastián

1 me gusta

saludos @sconoredhot cambie en codigo por el recomendado pero no me devuelve nada.

Verifica la variable “filename”, por las sentencias que te indica el compañero, para realizar un correcto OPEN DATASET, el “filename” debe contener la ruta seguido del archivo con su correspondiente extensión. Verifica si la dirección es la correcta, si el archivo existe y que extensión contiene. Por medio de la transacción AL11, podes ir viendo los directorios y verificar la existencia del archivo con su correspondiente extensión.

2 Me gusta

Intenta con esto

PARAMETERS: p_file TYPE file_name.

Evento ON VALUE-REQUEST sobre el parameter en el que se especifica la ruta del archivo que se desea abrir.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

DATA: v_usr_action TYPE i,
v_path TYPE string, “Directorio del archivo
v_fullpath TYPE string, “Ruta del arhivo completa
v_filename TYPE string. “Nombre del archivo

CALL METHOD cl_gui_frontend_services=>file_save_dialog
EXPORTING
initial_directory = 'C:'
CHANGING
filename = v_filename
path = v_path
fullpath = v_fullpath
user_action = v_usr_action
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
not_supported_by_gui = 3
OTHERS = 4.

IF sy-subrc IS INITIAL.

IF v_usr_action EQ cl_gui_frontend_services=>action_ok.
MOVE v_fullpath TO p_file.
ENDIF.

ENDIF.

Saludos a todos,el problema que tenia era el archivo que se estaba pasando no tenia el mismo nombre que esta en el servidor. No tenia acceso al servidor no podia ver el archivo

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.