09-03-2007 12:10 PM
HI FRIENDS,
i m using this codes to get the goods movement no doubt it is working fine,now i have to confirm the production order for this what bapi will i use,,,,
plz help me how will i link that bapi with my this codes......
*data declaration:
*BAPI Communication Structure: Material Document Header Data.
DATA: GM_HEADER TYPE BAPI2017_GM_HEAD_01.
*MMIM: New Key Assignment GM_CODE to Transaction of Inv. Mgmt.
DATA: GM_CODE TYPE BAPI2017_GM_CODE.
*MMIM: Output Structure For General FM To Post Goods Movement.
DATA: GM_HEADRET TYPE BAPI2017_GM_HEAD_RET.
*BAPI Communication Structure: Create Material Document Item
DATA: GM_ITEM TYPE TABLE OF
BAPI2017_GM_ITEM_CREATE WITH HEADER LINE.
*Return Parameter.
DATA: GM_RETURN TYPE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA: GM_RETMTD TYPE BAPI2017_GM_HEAD_RET-MAT_DOC.
CLEAR: GM_RETURN, GM_RETMTD. REFRESH GM_RETURN.
BAPI header data.
GM_HEADER-PSTNG_DATE = SY-DATUM.
GM_HEADER-DOC_DATE = SY-DATUM.
*Goods receipt for production order
GM_CODE-GM_CODE = '03'. " MB1A
Write '261' movement to table
CLEAR GM_ITEM.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '261' TO GM_ITEM-MOVE_TYPE .
MOVE '000000003000000195' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'WFC1' TO GM_ITEM-STGE_LOC.
MOVE '1000007735' TO GM_ITEM-BATCH.
APPEND GM_ITEM.
clear GM_ITEM.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '261' TO GM_ITEM-MOVE_TYPE .
MOVE '000000003000000193' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'WFC1' TO GM_ITEM-STGE_LOC.
MOVE '1000007730' TO GM_ITEM-BATCH.
APPEND GM_ITEM.
clear GM_ITEM.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '261' TO GM_ITEM-MOVE_TYPE .
MOVE '000000001000000389' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'FCRM' TO GM_ITEM-STGE_LOC.
APPEND GM_ITEM.
clear GM_ITEM.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '261' TO GM_ITEM-MOVE_TYPE .
MOVE '000000001000000390' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'FCRM' TO GM_ITEM-STGE_LOC.
APPEND GM_ITEM.
clear GM_ITEM.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '261' TO GM_ITEM-MOVE_TYPE .
MOVE '000000001000000391' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'FCRM' TO GM_ITEM-STGE_LOC.
APPEND GM_ITEM.
clear GM_ITEM.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '261' TO GM_ITEM-MOVE_TYPE .
MOVE '000000001000000392' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'FCRM' TO GM_ITEM-STGE_LOC.
APPEND GM_ITEM.
clear GM_ITEM.
Call goods movement BAPI
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = GM_HEADER
GOODSMVT_CODE = gm_code
IMPORTING
GOODSMVT_HEADRET = GM_HEADRET
MATERIALDOCUMENT = GM_RETMTD
TABLES
GOODSMVT_ITEM = GM_ITEM
RETURN = GM_RETURN.
IF NOT GM_RETMTD IS INITIAL.
COMMIT WORK AND WAIT.
CALL FUNCTION 'DEQUEUE_ALL'.
ELSE.
COMMIT WORK AND WAIT.
CALL FUNCTION 'DEQUEUE_ALL'.
ENDIF.
WRITE:/ GM_RETMTD.
LOOP AT GM_RETURN.
WRITE:/ GM_RETURN-MESSAGE.
ENDLOOP.
*logic for receiving raw materials for hot alloy:
refresh gm_item.
clear gm_item.
clear gm_code.
GM_CODE-GM_CODE = '02'.
MOVE '700000000102' TO GM_ITEM-ORDERID.
MOVE '101' TO GM_ITEM-MOVE_TYPE .
MOVE '000000003000000196' TO GM_ITEM-MATERIAL.
MOVE '6' TO GM_ITEM-ENTRY_QNT.
MOVE '6000' TO GM_ITEM-PLANT.
MOVE 'WFC1' TO GM_ITEM-STGE_LOC.
move 'F' to gm_item-MVT_IND.
APPEND GM_ITEM.
clear GM_ITEM.
Call goods movement BAPI
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = GM_HEADER
GOODSMVT_CODE = gm_code
IMPORTING
GOODSMVT_HEADRET = GM_HEADRET
MATERIALDOCUMENT = GM_RETMTD
TABLES
GOODSMVT_ITEM = GM_ITEM
RETURN = GM_RETURN.
IF NOT GM_RETMTD IS INITIAL.
COMMIT WORK AND WAIT.
CALL FUNCTION 'DEQUEUE_ALL'.
ELSE.
COMMIT WORK AND WAIT.
CALL FUNCTION 'DEQUEUE_ALL'.
ENDIF.
WRITE:/ GM_RETMTD.
LOOP AT GM_RETURN.
WRITE:/ GM_RETURN-TYPE,GM_RETURN-LOG_NO,GM_RETURN-FIELD,
GM_RETURN-MESSAGE.
ENDLOOP.
09-03-2007 12:15 PM
You Can use below FM to confirm Production order and it is very simple BAPI.
BAPI_PRODORDCONF_CREATE_HDR -> just check in where used list.
Thanks
Seshu
09-03-2007 12:18 PM