Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

mb_create_goods_movement

Former Member
0 Kudos
2,364

can any one suggest me . I use to Post GR with help of this FM. It always set sy-subrc value as 1 with some material document no.But I execute the t-code MB01 with this material document no is not available.

2 REPLIES 2

Former Member
0 Kudos
268

Hi

Welcome to the SDN forum

Why can't you use the BAPI BAPI_GOODSMVT_CREATE instead of that Fun module

I am here with providing the sample code and documentation of that BAPI , use it and do it

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.

check the BAPI_GOODSMVT_CREATE.

Functionality

You can use this method to create a material document for a goods movement.

You can only create one material document each time you call up the method.

You can use a simulation function before posting the goods movement to check how the data is updated in the database. The standard system is configured so that the goods movement is posted immediately without simulating beforehand.

Ensure that you transfer the data in the same way as it is run in the database, for example,

Material number 18-figure with leading zeros

Batches with uppercase letters

Note that for all transactions/events listed below, the posting date is entered in the header data of the material document. In the BAPI2017_GM_HEAD_01 interface, fill the PSTNG_DATE (import structure GOODSMVT_HEADER) field.

Notes

Authorization check check

In the MM Inventory Management component, the method does not execute any authorization checks.

Note that during a posting of a goods movement, depending on the business transaction of the system, authorization objects of other applications can also be checked.

Transfer

The following information about the material document that is to be created is transferred to the method:

a structure with header data

a structure with the code for the movement

a table with the item data

a table with the serial numbers

The posting is carried out in the SAP R/3 via the MB_CREATE_GOODS_MOVEMENT function module.

Confirmations

Messages are returned in the Return parameter. The parameter documentation shows the return codes and their meanings.

Further Information

The method can only carry out your function if no error messages were generated in the Return table. This is the case if the header data and all the items were processed successfully.

Transaction control is not implemented. The calling program therefore has to execute the Commit Work itself after this method has been successfully called (in other words, if no errors were reported in the Return parameter).

Which fields have to be filled during the various transactions/ events?

The following sample scenarios demonstrate which fields have to be filled for which business transactions/events (code).

There are the following types of transactions/events:

1. GM_Code 01: Goods receipt for purchase order

2. GM_Code 02: Goods receipt for production order

3. GM_Code 03: Goods issue

4. GM_Code 04: Transfer posting

5. GM_Code 05: Other goods receipts

6. GM_Code 06: Reversal of goods movements

7. GM_Code 07: Subsequent adjustment to a subcontract order

Entering the movement indicator

Depending on the transaction, you must enter the following in the movement indicator:

GM_Code 01 (Goods receipt for purchase order): B

GM_Code 02 (Goods receipt for production order): F

For all other transactions, you leave the field blank.

For 1: GM_Code 01: Goods receipt for purchase order

Purchase order known

The following fields have to be filled:

Purchase order

Purchase order item

Movement type

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry or

quantity proposal

The following fields may have to be filled in some cases (incomplete listing):

Shelf life expiration date (if it has been configured like this in the system)

Reason for movement (if it has been configured like this in the system)

Batch (if the material is handled in batches and batch numbers are not assigned automatically)

Storage location (if a storage location has not been specified in the purchase order item)

The following fields can be filled (incomplete listing):

Stock type

Item text

Unloading point

Delivery completed indicator

You cannot fill the following fields (incomplete listing):

Account assignment fields (account assignment is adopted from the purchase order)

Reservation

Receiving/issuing material

Receiving/issuing plant

Receiving/issuing storage location

In the case of a purchase order item with the "subcontracting" item category, only the GR item in the interface is to be transferred. The system automatically determines GI items.

Purchase order unknown: Shipping notification known

The following fields have to be filled:

Delivery

Delivery item

Movement type

Other fields, such as those under "Purchase order known". The system determines the relevant purchase order item via the delivery/delivery item.

Purchase order unknown: Purchase order should be created automatically

The following fields have to be filled:

Material number

Plant

Storage location

Vendor

Movement type

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry

