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.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
448 | 숫자입력 체크(Numeric character check) [1] | 양키(이경환) | 2014.01.28 | 20519 |
447 | 인터널 테이블 라인수 lines [8] | sapjoy | 2014.01.20 | 17831 |
446 | TRY와 SQL [2] | sapjoy | 2013.12.05 | 6021 |
445 | SAP 버퍼를 다시 설정하는 방법 | Wise 멘토 | 2013.10.05 | 7611 |
444 | debug 시 문장 skip 요령 [36] | 하마대왕 | 2013.10.04 | 7365 |
443 | SAP GUI 730 ALV Grid 느림 현상(해결방법) [3] | Dave | 2013.09.27 | 9107 |
442 | TYPE-1 프로그램에서 실행버튼 없애기 [1] | 아밥뽀 | 2013.09.24 | 9292 |
441 | sap 메뉴에서 표준 매뉴 전환 [1] | selection장 | 2013.09.13 | 9531 |
440 |
요약파일1
[7] ![]() | 밤의화신 | 2013.09.12 | 8106 |
439 |
ABAP 교육
[13] ![]() | 밤의화신 | 2013.09.12 | 8440 |
438 |
ABAP 교육
[9] ![]() | 밤의화신 | 2013.09.12 | 7444 |
437 |
ABAP 교육
[6] ![]() | 밤의화신 | 2013.09.12 | 7254 |
436 |
ABAP 교육
[6] ![]() | 밤의화신 | 2013.09.12 | 7325 |
435 |
ABAP 교육
[12] ![]() | 밤의화신 | 2013.09.12 | 7354 |
434 |
ABAP 교육
[32] ![]() | 밤의화신 | 2013.09.12 | 8562 |
433 |
ABAP 교육
[13] ![]() | 밤의화신 | 2013.09.12 | 8555 |
432 | REM PROCESS2 [1] | 밤의화신 | 2013.09.11 | 4572 |
431 | REM PROCESS1 | 밤의화신 | 2013.09.11 | 5500 |
430 | REM TABLE3 | 밤의화신 | 2013.09.11 | 2726 |
429 | REM TABLE2 | 밤의화신 | 2013.09.11 | 2859 |
와우~ 정말 도움 많이 됐어요. 감사합니당 ^^