11-08-2007 9:17 AM
Hi,
I'm using the Bapi BAPI_GOODSMVT_CREATE to do a WM movement.
I want to move a material of a store to other one. The first one is managed by locations. The movement does it well but it does not generate Transfer Order. Someone can help me?
Thanks in advance.
11-08-2007 10:52 AM
Hi
Try this...
Regards
Raj
*- 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'.
&----
*& 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