메뉴 건너뛰기

SAP 한국 커뮤니티

BAPI_PO_CHANGE

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

 

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 Overview transport requests for all systems and clients [3] file 노름마치 2009.11.05 3676
446 새로운 Print format 추가하기 [5] file 이명환 2007.10.18 3679
445 How to read same field from D.Base into two fields of ITAB [1] sapjoy 2006.12.12 3690
444 F1 도움말 존닭 2014.12.11 3696
443 OPEN SQL 사용법인데, 내용이 정리가 잘 되어 있네요 [21] file 노름마치 2008.06.09 3712
442 <b>[완료]</b>NW04 설치시 에러 몇가지 해결법 [3] file Abap consultant 2009.03.13 3715
441 ALV 활용해 보기 [4] file 박진만 2007.06.28 3727
440 new_abap_editor [3] file Lastforone 2007.07.31 3734
439 일자에 포멧에 맞게 자동으로 처리하는 프로그램 [1] 박종갑 2007.07.13 3741
438 zebra printer 상세 사용메뉴얼입니다. 양키 2013.08.26 3744
437 Selection Screeen에서 저장버튼 Disable 처리 [3] 양키(이경환) 2014.11.13 3753
436 Picking material description from custom table in the SAP Sales Order [2] file 노름마치 2009.07.10 3757
435 SAP BEST PRACTICES BASELINE PACKAGE Link(한국어) [10] ac3mania 2009.06.23 3789
434 파트너 정보 테이블(partner) sapjoy 2007.04.10 3799
433 Internal Table 내용 PC에 저장하기 [11] 별이고픈구름 2008.05.28 3828
432 BSP 명령구절 [3] gauguin 2008.06.04 3837
431 New ABAP Editor Concept [4] file D.Y.Kim 2007.06.07 3847
430 인용부호를 변수에 저장하려면 [2] 푸른밤 2007.07.31 3847
429 HELP를 WEB으로 접속하려면,,, 이렇게 하세요 [8] 김창훈 2007.08.08 3847
428 CLUSTER 테이블 찾는법~~ [4] 첼시 2008.02.28 3853