The following fields may have to be filled in some cases (incomplete listing):

Shelf life expiration date (if it has been configured like this in the system)

Reason for movement (if it has been configured like this in the system)

Batch (if the material is handled in batches and batches are not assigned automatically)

The following fields can be filled (incomplete listing):

Stock type

Item text

Unloading point

You cannot fill the following fields (incomplete listing):

Account assignment fields (automatic creation of purchase order items with account assignment is not supported)

Reservation

Receiving/issuing material

Receiving/issuing plant

Receiving/issuing storage location

Purchase order unknown: A purchase order should not be created

The following fields have to be filled:

Material number

Plant

Storage location

Vendor

Movement type

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry

The following fields may have to be filled in some cases (incomplete listing):

Shelf life expiration date (if it has been configured like this)

Reason for movement (if it has been configured like this)

Batch (if the material is handled in batches and automatic assignment of batch numbers is not set)

The following fields can be filled (incomplete listing):

Special stock indicator

Item text

Unloading point

Goods recipient

The following fields cannot be filled (incomplete listing):

Account assignment fields (automatic creation of purchase order items with account assignment is not supported)

Reservation

Receiving/issuing material

Receiving/issuing plant

Receiving/issuing storage location

Receiving/issuing batch

The input combinations listed above for the GM_CODE 01 can be combined within an input table so that they can be posted in a material document. Items can also be posted for different purchase orders, provided that all the purchase orders refer to the same vendor.

Transfer of subcontracting components

During the posting of the ordered material of a subcontract order with movement type 101, for the transfer of the subcontracting components, the filled unique identification of the document line (LINE_ID) is also required.

More information on LINE_ID and PARENT_ID

The following fields have to be filled for the components:

Unique identification of the document line

Identification of the immediately superior line

Material number

Plant

Storage location

Quantity in unit of entry

The following fields can be filled for the components:

All other fields in the method that are included in this list.

The following fields cannot be filled for the components:

All fields that are not included in the list above. The movement indicator must be initial.

Additional fields in goods-receipt-based invoice verification

When you post a goods receipt to purchase order with movement type 102, an issue with reference to a previously posted goods issue, the following fields must also be transferred:

REF_DOC_IT (LFPOS): Item of a reference document

REF_DOC (LFBNR): Document number of a reference document

REF_DOC_YR (LFBJA): Fiscal year of a reference document

Only when you transfer these fields is it guaranteed that the reference to the original goods movement stay the same.

For 2 GM_Code 02: Goods receipt for production order

The following fields have to be filled:

Order

Movement type

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry or

quantity proposal

The following fields may have to be filled in some cases (incomplete listing):

Shelf life expiration date (if the system has been configured like this)

Reason for movement (if the system has been configured like this)

Batch (if the material is handled in batches and automatic batch number assignment is not set)

Storage location (if storage location has not been specified in the order)

The following fields can be filled (incomplete listing):

Order item (co-product)

Stock type

Item text

Unloading point

"Delivery completed" indicator

The following fields cannot be filled (incomplete listing):

Account assignment fields (the account assignments are adopted from the purchase order)

Reservation

Receiving/issuing material

Receiving/issuing plant

Receiving/issuing storage location

Receiving/issuing batch

For 3 GM_Code 03: Goods issue

Goods issue without reference to a reservation

The following fields have to be filled:

Material number

Plant

Storage location

Movement type

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry

The following fields may have to be filled in some cases (incomplete listing):

Special stock (e.g. sales order, project, vendor etc.)

Shelf life expiration date (if the system is configured like this)

Reason for movement (if the system has been configured like this)

Batch (if the material is handled in batches and automatic batch number assignment is not set)

Account assignment fields

The following fields can be filled (incomplete listing):

Special stock indicator

Item text

Unloading point

Goods recipient

The following fields cannot be filled (incomplete listing):

Reservation

Receiving/issuing material

Receiving/issuing plant

Receiving/issuing storage location

Receiving/issuing batch

Goods issue with reference to a reservation

