*
*
*
*
*
*
*
*
*
*
*
*
*
*
MB01
MB31
MB1A
MB1B
MB1C
MB11
*&---------------------------------------------------------------------*
*& Report ZCNRPP0018
*
*& description: AKMC WO
*& author : tom.bai
*
*& date: 20080309
*
*&---------------------------------------------------------------------*
REPORT ZCNRPP0018
TABLES: RESB,
RLGRAP,
AFKO.
* FLAG
DATA: FLAG(4).
DATA:BEGIN OF LT_ITEM OCCURS 0,
AUFNR LIKE AFKO-AUFNR,
MATNR LIKE RESB-MATNR,
ERFMG LIKE RESB-ERFMG.
DATA:END OF LT_ITEM.
*Material Document Header Data
DATA: LT_GM_HEAD TYPE STANDARD TABLE OF BAPI2017_GM_HEAD_01,
L_GM_HEAD LIKE BAPI2017_GM_HEAD_01,
* New Key Assignment GM_CODE to Transaction of Inv. Mgmt
LT_GM_CODE TYPE STANDARD TABLE OF BAPI2017_GM_CODE,
L_GM_CODE LIKE BAPI2017_GM_CODE,
LT_MAT_DOC TYPE STANDARD TABLE OF BAPI2017_GM_HEAD_RET,
L_MAT_DOC LIKE BAPI2017_GM_HEAD_RET,
LT_GM_ITEM TYPE STANDARD TABLE OF BAPI2017_GM_ITEM_CREATE,
L_GM_ITEM LIKE BAPI2017_GM_ITEM_CREATE,
*????????,
DATA: LT_GM_ITEM1 TYPE STANDARD TABLE OF BAPI2017_GM_ITEM_CREATE,
L_GM_ITEM1 LIKE BAPI2017_GM_ITEM_CREATE.
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM GET_DATA .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME
= P_FILE
FILETYPE
= 'DAT'
TABLES
DATA_TAB
= LT_ITEM.
IF SY-SUBRC NE 0.
EXIT.
ELSE.
LOOP AT LT_ITEM.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT
= LT_ITEM-MATNR
IMPORTING
OUTPUT
= LT_ITEM-MATNR.
MODIFY LT_ITEM.
ENDLOOP.
ENDIF.
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form PROCESS_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM PROCESS_DATA .
LOOP AT LT_ITEM.
SELECT SINGLE RSNUM INTO AFKO-RSNUM "??????
FROM AFKO
WHERE AUFNR = LT_ITEM-AUFNR.
L_GM_ITEM-RESERV_NO = AFKO-RSNUM.
L_GM_ITEM-MATERIAL = LT_ITEM-MATNR.
L_GM_ITEM-ORDERID = LT_ITEM-AUFNR.
L_GM_ITEM-ENTRY_QNT = LT_ITEM-ERFMG.
APPEND L_GM_ITEM TO LT_GM_ITEM.
CLEAR :L_GM_ITEM,LT_ITEM.
ENDLOOP.
LOOP AT LT_GM_ITEM INTO L_GM_ITEM.
SELECT SINGLE RSPOS WERKS LGORT ENMNG BDMNG
INTO (RESB-RSPOS,RESB-WERKS,RESB-LGORT,RESB-ENMNG,RESB-BDMNG) "???????,??,
??
FROM RESB
WHERE RSNUM = L_GM_ITEM-RESERV_NO
AND MATNR = L_GM_ITEM-MATERIAL.
IF RESB-ENMNG >= RESB-BDMNG.
L_GM_ITEM-RES_ITEM = RESB-RSPOS.
L_GM_ITEM-PLANT = RESB-WERKS.
L_GM_ITEM-STGE_LOC = RESB-LGORT.
L_GM_ITEM-MOVE_TYPE = '261'.
L_GM_ITEM-ENTRY_UOM = 'ST'.
L_GM_ITEM-IND_PROPOSE_QUANX = 'X'.
MODIFY LT_GM_ITEM FROM L_GM_ITEM.
ELSEIF RESB-ENMNG < RESB-BDMNG.
L_GM_ITEM1-ORDERID = L_GM_ITEM-ORDERID.
L_GM_ITEM1-MATERIAL = L_GM_ITEM-MATERIAL.
L_GM_ITEM1-ENTRY_QNT = L_GM_ITEM-ENTRY_QNT.
APPEND L_GM_ITEM1 TO LT_GM_ITEM1.
CLEAR L_GM_ITEM1.
ENDIF.
ENDLOOP.
IF P_INDEX = 'X'.
LOOP AT LT_GM_ITEM INTO L_GM_ITEM.
WRITE:/ L_GM_ITEM-ORDERID ,L_GM_ITEM-MATERIAL,L_GM_ITEM-RESERV_NO,L_GM_ITE
M-RES_ITEM,L_GM_ITEM-ENTRY_QNT.
ENDLOOP.
ENDIF.
ENDFORM.
" PROCESS_DATA
*&---------------------------------------------------------------------*
*&
Form CALL_BAPI_PROCESS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM CALL_BAPI_PROCESS .
*SET BAPI HEAD
L_GM_HEAD-PSTNG_DATE = SY-DATUM.
L_GM_HEAD-DOC_DATE
= SY-DATUM.
L_GM_HEAD-PR_UNAME
= SY-UNAME.
IF P_INDEX = 'X'.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = L_GM_HEAD
GOODSMVT_CODE = '03'
TESTRUN
= P_INDEX
IMPORTING
GOODSMVT_HEADRET = L_MAT_DOC
TABLES
GOODSMVT_ITEM
= LT_GM_ITEM
RETURN
= LT_RETURN.
LOOP AT LT_RETURN INTO L_RETURN .
IF L_RETURN-TYPE = 'E'.
IF SY-TABIX = 1.
SKIP.
ENDIF.
WRITE:/ L_RETURN-TYPE, L_RETURN-ID,L_RETURN-MESSAGE.
CLEAR L_RETURN.
ENDIF.
ENDLOOP.
ELSEIF P_INDEX NE 'X'.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = L_GM_HEAD
GOODSMVT_CODE = '03'
TESTRUN
= P_INDEX
IMPORTING
GOODSMVT_HEADRET = L_MAT_DOC
TABLES
GOODSMVT_ITEM
= LT_GM_ITEM
RETURN
= LT_RETURN.