메뉴 건너뛰기

SAP 한국 커뮤니티

BAPI_PO_CHANGE

노름마치 2009.09.03 22:16 조회 수 : 8138

 

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.
번호 제목 글쓴이 날짜 조회 수
367 표준편차구하는 로직 윤사모 2011.03.23 9369
366 BAPI자료입니다. [14] file neopaper 2011.03.23 10288
365 IE 9.0 설치 시 se80 다운되는 문제 해결 [5] Jey 2011.03.16 6996
364 <img src=d.gif>Source Activation 시 [READ_REPORT_LINE_TOO_LONG] dump 발생하면?[추천:e-abap] [5] JYG 2011.02.11 9416
363 [For Power User] Dynamic Transient Program [3] file 양키 2011.01.21 6016
362 <img src=d.gif>[For Power User] Dynamic Creation of Data Objects[추천:e-abap] [3] 양키 2011.01.20 5005
361 [For Power User]Dynamic Casting Symbol Variable [3] 양키 2011.01.19 5755
360 <img src=d.gif>테이블 Lock & UnLock function[추천:e-abap] [1] 양키 2011.01.18 8268
359 <img src=b.gif>계속 남아있는 Debugger창 없에기(New Debugger)[추천:e-abap][추천:보나][추천:버미!] [14] 해처리 2011.01.07 8164
358 SAP GUI WINDOW TITLE BAR 정보 표시 설정 방법 / 색상 설정 [15] file 미소 2010.12.26 13448
357 Internal Table 알아보기 [15] file 양키 2010.12.20 8000
356 ASP.NET과 wsdl로 연동시 광돈 2010.12.17 7339
355 풍선도움말 Quickinfo [16] file 양키 2010.12.17 7210
354 Breakpoints 알아보기 [4] 양키 2010.12.14 8171
353 Number Range Object 변경/삭제 [4] file MadMax 2010.12.07 8153
352 새 창에서 트랜잭션 실행하기... 'Navigation_execute_object' 입니다.. [8] 밥~~ 2010.12.02 6130
351 <img src=c.gif>Regular Expression Processing in ABAP[추천:e-abap][추천:유리선율] [5] file magicsy69 2010.11.24 5539
350 AT SELECTION-SCREEN ON BLOCK b01. 육억 2010.11.17 6067
349 윈도우7에서 sapgui가 꺼지는 현상에 관한 팁 [14] 고양이야옹 2010.10.21 9561
348 [Function]달력 팝업창을 뛰워보자 [14] file 양키 2010.10.07 7819