Batch Input con metodo call transaction completo
TYPES: BEGIN OF t_employee,
pernr TYPE p0002-pernr, "Employee Number
midnm TYPE p0002-midnm, "mid name
rufnm TYPE p0002-rufnm, "nick name
begda(10) TYPE c,
endda(10) TYPE c,
END OF t_employee.
DATA: it_employee TYPE STANDARD TABLE OF t_employee,
wa_employee TYPE t_employee,
it_bdcdata TYPE bdcdata OCCURS 0 WITH HEADER LINE ,
i_file_path TYPE localfile,
file_name TYPE string,
I_SESSIONNAME(12) TYPE c.
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE title1.
SELECTION-SCREEN COMMENT 1(10) txt_01.
PARAMETERS p_fname TYPE rlgrap-filename OBLIGATORY.
PARAMETERS p_sess LIKE APQI-GROUPID .
SELECTION-SCREEN END OF BLOCK bk1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
CLEAR i_file_path.
PERFORM select_input_file_name.
MOVE i_file_path TO p_fname.
file_name = p_fname.
START-OF-SELECTION.
PERFORM BDC_CALL_TRANSACTION_METHOD
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = file_name
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_employee.
FORM BDC_CALL_TRANSACTION.
LOOP AT it_employee INTO wa_employee.
PERFORM bdc_dynpro USING 'SAPMP50A' '1000'.
PERFORM bdc_field USING 'RP50G-PERNR'
wa_employee-pernr.
PERFORM bdc_field USING 'RP50G-TIMR6'
'X'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RP50G-CHOIC'.
PERFORM bdc_field USING 'RP50G-CHOIC'
'0002'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=MOD'.
PERFORM bdc_dynpro USING 'MP000200' '2044'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPD'.
PERFORM bdc_field USING 'BDC_CURSOR'
'P0002-RUFNM'.
PERFORM bdc_field USING 'P0002-BEGDA'
wa_employee-begda.
PERFORM bdc_field USING 'P0002-ENDDA'
wa_employee-endda.
PERFORM bdc_field USING 'P0002-MIDNM'
wa_employee-midnm.
PERFORM bdc_field USING 'P0002-RUFNM'
wa_employee-rufnm.
CALL TRANSACTION 'PA30' USING it_bdcdata
MODE 'A'
UPDATE 's'.
REFRESH it_bdcdata.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form select_input_file_name
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM select_input_file_name.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = sy-repid
dynpro_number = sy-dynnr
field_name = 'PATH'
IMPORTING
file_name = i_file_path.
ENDFORM. "select_input_file_name
*&---------------------------------------------------------------------*
*& Form BDC_DYNPRO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PROG text
* -->SCR text
*----------------------------------------------------------------------*
FORM bdc_dynpro USING prog scr.
CLEAR it_bdcdata.
it_bdcdata-program = prog.
it_bdcdata-dynpro = scr.
it_bdcdata-dynbegin = 'X'.
APPEND it_bdcdata.
ENDFORM. "BDC_DYNPRO
*&---------------------------------------------------------------------*
*& Form BDC_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->FNAM text
* -->FVAL text
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
CLEAR it_bdcdata.
it_bdcdata-fnam = fnam.
it_bdcdata-fval = fval.
APPEND it_bdcdata.
ENDFORM. "BDC_FIELD