из того что оказалось под рукой:
Code:
REFRESH gt_bdctable.
* формирование заголовка документа
PERFORM bdc_zap USING 'SAPMM06E' '0200' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_CURSOR' 'RM06E-EVART'.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '/00'.
PERFORM bdc_zap USING '' '' '' 'EKKO-LIFNR' gs_head-lifnr.
PERFORM bdc_zap USING '' '' '' 'RM06E-EVART' gs_head-bsart.
PERFORM bdc_zap USING '' '' '' 'RM06E-VEDAT' gs_head-bedat.
PERFORM bdc_zap USING '' '' '' 'EKKO-EKORG' gs_head-ekorg.
PERFORM bdc_zap USING '' '' '' 'EKKO-EKGRP' gs_head-ekgrp.
PERFORM bdc_zap USING 'SAPMM06E' '0201' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_CURSOR' 'EKKO-VERKF'.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '=AB'.
PERFORM bdc_zap USING '' '' '' 'EKKO-EKGRP' gs_head-ekgrp.
PERFORM bdc_zap USING '' '' '' 'EKKO-KDATB' gs_head-kdatb.
PERFORM bdc_zap USING '' '' '' 'EKKO-KDATE' gs_head-kdate.
PERFORM bdc_zap USING '' '' '' 'EKKO-EKGRP' gs_head-ekgrp.
PERFORM bdc_zap USING '' '' '' 'EKKO-ANGNR' gs_head-angnr.
PERFORM bdc_zap USING '' '' '' 'EKKO-VERKF' gs_head-verkf.
PERFORM bdc_zap USING '' '' '' 'EKKO-ZTERM' gs_head-zterm.
PERFORM bdc_zap USING '' '' '' 'EKKO-WAERS' gs_head-waers.
PERFORM bdc_zap USING '' '' '' 'EKKO-PINCR' '10'.
PERFORM bdc_zap USING '' '' '' 'EKKO-UPINC' '1'.
* формирование позиций
DESCRIBE TABLE gt_item LINES l_i.
l_p = 0.
IF l_i <= 14.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_CURSOR' 'RM06E-EVART'.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '/00'.
ELSE.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '/00'.
PERFORM bdc_zap USING '' '' '' 'RM06E-EBELP' '140'.
l_p = 1.
ENDIF.
l_i = 1.
l_s = 130.
LOOP AT gt_item ASSIGNING <ft_item>.
IF l_pos = '14'.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'RM06E-EBELP' l_s.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '/00'.
l_i = 2.
ENDIF.
IF l_i < 10 .
l_pos+0(1) = '0'.
l_pos+1(1) = l_i.
ELSE.
l_pos = l_i.
ENDIF.
CONCATENATE 'EKPO-EMATN(' l_pos ')' INTO l_fname.
PERFORM bdc_zap USING '' '' '' l_fname <ft_item>-matnr.
CONCATENATE 'EKPO-KTMNG(' l_pos ')' INTO l_fname.
PERFORM bdc_zap USING '' '' '' l_fname <ft_item>-ktmng.
CONCATENATE 'EKPO-MEINS(' l_pos ')' INTO l_fname.
PERFORM bdc_zap USING '' '' '' l_fname <ft_item>-meins.
CONCATENATE 'EKPO-WERKS(' l_pos ')' INTO l_fname.
PERFORM bdc_zap USING '' '' '' l_fname <ft_item>-werks.
CONCATENATE 'EKPO-MWSKZ(' l_pos ')' INTO l_fname.
PERFORM bdc_zap USING '' '' '' l_fname <ft_item>-mwskz.
l_i = l_i + 1.
l_s = l_s + 10.
ENDLOOP.
* нажимаем enter на доп. экранах
LOOP AT gt_item ASSIGNING <ft_item>.
PERFORM bdc_zap USING 'SAPLFMSV' '0100' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_CURSOR' 'COBL-FIPOS'.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '=ENTR'.
ENDLOOP.
* формирование позиций (перезаполнение цены)
DESCRIBE TABLE gt_item LINES l_i.
l_p = 0.
IF l_i <= 14.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_CURSOR' 'RM06E-EVART'.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '=BU'.
ELSE.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '/00'.
PERFORM bdc_zap USING '' '' '' 'RM06E-EBELP' '140'.
l_p = 1.
ENDIF.
l_i = 1.
l_s = 130.
LOOP AT gt_item ASSIGNING <ft_item>.
IF l_pos = '14'.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'RM06E-EBELP' l_s.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '/00'.
l_i = 2.
ENDIF.
IF l_i < 10 .
l_pos+0(1) = '0'.
l_pos+1(1) = l_i.
ELSE.
l_pos = l_i.
ENDIF.
CONCATENATE 'EKPO-NETPR(' l_pos ')' INTO l_fname.
PERFORM bdc_zap USING '' '' '' l_fname <ft_item>-netpr.
l_i = l_i + 1.
l_s = l_s + 10.
ENDLOOP.
IF l_p EQ 1.
PERFORM bdc_zap USING 'SAPMM06E' '0220' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '=BU'.
ENDIF.
PERFORM bdc_zap USING 'SAPLSPO1' '0300' 'X' '' ''.
PERFORM bdc_zap USING '' '' '' 'BDC_OKCODE' '=YES'.
* загрузка
CALL TRANSACTION 'ME31K' USING gt_bdctable MODE 'N'
MESSAGES INTO gt_msg.