DATA:BEGIN OF XTAB OCCURS 0, TYP, DES(255) TYPE C, END OF XTAB.
DATA:BEGIN OF ITAB OCCURS 0, SUPERFIELD LIKE MEPO_TOPLINE-SUPERFIELD, EKORG LIKE MEPO1222-EKORG, EKGRP LIKE MEPO1222-EKGRP, BUKRS LIKE MEPO1222-BUKRS, END OF ITAB.
DATA:BEGIN OF JTAB OCCURS 0, N(4) TYPE C, EMATN LIKE MEPO1211-EMATN, MENGE(13) TYPE C, NETPR(13) TYPE C, NAME1 LIKE MEPO1211-NAME1, END OF JTAB.
DATA:BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA:DELIMITER VALUE '*'. DATA A TYPE I. DATA M(4) TYPE N. DATA L_FNAM(30) TYPE C.
LOOP AT XTAB. IF XTAB-TYP = 'H'. SPLIT XTAB-DES AT DELIMITER INTO ITAB-SUPERFIELD ITAB-EKORG ITAB-EKGRP ITAB-BUKRS. JTAB-N = JTAB-N + 1. APPEND ITAB. ELSEIF XTAB-TYP = ''I'. SPLIT XTAB-DES AT DELIMITER INTO JTAB-EMATN JTAB-MENGE JTAB-NETPR JTAB-NAME1. APPEND JTAB. ENDIF. ENDLOOP.
CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = 'PORDER' KEEP = 'X' USER = SY-UNAME.
LOOP AT ITAB. A = SY-TABIX.
REFRESH BDCTAB.
perform bdc_dynpro using 'SAPLMEGUI' '0014'. perform bdc_field using 'BDC_CURSOR' 'MEPO_TOPLINE-SUPERFIELD'. perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'. perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD. perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'. perform bdc_field using 'DYN_6000-LIST' ' 1'. perform bdc_field using 'BDC_OKCODE' '=MEV4000BUTTON'.
perform bdc_dynpro using 'SAPLMEGUI' '0014'. perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'. perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD. perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'. perform bdc_field using 'BDC_CURSOR' 'MEPO1222-EKORG'. perform bdc_field using 'MEPO1222-EKORG' ITAB-EKORG. perform bdc_field using 'MEPO1222-EKGRP' ITAB-EKGRP. perform bdc_field using 'MEPO1222-BUKRS' ITAB-BUKRS. perform bdc_field using 'DYN_6000-LIST' ' 1'. perform bdc_field using 'BDC_OKCODE' '=MEV4001BUTTON'.
perform bdc_dynpro using 'SAPLMEGUI' '0014'. perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'. perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD. perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'. perform bdc_field using 'MEPO1222-EKORG' ITAB-EKORG. perform bdc_field using 'MEPO1222-EKGRP' ITAB-EKGRP. perform bdc_field using 'MEPO1222-BUKRS' ITAB-BUKRS.
M = 1.
LOOP AT JTAB. IF JTAB-N = A. WRITE:/ JTAB.
CONCATENATE 'MEPO1211-EMATN(' M ')' INTO L_FNAM. perform bdc_field using 'BDC_CURSOR' L_FNAM. perform bdc_field using L_FNAM JTAB-EMATN.
CONCATENATE 'MEPO1211-MENGE(' M ')' INTO L_FNAM. perform bdc_field using L_FNAM JTAB-MENGE.
CONCATENATE 'MEPO1211-NETPR(' M ')' INTO L_FNAM. perform bdc_field using L_FNAM JTAB-NETPR.
CONCATENATE 'MEPO1211-NAME1(' M ')' INTO L_FNAM. perform bdc_field using L_FNAM JTAB-NAME1.
M = M + 1. ENDIF. ENDLOOP.
perform bdc_field using 'DYN_6000-LIST' ' 1'. perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_dynpro using 'SAPLMEGUI' '0014'. perform bdc_field using 'MEPO_TOPLINE-BSART' 'NB'. perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD' ITAB-SUPERFIELD. perform bdc_field using 'MEPO_TOPLINE-BEDAT' '09.02.2007'. perform bdc_field using 'MEPO1222-EKORG' ITAB-EKORG. perform bdc_field using 'MEPO1222-EKGRP' ITAB-EKGRP. perform bdc_field using 'MEPO1222-BUKRS' ITAB-BUKRS. perform bdc_field using 'DYN_6000-LIST' ' 1'. perform bdc_field using 'BDC_CURSOR' 'MEPO1319-MATKL'. perform bdc_field using 'MEPO1319-SPINF' 'X'. perform bdc_field using 'BDC_OKCODE' '=MESAVE'.