The following fields have to be filled:

Reservation number

Reservation item

Record type of the reservation

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry

The following fields may have to be filled in some cases (incomplete listing):

Shelf life expiration date (if this has been configured in the system)

Reason for movement (if this has been configured in the system)

Batch (if the material is handled in batches and automatic batch number assignment is not set)

Storage location (if not planned in the reservation)

The following fields can be filled (incomplete listing):

Special stock indicator

Item text

Unloading point

Goods recipient

The following fields cannot be filled (incomplete listing):

Movement type

Material

Plant

Account assignment fields

For 4 GM_Code 04: Transfer posting

Transfer posting without reference to a reservation

The following fields have to be filled:

Material number

Plant

Storage location

Movement type

Movement indicator

Quantity in unit of entry

ISO code unit of measurement for unit of entry

The following fields may have to be filled in some cases (incomplete listing):

Receiving material

Receiving plant

Receiving storage location

Receiving batch (if material is handled in batches and you want to change batches)

Receiving/issuing special stock (e.g. sales order, project, vendor etc.)

Shelf life expiration date (if this has been configured in the system)

Reason for movement (if this has been configured in the system)

Batch (if the material is handled in batches and automatic batch number assignment is not set)

The following fields can be filled (incomplete listing):

Special stock indicator

Item text

Account assignment fields (for automatic posting lines: Expense/income from stock transfer)

The following fields cannot be filled (incomplete listing):

Reservation

Transfer posting with reference to a reservation

See goods issue with reference to a reservation

For 5 GM_Code 05: Other goods receipts

Other goods receipt without reference to a reservation

See goods issue without reference to a reservation

Other goods receipt with reference to a reservation

See goods issue with reference to a reservation

For 6 GM_Code 06: Reversal of goods movements

You can use the Cancel method to reverse goods movements. But you may also want to cancel a goods movement without referring to a material document (see the Cancel method).

If you want to work without referring to the document, you have to fill the field BAPI_GM_ITEM_CREATE-XSTOB in the interface (import table GOODSMVT_ITEM). In this case, the system converts the movement type assigned in the interface to the reversal movement type. Alternatively, you can set the reversal movement type in the interface. In this case, the BAPI_GM_ITEM_CREATE_XSTOB field must be transferred blank.

If you want to cancel a goods movement with reference to a reservation (without using the Cancel method) you can only transfer the field BAPI_GM_ITEM_CREATE_XSTOB if it is filled. Movement types are not transferred when you post with reference to a reservation, as the movement type is contained in the reservation item.

For 7. GM_Code 07: Subsequent adjustment to a subcontract order

Ordered material of subcontract order

The following fields have to be filled:

Unique identification of document line (can be assigned to anything)

Posting date in document header

Document number of purchasing document

Item number of purchasing document

Material number check

Plant check

Movement type (select movement type 121)

Movement indicator (must be O)

Further entries are not allowed. The entry quantity for the ordered material of a subcontract order must be zero.

Components

The following fields have to be filled:

Unique identification of document line (can be assigned to anything)

Identification of the immediately superior line

Plant

Material number check

Quantity in unit of entry; can also be negative

The following fields can be filled:

Storage location

All other fields in the method that are included in this list.

The following fields may not be filled:

All fields that are not in the list above. The movement indicator must be blank.

More information on LINE_ID and PARENT_ID

Additional fields in goods-receipt-based invoice verification

When you post a subsequent adjustment, the following fields must also be transferred:

REF_DOC_IT (LFPOS): Item of a reference document

REF_DOC (LFBNR): Document number of a reference document

REF_DOC_YR (LFBJA): Fiscal year of a reference document

Only when you transfer these fields is it guaranteed that the reference to the original goods movement stays the same.

Regards

Anji

Former Member
0 Kudos
268

But I have the doubt with T-Code MIGO whether it's possible to use the BAPI for this Transaction .

Please Provide some help .

Thing is ,I want to do GR with INbound delivery no and Handling unit.I thing this not possible with Tcode - MB1A.