导语:最近在做WM的开发,需要用程序调用BAPI,进行LT0G的操作,查找了一下BAPI名称是「L_TO_CREATE_MULTIPLE」,下面直接贴一下调用过程。
*&---------------------------------------------------------------------*
*& Report ZHENRY_TEST10
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zhenry_test10.
DATA i_lgnum TYPE ltak-lgnum.
DATA i_bwlvs TYPE ltak-bwlvs.
DATA e_tanum TYPE ltak-tanum.
DATA t_ltap_creat TYPE STANDARD TABLE OF ltap_creat.
DATA gt_lips TYPE TABLE OF lips.
DATA lv_lqnum TYPE lqua-lqnum.
DATA lv_vbeln TYPE likp-vbeln VALUE '0080000109'.
i_lgnum = '101'. "仓库编号
i_bwlvs = '999'. "移动类型
SELECT * INTO TABLE gt_lips FROM lips WHERE vbeln = lv_vbeln.
CALL FUNCTION 'ENQUEUE_EVVBLKE'
EXPORTING
vbeln = lv_vbeln
EXCEPTIONS
foreign_lock = 2
system_failure = 3.
LOOP AT gt_lips INTO DATA(gs_lips).
"读取LQUA的数量
CLEAR: lv_lqnum.
SELECT SINGLE lqnum INTO lv_lqnum
FROM lqua
WHERE lgnum = '101'
AND matnr = gs_lips-matnr
AND werks = gs_lips-werks
AND lgort = gs_lips-lgort
AND charg = gs_lips-charg
AND lgtyp = '916'
AND lgpla = lv_vbeln.
t_ltap_creat[] = VALUE #( ( matnr = gs_lips-matnr "物料
werks = gs_lips-werks "工厂
lgort = gs_lips-lgort "库位
charg = gs_lips-charg "批次
anfme = '10' "数量
altme = gs_lips-meins "单位
nltyp = '600' "目标库位
nlpla = 'YL01A4002' "目标仓位
posnr = gs_lips-posnr "行号
vlqnr = lv_lqnum "LUQA的数量
nlber = '001' ) ). "默认填写
ENDLOOP.
CALL FUNCTION 'L_TO_SET_SPECIAL'
EXPORTING
i_spezi = 'B'
i_vbeln = lv_vbeln
EXCEPTIONS
call_forbidden = 1
input_wrong = 2
OTHERS = 3.
CALL FUNCTION 'L_TO_CREATE_MULTIPLE'
EXPORTING
i_lgnum = i_lgnum
i_bwlvs = i_bwlvs
i_nidru = ''
i_drukz = ''
i_commit_work = 'X'
IMPORTING
e_tanum = e_tanum
TABLES
t_ltap_creat = t_ltap_creat.
CALL FUNCTION 'L_TO_RESET_SPECIAL'.
CALL FUNCTION 'DEQUEUE_EVVBLKE'
EXPORTING
vbeln = lv_vbeln.
作者:小飞猪猪猪猪猪猪猪–CSDN