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.
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
107 | 색상 정리 파일. [15] | 공백 | 2012.03.08 | 7973 |
106 | Internal Table 알아보기 [15] | 양키 | 2010.12.20 | 8000 |
105 | 요약파일1 [7] | 밤의화신 | 2013.09.11 | 8040 |
104 | Dynamic Internal Table [5] | sapjoy | 2007.02.11 | 8092 |
» | BAPI_PO_CHANGE [1] | 노름마치 | 2009.09.03 | 8144 |
102 | <img src=b.gif>계속 남아있는 Debugger창 없에기(New Debugger)[추천:e-abap][추천:보나][추천:버미!] [14] | 해처리 | 2011.01.07 | 8166 |
101 | Number Range Object 변경/삭제 [4] | MadMax | 2010.12.07 | 8170 |
100 | Breakpoints 알아보기 [4] | 양키 | 2010.12.14 | 8175 |
99 | 전기기간 및 회계기간 오픈(MMPV, ob52) [4] | sapjoy | 2014.02.20 | 8213 |
98 | <img src=d.gif>테이블 Lock & UnLock function[추천:e-abap] [1] | 양키 | 2011.01.18 | 8269 |
97 | Area 메뉴 일괄 다운로드 하기 [5] | 고담 | 2011.06.15 | 8274 |
96 | ABAP에서 웹브라우져 호출 | 홍성현 | 2007.08.09 | 8322 |
95 | SELECTION-SCREEN [4] | sapjoy | 2007.01.23 | 8337 |
94 | ABAP 교육 [13] | 밤의화신 | 2013.09.11 | 8361 |
93 | 바피사용이유 [18] | 꿀단지 | 2011.10.11 | 8380 |
92 | SCN에서 인기있는 Tutorial강좌들 입니다. [1] | 양키 | 2013.08.12 | 8420 |
91 | ABAP 교육 [13] | 밤의화신 | 2013.09.11 | 8491 |
90 | SAP Factory Calendar | sapjoy | 2006.12.12 | 8493 |
89 | ABAP 교육 [32] | 밤의화신 | 2013.09.11 | 8494 |
88 | 시분초를 가져오는 구문 [8] | 양키 | 2011.05.26 | 8553 |
와우~ 정말 도움 많이 됐어요. 감사합니당 ^^