Application Development and Automation 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: 
Read only

BAPI_GOODSMVT_CREATE without PO

Former Member
0 Likes
838

Hi,

I need to make a GR without a PO number using BAPI_GOODSMVT_CREATE

Can somebody tell me how?? (an example would be good)

Thanks.

Hi,

I need to make a GR without a PO number using BAPI_GOODSMVT_CREATE

Can somebody tell me how?? (an example would be good)

Thanks.

2 REPLIES 2
Read only

Former Member
0 Likes
616

Hello,

Welcome to SDN!!!

Check this code:

* 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      = '03'.                                " MB1A

* Write 971 movement to table
CLEAR GM_ITEM.
MOVE '221'                 TO GM_ITEM-MOVE_TYPE     .
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.


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.

This example is for Goods Issue with MB1A

Vasanth

Read only

Former Member
0 Likes
616

Hi-

You can use CALL FUNCTION 'MB_CREATE_GOODS_MOVEMENT'

CALL FUNCTION 'MB_CREATE_GOODS_MOVEMENT'

EXPORTING

imkpf = w_imkpf

xallp = 'X'

ctcod = 'MB1B'

xlisu = 'X'

IMPORTING

emkpf = w_emkpf

es_mkpf = w_es_mkpf

TABLES

emseg = i_emseg

imseg = i_imseg

et_mseg = i_et_mseg.

WAIT UP TO 2 SECONDS.

IF w_emkpf-subrc LE 1.

CALL FUNCTION 'MB_POST_GOODS_MOVEMENT'

EXCEPTIONS

OTHERS = 0.

COMMIT WORK.