Ver Mensaje Individual
  #4  
Viejo 04/11/11, 14:46:36
beltsoft beltsoft is offline
Member
 
Fecha de Ingreso: sep 2011
Localización: Mexico
Mensajes: 99
Subrutina transaccion c3gy

Hola

esta es la subrutina que yo uso para hacer este tipo de trabajos y es la misma que usa la transaccion C3GY para obtener archivos del servidor de aplicacion.

DATA:i_file_appl LIKE rcgfiletr-ftappl,
e_os_message TYPE c,
false TYPE boolean VALUE ' ',
l_file_empty TYPE boolean,
l_mode TYPE c,
l_data_tab(256) TYPE c OCCURS 100000 WITH HEADER LINE,
l_lines TYPE i,
true TYPE c VALUE 'X'.

CONSTANTS: lc_max_transfer_lines TYPE i VALUE 10000.

i_file_appl = p_arch. " esta es la ruta de donde debe de obtener el archivo

CONDENSE i_file_appl.

* open the file on the application server

OPEN DATASET i_file_appl FOR INPUT MESSAGE e_os_message
IN TEXT MODE ENCODING NON-UNICODE.
IF NOT sy-subrc IS INITIAL.
MESSAGE text-004 TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF. " not sy-subrc is initial


* write packages to the front-end
l_file_empty = false.
l_mode = space. " at first we write into the file
WHILE l_file_empty = false.


* read all lines from application server file
CLEAR l_data_tab.
REFRESH l_data_tab.
l_lines = 0.
WHILE l_file_empty = false AND
l_lines < lc_max_transfer_lines.
READ DATASET i_file_appl INTO l_data_tab.
IF NOT sy-subrc IS INITIAL.
l_file_empty = true.
ELSE.
l_lines = l_lines + 1.
APPEND l_data_tab.
ENDIF.
ENDWHILE. " l_file_empty = false and

* check if data table is empty
READ TABLE l_data_tab INDEX 1. " tabla donde guarda los registros
ENDWHILE.

Todo se queda en la i_data_tab posteriormente mueve los datos a tu tabla interna.
__________________
SSE BeltSoft México
Your Business, our motivation ...
Responder Con Cita