‎2007 Jul 06 8:15 AM
Hello all,
What all inputs that i need to give in the BAPI- <b>BAPI_GOODSMVT_CREATE</b> to create goods receipt.
I will surely reward all helpfull answers.
Regards
Rakesh.
‎2007 Jul 06 8:17 AM
Hi
*- Clear Internal tables
CLEAR: bapigm_head, bapigm_code, bapigm_headret,
ibapigm_item, ibapigm_ret,
ibapigm_item[], ibapigm_ret[].
*- Header Information
PERFORM bapigm_head_create.
*- Get possible trxn code for Goods Movement
MOVE gmcode_01 TO bapigm_code-gm_code.
*- Fill Item details
PERFORM bapigm_item_create.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = bapigm_head
goodsmvt_code = bapigm_code
IMPORTING
goodsmvt_headret = bapigm_headret
TABLES
goodsmvt_item = ibapigm_item
return = ibapigm_ret.
*- Commit on Success
IF NOT bapigm_headret-mat_doc IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
*- Material Document sucessfully created. Unlock PO
CALL FUNCTION 'DEQUEUE_EMEKKOE'
EXPORTING
mode_ekko = 'E'
mode_ekpo = 'E'
mandt = sy-mandt
ebeln = v_ebeln
_scope = '3'.
&----
*& Form bapigm_head_create
&----
Header Information
----
FORM bapigm_head_create .
MOVE: sy-datum TO bapigm_head-pstng_date,
sy-datum TO bapigm_head-doc_date,
sy-uname TO bapigm_head-pr_uname,
v_mblnr TO bapigm_head-ref_doc_no,
con_bfwms_bestand TO bapigm_head-ext_wms.
*- Document Header Text
IF NOT v_bktxt IS INITIAL.
*- Preceed "INV=" to the Invoice number entered
CONCATENATE 'INV='(003) v_bktxt INTO v_bktxt SEPARATED BY space.
bapigm_head-header_txt = v_bktxt.
ENDIF.
ENDFORM. " bapigm_head_create
&----
*& Form bapigm_item_create
&----
Fill Item details
----
FORM bapigm_item_create .
*- Populate item data
LOOP AT i_items_trans.
CLEAR ibapigm_item.
*- Convert the matnr backto 18 char form (External)
CALL FUNCTION 'CONVERSION_EXIT_MATN2_INPUT'
EXPORTING
input = i_items_trans-matnr
IMPORTING
output = i_items_trans-matnr
EXCEPTIONS
number_not_found = 1
length_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ibapigm_item-material = i_items_trans-matnr.
ibapigm_item-plant = x_user-werks.
ibapigm_item-stge_loc = x_user-lgort.
ibapigm_item-move_type = '101'. "Goods Receipt
ibapigm_item-mvt_ind = 'B'. "Goods Movement for PO
ibapigm_item-po_number = i_items_trans-ebeln.
ibapigm_item-po_item = i_items_trans-ebelp.
ibapigm_item-gr_rcpt = sy-uname.
ibapigm_item-quantity = i_items_trans-ktmng.
ibapigm_item-base_uom = i_items_trans-meins.
ibapigm_item-entry_qnt = i_items_trans-ktmng.
ibapigm_item-entry_uom = i_items_trans-meins.
ibapigm_item-batch = i_items_trans-charg.
APPEND ibapigm_item.
ENDLOOP.
ENDFORM. " bapigm_item_create
Regards
Raj
‎2007 Jul 06 8:18 AM
Hi
See the sample code for this BAPI
and see the documentation of that BAPI
REPORT ZRICH_0001 .
Structures for BAPI
DATA: GM_HEADER TYPE BAPI2017_GM_HEAD_01.
DATA: GM_CODE TYPE BAPI2017_GM_CODE.
DATA: GM_HEADRET TYPE BAPI2017_GM_HEAD_RET.
DATA: GM_ITEM TYPE TABLE OF
BAPI2017_GM_ITEM_CREATE WITH HEADER LINE.
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.
Setup BAPI header data.
GM_HEADER-PSTNG_DATE = SY-DATUM.
GM_HEADER-DOC_DATE = SY-DATUM.
GM_CODE-GM_CODE = '04'. " MB1A
Write 971 movement to table
CLEAR GM_ITEM.
MOVE '412' TO GM_ITEM-MOVE_TYPE .
MOVE 'Q' TO GM_ITEM-SPEC_STOCK.
MOVE '3800533484' TO GM_ITEM-MATERIAL.
MOVE '1' TO GM_ITEM-ENTRY_QNT.
*MOVE 'PC' TO GM_ITEM-ENTRY_UOM.
MOVE '1060' TO GM_ITEM-PLANT.
MOVE '0007' TO GM_ITEM-STGE_LOC.
*MOVE '0901' TO GM_ITEM-MOVE_REAS.
MOVE 'P203601001' TO GM_ITEM-WBS_ELEM.
MOVE 'P203601001' TO GM_ITEM-VAL_WBS_ELEM.
APPEND 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.
ENDLOOP.
<b>Reward points for useful Answers</b>
Regards
Anji
‎2007 Jul 06 12:56 PM