TABLES : ekko,ekpo,marc.
DATA : BEGIN OF itab OCCURS 0,
aedat TYPE erdat,
lifnr TYPE lifnr,
emlif TYPE emlif,
ebeln TYPE ebeln,
ebelp TYPE ebelp,
menge TYPE menge_d, "po qty
wemng TYPE menge_d, "gr qty
END OF itab.
DATA : stab LIKE itab.
DATA : gv_purchaseorder LIKE ekko-ebeln. "Purchase order
DATA : gs_poheader LIKE bapimepoheader, "Header Data
gs_poheaderx LIKE bapimepoheaderx, "Header Data(Change Toolbar)
gt_poitem LIKE bapimepoitem OCCURS 0 WITH HEADER LINE,
gt_poitemx LIKE bapimepoitemx OCCURS 0 WITH HEADER LINE,
gt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
gs_expheader LIKE bapimepoheader. "Header Data(Return)
CLEAR itab[].
SELECT ekko~aedat AS aedat
ekko~lifnr AS lifnr
ekpo~emlif AS emlif
ekpo~ebeln AS ebeln
ekpo~ebelp AS ebelp
eket~menge AS menge
eket~wemng AS wemng
INTO CORRESPONDING FIELDS OF TABLE itab
FROM ekko
INNER JOIN ekpo
ON ekko~ebeln = ekpo~ebeln
INNER JOIN eket
ON ekpo~ebeln = eket~ebeln
AND ekpo~ebelp = eket~ebelp
WHERE ekko~bstyp = 'F'
AND ekko~loekz = ''
AND ekpo~loekz = ''
AND ekpo~elikz = ''
AND ekpo~lblkz = 'X'
AND ekko~lifnr = '001000772'
AND ekpo~werks = '1000'
AND eket~wemng = 0
AND ekko~lifnr = ( SELECT po~emlif
FROM ekpo AS po
WHERE po~ebeln = ekpo~ebeln
AND po~ebelp = ekpo~ebelp ).
IF itab[] IS INITIAL.
MESSAGE s899(mm) WITH 'no data found'.
LEAVE LIST-PROCESSING.
ENDIF.
SORT itab BY aedat lifnr ebeln ebelp.
LOOP AT itab.
MOVE-CORRESPONDING itab TO stab.
AT NEW ebeln.
CLEAR : gv_purchaseorder, gs_poheader, gs_poheaderx.
gv_purchaseorder = stab-ebeln.
gs_poheader-po_number = stab-ebeln.
gs_poheaderx-po_number = 'X'.
ENDAT.
gt_poitem-po_item = stab-ebelp.
gt_poitem-delete_ind = 'L'.
APPEND gt_poitem.
gt_poitemx-po_item = stab-ebelp.
gt_poitemx-po_itemx = 'X'.
gt_poitemx-delete_ind = 'X'.
APPEND gt_poitemx.
AT END OF ebeln.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = gv_purchaseorder
poheader = gs_poheader
poheaderx = gs_poheaderx
IMPORTING
expheader = gs_expheader
TABLES
return = gt_return
poitem = gt_poitem
poitemx = gt_poitemx.
READ TABLE gt_return WITH KEY type = 'S' number = '023'.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
CLEAR : gv_purchaseorder,
gs_expheader,
gs_poheader,
gs_poheaderx,
gt_poitem[],
gt_poitemx[],
gt_return[].
ENDAT.
ENDLOOP.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
447 | 인터널 테이블 라인수 lines [8] | sapjoy | 2014.01.20 | 17312 |
446 | TRY와 SQL [2] | sapjoy | 2013.12.05 | 5862 |
445 | SAP 버퍼를 다시 설정하는 방법 | Wise 멘토 | 2013.10.04 | 7490 |
444 | debug 시 문장 skip 요령 [36] | 하마대왕 | 2013.10.04 | 6892 |
443 | SAP GUI 730 ALV Grid 느림 현상(해결방법) [3] | Dave | 2013.09.27 | 8885 |
442 | TYPE-1 프로그램에서 실행버튼 없애기 [1] | 아밥뽀 | 2013.09.23 | 9124 |
441 | sap 메뉴에서 표준 매뉴 전환 [1] | selection장 | 2013.09.13 | 9449 |
440 | 요약파일1 [7] | 밤의화신 | 2013.09.11 | 8040 |
439 | ABAP 교육 [13] | 밤의화신 | 2013.09.11 | 8361 |
438 | ABAP 교육 [9] | 밤의화신 | 2013.09.11 | 7388 |
437 | ABAP 교육 [6] | 밤의화신 | 2013.09.11 | 7199 |
436 | ABAP 교육 [6] | 밤의화신 | 2013.09.11 | 7274 |
435 | ABAP 교육 [12] | 밤의화신 | 2013.09.11 | 7289 |
434 | ABAP 교육 [32] | 밤의화신 | 2013.09.11 | 8495 |
433 | ABAP 교육 [13] | 밤의화신 | 2013.09.11 | 8492 |
432 | REM PROCESS2 [1] | 밤의화신 | 2013.09.11 | 4497 |
431 | REM PROCESS1 | 밤의화신 | 2013.09.11 | 5401 |
430 | REM TABLE3 | 밤의화신 | 2013.09.11 | 2657 |
429 | REM TABLE2 | 밤의화신 | 2013.09.11 | 2819 |
428 | REM TABLE1 | 밤의화신 | 2013.09.11 | 2867 |
와우~ 정말 도움 많이 됐어요. 감사합니당 ^^