生產盤點憑證並錄入實盤數據
*&---------------------------------------------------------------------*
*& Report ZMULT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMULT.
DATA:IT_ITEM LIKE TABLE OF BAPI_PHYSINV_COUNT_ITEMS WITH HEADER LINE,
RET_MSG LIKE TABLE OF BAPIRET2 WITH HEADER LINE,
G_INVDOC LIKE IKPF-IBLNR.
*& 產生盤點憑證
PERFORM CREATE_INVENTORY_DOCUMENT.
*&錄入盤點數量
PERFORM RECORD_QUANTITY.
*& 更改數量
PERFORM CHANGE_QUANTITY.
*&---------------------------------------------------------------------*
*& Form CREATE_INVENTORY_DOCUMENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CREATE_INVENTORY_DOCUMENT .
DATA: L_HEAD TYPE BAPI_PHYSINV_CREATE_HEAD,
ITEM LIKE TABLE OF BAPI_PHYSINV_CREATE_ITEMS WITH HEADER LINE .
L_HEAD-DOC_DATE = SY-DATUM. "憑證中的憑證日期
L_HEAD-PLAN_DATE = SY-DATUM. "存貨盤點的計劃日期
L_HEAD-PLANT = '1000'. "工廠
L_HEAD-STGE_LOC = 'X601'. "庫存地點
L_HEAD-SPEC_STOCK = 'X'. "特殊庫存標識
L_HEAD-POST_BLOCK = 'X'. "由於實際盤點而凍結記帳
L_HEAD-FREEZEBOOKINV = 'X'. "凍結帳面庫存
L_HEAD-DEL_BATCHES = 'X'. "包括帶有刪除標識的批量
ITEM-MATERIAL = '1000-00066'.
APPEND ITEM.
CALL FUNCTION 'BAPI_MATPHYSINV_CREATE_MULT'
EXPORTING
HEAD = L_HEAD
TABLES
ITEMS = ITEM
RETURN = RET_MSG.
PERFORM COMMIT_OPERATION.
ENDFORM. " CREATE_INVENTORY_DOCUMENT
*&---------------------------------------------------------------------*
*& Form COMMIT_OPERATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM COMMIT_OPERATION .
READ TABLE RET_MSG WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
READ TABLE RET_MSG INDEX 1.
IF SY-SUBRC = 0.
WRITE:/ 'document:',RET_MSG-MESSAGE_V1.
ENDIF.
ELSE.
LOOP AT RET_MSG.
WRITE:/ 'erro message:',RET_MSG-MESSAGE.
ENDLOOP.
ENDIF.
ENDFORM. " COMMIT_OPERATION
*&---------------------------------------------------------------------*
*& Form RECORD_QUANTITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM RECORD_QUANTITY .
REFRESH:RET_MSG.
G_INVDOC = '0100045002'.
IT_ITEM-ITEM = '001'.
IT_ITEM-MATERIAL = '1000-00066'.
IT_ITEM-ENTRY_QNT = 1.
IT_ITEM-ENTRY_UOM = 'TAI'.
APPEND IT_ITEM.
CALL FUNCTION 'BAPI_MATPHYSINV_COUNT'
EXPORTING
PHYSINVENTORY = G_INVDOC
FISCALYEAR = 2010
COUNT_DATE = SY-DATUM
TABLES
ITEMS = IT_ITEM
RETURN = RET_MSG.
PERFORM COMMIT_OPERATION.
ENDFORM. " RECORD_QUANTITY
*&---------------------------------------------------------------------*
*& Form CHANGE_QUANTITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHANGE_QUANTITY .
CALL FUNCTION 'BAPI_MATPHYSINV_CHANGECOUNT'
EXPORTING
PHYSINVENTORY = G_INVDOC
FISCALYEAR = '2010'
* PERCENTAGE_VARIANCE =
TABLES
ITEMS = IT_ITEM
RETURN = RET_MSG.
* SERIALNUMBERS =1
PERFORM COMMIT_OPERATION.
ENDFORM. " CHANGE_QUANTITY
*& Report ZMULT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMULT.
DATA:IT_ITEM LIKE TABLE OF BAPI_PHYSINV_COUNT_ITEMS WITH HEADER LINE,
RET_MSG LIKE TABLE OF BAPIRET2 WITH HEADER LINE,
G_INVDOC LIKE IKPF-IBLNR.
*& 產生盤點憑證
PERFORM CREATE_INVENTORY_DOCUMENT.
*&錄入盤點數量
PERFORM RECORD_QUANTITY.
*& 更改數量
PERFORM CHANGE_QUANTITY.
*&---------------------------------------------------------------------*
*& Form CREATE_INVENTORY_DOCUMENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CREATE_INVENTORY_DOCUMENT .
DATA: L_HEAD TYPE BAPI_PHYSINV_CREATE_HEAD,
ITEM LIKE TABLE OF BAPI_PHYSINV_CREATE_ITEMS WITH HEADER LINE .
L_HEAD-DOC_DATE = SY-DATUM. "憑證中的憑證日期
L_HEAD-PLAN_DATE = SY-DATUM. "存貨盤點的計劃日期
L_HEAD-PLANT = '1000'. "工廠
L_HEAD-STGE_LOC = 'X601'. "庫存地點
L_HEAD-SPEC_STOCK = 'X'. "特殊庫存標識
L_HEAD-POST_BLOCK = 'X'. "由於實際盤點而凍結記帳
L_HEAD-FREEZEBOOKINV = 'X'. "凍結帳面庫存
L_HEAD-DEL_BATCHES = 'X'. "包括帶有刪除標識的批量
ITEM-MATERIAL = '1000-00066'.
APPEND ITEM.
CALL FUNCTION 'BAPI_MATPHYSINV_CREATE_MULT'
EXPORTING
HEAD = L_HEAD
TABLES
ITEMS = ITEM
RETURN = RET_MSG.
PERFORM COMMIT_OPERATION.
ENDFORM. " CREATE_INVENTORY_DOCUMENT
*&---------------------------------------------------------------------*
*& Form COMMIT_OPERATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM COMMIT_OPERATION .
READ TABLE RET_MSG WITH KEY TYPE = 'E'.
IF SY-SUBRC <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
READ TABLE RET_MSG INDEX 1.
IF SY-SUBRC = 0.
WRITE:/ 'document:',RET_MSG-MESSAGE_V1.
ENDIF.
ELSE.
LOOP AT RET_MSG.
WRITE:/ 'erro message:',RET_MSG-MESSAGE.
ENDLOOP.
ENDIF.
ENDFORM. " COMMIT_OPERATION
*&---------------------------------------------------------------------*
*& Form RECORD_QUANTITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM RECORD_QUANTITY .
REFRESH:RET_MSG.
G_INVDOC = '0100045002'.
IT_ITEM-ITEM = '001'.
IT_ITEM-MATERIAL = '1000-00066'.
IT_ITEM-ENTRY_QNT = 1.
IT_ITEM-ENTRY_UOM = 'TAI'.
APPEND IT_ITEM.
CALL FUNCTION 'BAPI_MATPHYSINV_COUNT'
EXPORTING
PHYSINVENTORY = G_INVDOC
FISCALYEAR = 2010
COUNT_DATE = SY-DATUM
TABLES
ITEMS = IT_ITEM
RETURN = RET_MSG.
PERFORM COMMIT_OPERATION.
ENDFORM. " RECORD_QUANTITY
*&---------------------------------------------------------------------*
*& Form CHANGE_QUANTITY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CHANGE_QUANTITY .
CALL FUNCTION 'BAPI_MATPHYSINV_CHANGECOUNT'
EXPORTING
PHYSINVENTORY = G_INVDOC
FISCALYEAR = '2010'
* PERCENTAGE_VARIANCE =
TABLES
ITEMS = IT_ITEM
RETURN = RET_MSG.
* SERIALNUMBERS =1
PERFORM COMMIT_OPERATION.
ENDFORM. " CHANGE_QUANTITY
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.