BAPI调用 - 创建po的bapi BAPI_PO_CREATE1

*/--------- 採購單 表頭資訊
LOOP AT ITAB_PO_HEADER .

    POHEAD-COMP_CODE = ITAB_PO_HEADER-BUKRS .     " 公司
    POHEAD-DOC_TYPE   = ITAB_PO_HEADER-BSART .    " 單據類別
    POHEAD-CREAT_DATE = SY-DATUM   .              " 建立日期
    POHEAD-VENDOR = ITAB_PO_HEADER-LIFNR.         " 供應商
    POHEAD-PURCH_ORG = ITAB_PO_HEADER-EKORG .     " 採購組織
    POHEAD-PUR_GROUP = ITAB_PO_HEADER-EKGRP.      " 採購群組
    POHEAD-LANGU      = SY-LANGU   .
    POHEAD-DOC_DATE   = SY-DATUM.
    POHEADX-COMP_CODE  = C_X.
    POHEADX-DOC_TYPE   = C_X.
    POHEADX-CREAT_DATE = C_X.
    POHEADX-VENDOR     = C_X.
    POHEADX-PURCH_ORG  = C_X.
    POHEADX-PUR_GROUP  = C_X.
    POHEADX-LANGU      = C_X.
    POHEADX-DOC_DATE   = C_X.


*/------------ 物料數量 資訊
      ITAB_POITEM-PO_ITEM  = W_EBELP .             " 項次編號
      ITAB_POITEM-MATERIAL = ITAB_PO-MATNR .       " 料號
      ITAB_POITEM-PLANT    = ITAB_PO-WERKS .       " 工廠
      ITAB_POITEM-STGE_LOC = ITAB_PO-LGORT .       " 倉別
      ITAB_POITEM-QUANTITY = ITAB_PO-LABST .       " 數量
      ITAB_POITEM-PO_UNIT =  ITAB_PO-MEINS .       " 單位
      ITAB_POITEM-NET_PRICE = ITAB_PO-CURR_PR .    " 單價
      ITAB_POITEM-PRICE_UNIT = ITAB_PO-PEINH.      " 單價基數 ITAB_PO-PEINH ,
      ITAB_POITEM-PREQ_NAME = 'BAPI' .             " 申請人
      ITAB_POITEM-RET_ITEM = 'X' .                 " 退貨註記
      ITAB_POITEM-TRACKINGNO = ITAB_PO-EBELN .     " 上一筆採購單
      ITAB_POITEM-SHORT_TEXT = ITAB_PO-TXZ01 .     " 發票號碼資訊
      APPEND ITAB_POITEM.
      CLEAR ITAB_POITEM.

      ITAB_POITEMX-PO_ITEM    = W_EBELP .
      ITAB_POITEMX-PO_ITEMX   = C_X .
      ITAB_POITEMX-MATERIAL   = C_X .
      ITAB_POITEMX-PLANT      = C_X .
      ITAB_POITEMX-STGE_LOC   = C_X .
      ITAB_POITEMX-QUANTITY   = C_X .
      ITAB_POITEMX-PO_UNIT     = C_X .
      ITAB_POITEMX-NET_PRICE   = C_X .
      ITAB_POITEMX-PRICE_UNIT  = C_X .
      ITAB_POITEMX-PREQ_NAME   = C_X .
      ITAB_POITEMX-RET_ITEM    = C_X .
      ITAB_POITEMX-TRACKINGNO  = C_X .
      ITAB_POITEMX-SHORT_TEXT  = C_X .
      ITAB_POITEMX-TAX_CODE   = C_X .
      ITAB_POITEMX-ITEM_CAT   = C_X .
      ITAB_POITEMX-ACCTASSCAT = C_X .
      APPEND ITAB_POITEMX.
      CLEAR ITAB_POITEMX.


*/---------------- 排程資訊
      ITAB_POSCHED-PO_ITEM        = W_EBELP .
      ITAB_POSCHED-SCHED_LINE     = W_EBELP .
      ITAB_POSCHED-DEL_DATCAT_EXT = 'D'.
      DEL_DATE = SY-DATUM + 1.
      WRITE DEL_DATE TO ITAB_POSCHED-DELIVERY_DATE.
      ITAB_POSCHED-DELIV_TIME     = '000001'.
      ITAB_POSCHED-QUANTITY       = ITAB_PO-LABST.
      APPEND ITAB_POSCHED.
      CLEAR ITAB_POSCHED.

      ITAB_POSCHEDX-PO_ITEM        = W_EBELP.
      ITAB_POSCHEDX-SCHED_LINE     = W_EBELP.
      ITAB_POSCHEDX-PO_ITEMX       = C_X.
      ITAB_POSCHEDX-SCHED_LINEX    = C_X.
      ITAB_POSCHEDX-DEL_DATCAT_EXT = C_X.
      ITAB_POSCHEDX-DELIVERY_DATE  = C_X.
      ITAB_POSCHEDX-QUANTITY       = C_X.
      APPEND ITAB_POSCHEDX.
      CLEAR ITAB_POSCHEDX.


*/----CALL BAPI FUNCTION ----------------------------
  CALL FUNCTION 'BAPI_PO_CREATE1'
       EXPORTING
            POHEADER         = POHEAD
            POHEADERX        = POHEADX
            TESTRUN          = ' '
            NO_PRICE_FROM_PO = 'X'
       IMPORTING
            EXPPURCHASEORDER = EX_PO_NUMBER
            EXPHEADER        = EXP_HEAD
       TABLES
            RETURN           = RETURN
            POITEM           = ITAB_POITEM
            POITEMX          = ITAB_POITEMX
            POSCHEDULE       = ITAB_POSCHED
            POSCHEDULEX      = ITAB_POSCHEDX .


  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
       EXPORTING
            WAIT = 'X' .



转载自:http://blog.csdn.net/shiyanghua/article/details/2800473


你可能感兴趣的:(实例,BAPI_PO_CREATE1,创建PO)