Goods Receipt for Purchase Order Using BAPI 'BAPI_GOODSMVT_CREATE'

MB01->....->Adopt+details->...........
How to fill the table GOODSMVT_ITEM(TALBE of BAPI_GOODSMVT_CREATE'), and final document created  like following:
Item Quantity          EUn Material           Plnt  SLoc PO         Item  S DCI
                       BUn Material description          Batch      R MvT S T
   1 1                 KG  CB-602             8010  WH06 4500000752 10
                                                         DDDD         101 +
   2 1.020             KG  CRB-2120           8010       4500000752 10    O
                                                         9999         543 -

Hi
<u>Please take a look at the links for sample coding of the function module - BAPI_GOODSMVT_CREATE.</u>
<b>http://www.sap-img.com/abap/bapi-goodsmvt-create-to-post-goods-movement.htm
http://www.4ap.de/abap/bapi_goodsmvt_create.php</b>
Hope this will help.
Please reward suitable points.
Regards
- Atul

Similar Messages

  • Goods Receipts for Purchase Order using BAPI_GOODSMVT_CREAT

    Hi experts,
    I am working on the a program where am generating Goods Receipts for Purchase Order. the BAPI_GOODSMVT_CREAT returns an error saying "Material 6003022 not maintained in plant 1001"
    Can any one assist? is there a field I may be missing?
    Here is a sample code.
    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 = '02'.
    " MB1A * Write 971 movement to table CLEAR GM_ITEM.
    MOVE '101' TO gm_item-move_type .
    " MOVE 'Q' TO GM_ITEM-SPEC_STOCK.
    MOVE '6003022' TO gm_item-material.
    MOVE '10' TO gm_item-entry_qnt.
    MOVE 'EA' TO gm_item-entry_uom.
    MOVE '1001' TO gm_item-plant.
    MOVE '' TO gm_item-stge_loc.
    MOVE '0901' TO gm_item-move_reas.
    "  MOVE '4500006877' TO GM_ITEM-WBS_ELEM.
    "  MOVE '0020' TO GM_ITEM-VAL_WBS_ELEM.
    MOVE '0020' TO gm_item-deliv_numb.
    MOVE '4500006881' TO gm_item-po_number.
    MOVE '0010' TO gm_item-po_item.
    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.

    >
    Spark842 wrote:
    > Hi experts,
    > I am working on the a program where am generating Goods Receipts for Purchase Order. the BAPI_GOODSMVT_CREAT returns an error saying "Material 6003022 not maintained in plant 1001"
    >  Can any one assist? is there a field I may be missing?
    >
    > Here is a sample code.
    >
    > 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 = '02'.
    >
    >
    > " MB1A * Write 971 movement to table CLEAR GM_ITEM.
    > MOVE '101' TO gm_item-move_type .
    > " MOVE 'Q' TO GM_ITEM-SPEC_STOCK.
    > MOVE '6003022' TO gm_item-material.
    > MOVE '10' TO gm_item-entry_qnt.
    > MOVE 'EA' TO gm_item-entry_uom.
    > MOVE '1001' TO gm_item-plant.
    > MOVE '' TO gm_item-stge_loc.
    > MOVE '0901' TO gm_item-move_reas.
    > "  MOVE '4500006877' TO GM_ITEM-WBS_ELEM.
    > "  MOVE '0020' TO GM_ITEM-VAL_WBS_ELEM.
    > MOVE '0020' TO gm_item-deliv_numb.
    > MOVE '4500006881' TO gm_item-po_number.
    > MOVE '0010' TO gm_item-po_item.
    > 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.
    My guess, is that this material is not really maintained in the Plant '1001', to be on the safer side, get the exact values from EKPO itself, also check if this material exists in the table MARC for the plant and storage location.
    MOVE '1001' TO gm_item-plant.   "<< Hard coded
    MOVE '' TO gm_item-stge_loc.
    Replace the above hardcodes to something like this to get the actual value from EKPO.
    select werks lgort into (gm_item-plant, gm_item-stge_loc) from ekpo
       where ebeln = gm_item-po_number
            and ebelp = gm_item-po_item.

  • Call BAPI_GOODSMVT_CREATE to create a goods receipt for purchase order

    Hi,
    I'm calling the bapi BAPI_GOODSMVT_CREATE to create a goods receipt for purchase order, but the following code doesn't work. It doesn't give me any kind of error message but it does nothing as well...
    Can anyone help me please?
    Thank You
    Hugo
    Code
    DATA: wa_goodsmvt_header  LIKE bapi2017_gm_head_01,
                            wa_goodsmvt_code    LIKE bapi2017_gm_code,
                            wa_bapi2017_gm_head TYPE bapi2017_gm_head_ret-mat_doc.
                      DATA: it_goodsmvt_item LIKE bapi2017_gm_item_create OCCURS  0 WITH HEADER LINE,
                            it_return        LIKE bapiret2 OCCURS  0 WITH HEADER LINE.
                      wa_goodsmvt_header-pstng_date = SY-DATUM.
                      wa_goodsmvt_header-doc_date   = SY-DATUM.
                      wa_goodsmvt_header-ref_doc_no = '4500000020'.
                      wa_goodsmvt_code-gm_code = '01'.          "Goods receipt for purchase Order
                      it_goodsmvt_item-stge_loc  = 'BPF2'.
                      it_goodsmvt_item-move_type = '101' .
                      it_goodsmvt_item-entry_qnt = 17.
                      it_goodsmvt_item-entry_uom = 'KG'.
                      it_goodsmvt_item-mvt_ind   = 'B'.
                      it_goodsmvt_item-po_number = '4500000020'.
                      it_goodsmvt_item-po_item   = '00010'.
                      it_goodsmvt_item-material  = '50'.
                      APPEND it_goodsmvt_item.
                      CALL FUNCTION  'BAPI_GOODSMVT_CREATE'
                        EXPORTING
                          goodsmvt_header  = wa_goodsmvt_header
                          goodsmvt_code    = wa_goodsmvt_code
                        IMPORTING
                          materialdocument = wa_bapi2017_gm_head
                        TABLES
                          goodsmvt_item    = it_goodsmvt_item
                          return            = it_return.
                        data: begin of errmsg occurs 10.
                                include structure bapiret2.
                        data: end of errmsg.
                        data: wmenge like iseg-menge,
                              errflag.
                        clear errflag.
                        loop at errmsg.
                          if errmsg-type eq 'E'.
                            write:/'Error in function', errmsg-message.
                            errflag = 'X'.
                          else.
                            write:/ errmsg-message.
                          endif.
                        endloop.
                        if errflag is initial.
                          commit work and wait.
                          if sy-subrc ne 0.
                            write:/ 'Error in updating'.
                            exit.
                          else.
                            write:/ 'Ok'.
                          endif.
                        endif.
                        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                        EXPORTING
                        wait = ' '.

    Hi,
    Thank you for the asnwer! I'm a rookie at ABAP so please forgive my stupid questions
    I've changed the code to:
    DATA: wa_goodsmvt_header  LIKE bapi2017_gm_head_01,
                            wa_goodsmvt_code    LIKE bapi2017_gm_code,
                            wa_bapi2017_gm_head TYPE bapi2017_gm_head_ret-mat_doc.
                      DATA: it_goodsmvt_item LIKE bapi2017_gm_item_create OCCURS  0 WITH HEADER LINE,
                            it_return        LIKE bapiret2 OCCURS  0 WITH HEADER LINE.
                      wa_goodsmvt_header-pstng_date = SY-DATUM.
                      wa_goodsmvt_header-doc_date   = SY-DATUM.
                      wa_goodsmvt_header-ref_doc_no = '4500000020'.
                      wa_goodsmvt_code-gm_code = '01'.          "Goods receipt for purchase Order
                      it_goodsmvt_item-plant     = 'BP01'.
                      it_goodsmvt_item-stge_loc  = 'BPF2'.
                      it_goodsmvt_item-move_type = '101' .
                      it_goodsmvt_item-entry_qnt = 10.
                      it_goodsmvt_item-entry_uom = 'KG'.
                      it_goodsmvt_item-mvt_ind   = 'B'.
                      it_goodsmvt_item-po_number = '4500000020'.
                      it_goodsmvt_item-po_item   = '10'.
                      it_goodsmvt_item-material  = '50'.
                      APPEND it_goodsmvt_item.
                      CALL FUNCTION  'BAPI_GOODSMVT_CREATE'
                        EXPORTING
                          goodsmvt_header  = wa_goodsmvt_header
                          goodsmvt_code    = wa_goodsmvt_code
                        IMPORTING
                          materialdocument = wa_bapi2017_gm_head
                        TABLES
                          goodsmvt_item    = it_goodsmvt_item
                          return            = it_return.
                          write:/ it_return-message.
    And the return message is : Material document data and PO data do not match (Material)
    Any idea of what might be the problem?
    Thanks

  • Goods receipt  for purchase order not allowed for a particular wbs

    hello everybody..
    Am creating a good receipt for a purchase order using the T-CODE-: MIGO...
    While doing so am getting an error as " goods receipt  for purchase order not allowed(wbs element)".
    What can be done to rectify this error?
    Plz do help me....
    Regards,
    Deepika
    Moderator message: not directly related to ABAP development, please have a look in the appropriate functional forum, study the long text of this error message.
    Edited by: Thomas Zloch on Dec 1, 2010 5:52 PM

    Hi Br. Ajay M,
    Released the order and Status line as follow
    REL  AVAC BUDG GMPS
    but the error changed while reverse the document
    item 0001 Order is invalid.
    Many thanks for your kindly reply.
    regards,
    Steven

  • SAP how to determine the account in Goods receipt for purchase order?

    We know when we make a Goods receipt for purchase order,we will use the account in GBB and BSX define in OBYC. But where can we find the rule? I mean why system can find the account in GBB and BSX , not the other TEcode?

    HI
    This is again based on the movement type which SAP has created a link internally.
    So if you see when a document is posted it basically derives the GL accounts based on the Movement type,Valuation class,valaution area and so on.
    Good luck
    Hari

  • Is it possible to do goods receipt for purchase order by mb31

    Hello friends,
    I have created one purchase order.Now i want to do goods receipt for that purchase order.I know that throught migo and movt type 101, i can do this.But guys i have one doubt over here.Can i do the goods receipt for purchase order by Transaction code MB31(Goods Receipt for Order).
    When in Transaction code mb31 i put the purchase order number, system gave me the error,"order 44000000298 not found or not permitted for goods movement".Message no. c6001.
    So guys what do you think in this matter?is it possible to do goods receipt for purchase order by mb31.If yes than how to resolve this error.
    Thanking you guys in advance.

    MB31 is for doing goods receipt of production order

  • Goods receipt for purchase order is not allowed

    Hi,
    When I am doing the PO receipt i am facing the error message "Goods receipt for purchase order is not allowed WBS element xxxxxx"
    What could be the problem
    Thanks
    Lucky

    Hi,
    Please check the WBS element in CJ03, in Basic Data, System status,
    Is the WBS is not released or blocked.
    Hope it helps you.
    Thanks

  • Menu path - for goods receipt for purchase order (MB01)

    Hi
    What is the menu path for Goods receipt for purchase order (MB01) - ECC6.0

    hi
    the path is too deep
    plz just log in ur system and find MB01
    Materials Management >  Purchasing  >  Master Data   > Subsequent Settlement >  Vendor Rebate Arrangements  >  Environment   > Condition/Arrangement  > Environment   >Pricing  > Environment    Value assignment  >  Inventory management  > Goods receipt  >For purchase order   >  MB01 - PO number known
    regards
    KI

  • Steps For Goods Receipt For Work Order Using Handling Units

    Hello MM gurus,
    I'm new to HU Management.  Can you please share with me the steps for executing a "Goods Receipt For Work Order" using Handling Units?
    I created a HU (1000000026), and then using transaction COWBHUWE I tried using that HU to create a goods receipt, but I keep getting the message below:
    Handling unit 1000000026 is not provided for goods receipt
    Message no. VHURM046
    Do you have to assign/plan HUs to Process Orders first? I think the problem is that I'm not understanding the process or the requirements for a goods receipt for work order using HU.

    Hello Manish Kumar,
    I've been doing Handling Units testing in our sandbox environment and I've been trying to Pack a Finished Product for a Process Order using
    1-Transaction code HU02 to create the Handling Unit
    2-Transaction COWBHUE after creating the HU to enter the production order number and the HU number and propose it, but the it doesn't work. When I propose it, nothing happens.
    3.-I also tried COWBPACK, but for some reason, when I go into COWBPACK, key in the Process Order, and then press enter, I get the following message:
    You do not have authorization to create handling units for plant BP08
    Message no. VHUPD500
    Do you know how to solve this issue?

  • Message no. BS007-Goods receipt for purchase order not allowed

    Hello SAP Experts,
    I have created an internal order to collect expense within the order.
    When I tried to reverse an GR against the PO created with the internal order assigned, the following Error occured.
    "Goods receipt for purch. order" is not allowed (ORD 145116170204)
    Message no. BS007
    Diagnosis
    The current status of object 'ORD 145116180204' prohibits business transaction 'Goods receipt for purch. order'.
    Procedure
    To process business transaction 'Goods receipt for purch. order', you first have to change the status of object 'ORD 145116170204' to allow the transaction 'Goods receipt for purch. order'.
    This gives you an overview of the system and user statuses that affect the transaction. A transaction can only be executed if there is at least one status that allows it and there is no status that forbids it.
    The order was previous TECOed, and change it's status to Release, but still have the error.
    Please give possible solutions. Thank you in advance.
    Regards,
    Steven Lin

    Hi Br. Ajay M,
    Released the order and Status line as follow
    REL  AVAC BUDG GMPS
    but the error changed while reverse the document
    item 0001 Order is invalid.
    Many thanks for your kindly reply.
    regards,
    Steven

  • Error while doing Good Issue for Production Order using BAPI

    Hi All,
    I am facing an error like 'u2018Content of order 1011907: MDT218AJ10 transferred to interface (IMSEG): T-86410-71".
    I have written the code as below. Please let me know what is missing when using the BAPI 'BAPI_GOODSMVT_CREATE'. What is the cause of this error ?
    *Action in Transaction (GM_CODE)
    *GM Code for Goods Issue for Production Order is 03
      gs_gmcode-gm_code = '03'.
    *Header Data
    *Posting date
      gs_header-pstng_date = sy-datum.
    *Document date
      gs_header-doc_date   = sy-datum.
    *Item Data
    *Material
      gs_item-material  = zptp_s_rf_migo_261-matnr1.
    *Movement Type
      gs_item-move_type = '261'.
    *Movement Indicator
      gs_item-mvt_ind   = 'F'.
    *Stock Type
      gs_item-stck_type = 'F'.
    *Plant
      gs_item-plant     = gv_plant.
    *Storage Location
      gs_item-stge_loc  = gv_str_loc.
    *Quantity
      gs_item-entry_qnt = zptp_s_rf_migo_261-menge2.
    *Unit
      gs_item-entry_uom = gv_uom.
    *ISO code for unit of measurement
      gs_item-entry_uom_iso = gv_uom.
    *Order Number
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = zptp_s_rf_migo_261-aufnr
        IMPORTING
          output = gs_item-orderid.
    *Reservation Number
      gs_item-reserv_no = gv_resv_num.
    *Reservation Item
      gs_item-res_item = gv_resv_itm.
    *Reservation Type
      gs_item-res_type = gv_resv_type.
      APPEND gs_item TO gt_item.
    Calling BAPI_GOODSMVT_CREATE to create the Material Document Number
      CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
        EXPORTING
          goodsmvt_header       = gs_header
          goodsmvt_code         = gs_gmcode
        IMPORTING
          goodsmvt_headret      = gs_headret
        TABLES
          goodsmvt_item         = gt_item
          goodsmvt_serialnumber = gt_serial
          return                = gt_return.
    Thanks in Advance.

    hi,
    did you look at message ?
    System says, there are differences between the interface data and the order data. It can be anything. I think you should check
    data in the interface . 
    this is the long explanation of your message :
    Diagnosis
    When calling the function module MB_CREATE_GOODS_MOVEMENT or the BAPI GoodsMovement.CreateFromData (BAPI_GOODSMVT_CREATE) to post a goods receipt for a production order, there are differences between the interface data and the order data.
    Example: The order was created for plant 0001, but plant 0002 is passed on in the interface.
    The system checks this for the material and the order item.
    System response
    Due to this difference, the system cannot post the goods receipt.
    Procedure
    Check the data in the interface (IMSEG-WERKS, IMSEG-AUFNR). If necessary, correct the plant or the order number in the interface.
    << Moderator message - Point begging removed >>
    Edited by: Rob Burbank on Feb 6, 2012 11:24 AM

  • Goods receipt for purchase order with account assignment 'K'

    Hello All,
    There are couple of purchase orders with acc.*** "K". On doing the GR for these PO's they have been done with mvt type 103 & mvt typ 105.
    I understand that material has been directly consumed to the respective cost center.
    How do track the internal movement for these materials??
    I need to view the stock for these materials at the cost center as in MMBE the stock is seen as ZERO.
    All these materials are with QM proc ACTIVE. So a goods receipt is done 105, then the inspection lot is cleared. However, in this case as the material is directly consumed, it is NOT displayed in QA32.
    Is the above procedure correct??? Is it better to receive stock against mvt type 101 & then do a 201 mvt ??
    Request your inputs.....
    Regards,
    Manoj Reddy

    Account assignment inventories are not maintained. To maintain a report for cost center receiving/issuing you need to make a customized report with help of ABAP.
    Other way is to pull report in MB51, with selection criteria COST CENTER and it will give you result of stocks available on cost center. For stocks received on cost center, you can pull report with cost center and movement 101.
    201 is used for goods issue to cost center from warehouse, the stock you receive from PO against 101 is directly charged to cost center, so no need to issue later to cost center.
    Edited by: Afshad Irani on May 17, 2010 2:17 PM

  • MPN Material Field in Goods Receipt for Purchase Order

    Hi,
    I have created PO for MPN material "MFG-A" for IM material " 123". ( ECC 6.0)
    Already the material "123" is maintained with other MPN material "MFG-B"
    The have checked the " MPN Change" check box in the respective Mfg Part profile( IMG: OMPN) 
    While I am doing goods receipt, the MPN material field is in display mode.
    But in other system the field is in change mode.
    Default the system will show "MFG-A" as the MPN material is maintained in PO.
    But I need to  change the MPN materail at the time of GR.
    I would like to change the MPN material from "MFG-A" to "MFG-B" while doing GR time.
    kindly guide me what are the settings required to change MPN Material Field in Goods Receipt.
    Thanks in Advance,
    Kumar.

    Hi,
    I have maintained all the settings.
    But the issue was, I have not put the field "MPN material" (GOITEM-EMATN) as input field in field selection group in Inventory management.( it was in display mode )
    Once I have changed to input option, I can able to change the MPN material while GR.
    Regards,
    Kumar

  • Goods receipt for purchase order.

    i wanna set period like this
    "you have opened next period (12) i.e. period for March 2010. Close next period and reopen current period (11) is Feb 2011"
    what is the transaction code used to set  this.
    how to set periods for company code .
    explain the steps involved one by one please.

    Dear ,
    1. Goto MMRV
        entered Company code and check the current & previous period. There has option to allow entery for previous period.
    2. T-Code MMPV
        Entered Company code and period and year select check & Close option
    Regards,
    PK

  • How to create a Goods receipt for Purchase order

    Hi All,
    How to create a GR for PO and then i need to invoice the PO
    Please tell me ASAP.
    Regards,
    Sagar.

    Thanks for ur reply
    I understood how to do it.
    Can u please say me how to invoice a PO.
    my mail id is:[email protected]
    Thanks

Maybe you are looking for

  • ARE1 creation error - "excise Invoice is not meant for Exports"

    Hello Experts We are working on ECC 6.0. We were so far dealing with domestic sales and now have to start with exports (ARE1) I've gone through many threads and all major configuration has been done according to J91 Block Builder. But I still have do

  • Prevent Goods Receipt without confirmations

    Hi Friends, Is there any way to prevent Goods Receipt for a production order when all the operations have not been confirmed? We have the prevention for overdelivery in the confirmation parameters. Even with some confirmations not being done, we are

  • I need firefox 2 temporarily to use with a program that does not support version above 2.0 what do i do

    I am trying to access information from a teaching site for securities exam and it will not let me access the programs because it does not support version above 2.0 and i have 3.0 or 3.5 please advise.

  • Export and Import of EWA data

    Dear Guru's, Does anybody know how to export EWA's from one SolMan to another? I need historical data for SoDocA from another Solution Manager System....... Please advise! Regards, David

  • Matrox MX02 with CS6

    Hi, any ideas if the matrox mxo2 works well with cs6, have a chance to buy one loacally for a low price. I am aware that there has been issues in the past with matrox products, is it still the same. any other recoemndations for a I/o Baz