You are on page 1of 3

REPORT zsession_mm01

NO STANDARD PAGE HEADING LINE-SIZE 255.

TYPES: BEGIN OF ty_mara,


mtart TYPE mtart,
mbrsh TYPE mbrsh,
maktx TYPE maktx,
meins TYPE meins,
END OF ty_mara.

DATA: lt_mara TYPE TABLE OF ty_mara,


ls_mara TYPE ty_mara,
lt_bdcdata TYPE TABLE OF bdcdata,
ls_bdcdata TYPE bdcdata.

*INCLUDE bdcrecx1.

START-OF-SELECTION.

CALL FUNCTION 'GUI_UPLOAD'


EXPORTING
filename = 'D:\BDC.txt'
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = lt_mara.

PERFORM open_group.

LOOP AT lt_mara INTO ls_mara.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.


PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MTART'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MBRSH'
ls_mara-mbrsh.
PERFORM bdc_field USING 'RMMG1-MTART'
ls_mara-mtart.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'MAKT-MAKTX'
ls_mara-maktx.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-MEINS'.
PERFORM bdc_field USING 'MARA-MEINS'
ls_mara-meins.
PERFORM bdc_field USING 'MARA-MTPOS_MARA'
'NORM'.
PERFORM bdc_transaction USING 'MM01'.

ENDLOOP.

PERFORM close_group.

*&---------------------------------------------------------------------*
*& Form OPEN_GROUP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM open_group.
* open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = 'ZSESSION_1' " Session name
user = sy-uname
keep = 'X' " If it is 'X', the session will be available for
further processing
holddate = '20170816'. " The session will be locked, until the specified
date is reached

ENDFORM. "OPEN_GROUP

*----------------------------------------------------------------------*
* end batchinput session *
* (call transaction using...: error session) *
*----------------------------------------------------------------------*
FORM close_group.
* close batchinput group
CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDFORM. "CLOSE_GROUP

*&---------------------------------------------------------------------*
*& Form BDC_TRANSACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->TCODE text
*----------------------------------------------------------------------*
FORM bdc_transaction USING tcode.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = tcode
TABLES
dynprotab = lt_bdcdata.
CLEAR: lt_bdcdata.
ENDFORM. "BDC_TRANSACTION

*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR ls_bdcdata.
ls_bdcdata-program = program.
ls_bdcdata-dynpro = dynpro.
ls_bdcdata-dynbegin = 'X'.
APPEND ls_bdcdata TO lt_bdcdata.
ENDFORM. "BDC_DYNPRO

*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
* IF fval <> nodata.
CLEAR ls_bdcdata.
ls_bdcdata-fnam = fnam.
ls_bdcdata-fval = fval.
APPEND ls_bdcdata TO lt_bdcdata.
* ENDIF.
ENDFORM. "BDC_FIELD

You might also like