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 new error

Former Member
0 Likes
1,347

Hi Gurus,

I m trying to create a goods receipt thr'

BAPI_GOODSMVT_CREATE,

Here is the code-

*& Header data

REFRESH goodsmvmt_header.

goodsmvmt_header-pstng_date = sy-datum.

goodsmvmt_header-doc_date = sy-datum.

goodsmvmt_header-ref_doc_no = 'Test'

APPEND goodsmvmt_header.

*& Process the type of movement

REFRESH goodsmvmt_code.

goodsmvmt_code-gm_code = '01'.

APPEND goodsmvmt_code.

*& Process the line items for the material document

REFRESH goodsmvmt_item.

goodsmvmt_item-PO_NUMBER = display_itab-ebeln.

goodsmvmt_item-PO_ITEM = display_itab-ebelp.

goodsmvmt_item-MVT_IND = 'B'.

goodsmvmt_item-material = display_itab-matnr.

goodsmvmt_item-plant = display_itab-werks.

goodsmvmt_item-stge_loc = display_itab-lgort.

goodsmvmt_item-entry_qnt = display_itab-menge.

goodsmvmt_item-move_type = '101'.

goodsmvmt_item-STCK_TYPE = space.

  • goodsmvmt_item-SPEC_STOCK = '+'.

APPEND goodsmvmt_item.

*& Refreshing document and return tables

REFRESH goodsmvmt_document.

REFRESH goodsmvmt_return.

*& call function bapi....

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'

EXPORTING

goodsmvt_header = goodsmvmt_header

goodsmvt_code = goodsmvmt_code

IMPORTING

goodsmvt_headret = goodsmvmt_document

TABLES

goodsmvt_item = goodsmvmt_item

return = goodsmvmt_return.

This is giving me following error in return parameter-

<b>Inconsistency between a document field and the prof. segment number</b>

Any help will be appriciated.

Prasad

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,029

Hi Prasad,

Please go through the following code which is working good without any inconsistency errors.

Hope this will be helpful for you.

INITIALIZATION.

*

START-OF-SELECTION.

  • Mandatory Include for Client Check

INCLUDE ZZIMANDT.

E_HEADER-PSTNG_DATE = SY-DATUM.

E_HEADER-DOC_DATE = SY-DATUM.

APPEND E_HEADER.

  • Opening the Data file

PERFORM READ_WIRELESS_DATA.

PERFORM MATCH_ORDERS.

PERFORM CLEAR_INPUT_FILES.

TOP-OF-PAGE.

FORMAT COLOR COL_HEADING ON.

WRITE : / SY-VLINE,

15 'Wireless Resale Daily Processing Report',

90 SY-VLINE.

ULINE 0(90).

WRITE : / SY-VLINE,

2 'Svc Ord',

13 SY-VLINE,

14 'Material',

25 SY-VLINE,

26 'Qty',

32 SY-VLINE,

33 'Ord date',

42 SY-VLINE,

43 'Gl Acct',

54 SY-VLINE,

55 'Co',

60 SY-VLINE,

61 'Sub Mkt',

68 SY-VLINE,

69 'Result',

85 SY-VLINE,

86 'MVT',

90 SY-VLINE.

ULINE 0(90).

END-OF-PAGE.

END-OF-SELECTION.

************************************************************************

************************************************************************

                                                    • END OF PROGRAM ******************************

************************************************************************

************************************************************************

************************************************************************

FORM READ_WIRELESS_DATA.

OPEN DATASET U_MERC FOR INPUT IN TEXT MODE.

OPEN DATASET F_CSTR FOR INPUT IN TEXT MODE.

OPEN DATASET F_CTEL FOR INPUT IN TEXT MODE.

PERFORM SPLIT_FILE.

CLOSE DATASET F_CSTR.

CLOSE DATASET F_CTEL.

CLOSE DATASET U_MERC.

ENDFORM.

************************************************************************

&----


*& Form SPLIT_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SPLIT_FILE.

DO.

READ DATASET U_MERC INTO OMSDATA.

IF OMSDATA-RECORD IS INITIAL.

EXIT.

ELSE.

APPEND OMSDATA.

CLEAR OMSDATA.

ENDIF.

ENDDO.

LOOP AT OMSDATA.

SPLIT OMSDATA-RECORD AT ',' INTO

I_OMSW-ZSERVICE_ORD

I_OMSW-ZMATNR

I_OMSW-ZQTY

I_OMSW-ZORD_DT

I_OMSW-ZGL_ACCT

I_OMSW-ZBUKRS

I_OMSW-ZSUB_MKT

I_OMSW-ZCURR_DT

I_OMSW-ZCURR_TIME.

I_OMSW-ZPROCESS_FLAG = ' '.

UNPACK I_OMSW-ZMATNR TO I_OMSW-ZMATNR.

UNPACK I_OMSW-ZGL_ACCT TO I_OMSW-ZGL_ACCT.

APPEND I_OMSW .

CLEAR I_OMSW.

ENDLOOP.

SELECT * FROM ZMMOMSW INTO I_OMSW WHERE ZPROCESS_FLAG = ' '.

APPEND I_OMSW.

CLEAR I_OMSW.

ENDSELECT.

SORT I_OMSW.

DELETE ADJACENT DUPLICATES FROM I_OMSW.

DO.

READ DATASET F_CSTR INTO CELLSTAR.

IF CELLSTAR-RECORD IS INITIAL.

EXIT.

ELSE.

APPEND CELLSTAR.

CLEAR CELLSTAR.

ENDIF.

ENDDO.

LOOP AT CELLSTAR.

SPLIT CELLSTAR-RECORD AT ',' INTO

I_WRLS-ZSERVICE_ORD

I_WRLS-ZMATNR

I_WRLS-ZQTY

I_WRLS-ZORD_DT.

CONCATENATE 'S' I_WRLS-ZSERVICE_ORD INTO I_WRLS-ZSERVICE_ORD.

I_WRLS-ZCURR_DT = SY-DATUM.

I_WRLS-ZCURR_TIME = SY-UZEIT.

I_WRLS-ZPROCESS_FLAG = ' '.

I_WRLS-ZMAT_TYPE = 'C'.

UNPACK I_WRLS-ZMATNR TO I_WRLS-ZMATNR.

APPEND I_WRLS.

CLEAR I_WRLS.

ENDLOOP.

REFRESH CELLSTAR.

FREE CELLSTAR.

DO.

READ DATASET F_CTEL INTO CTEL.

IF CTEL-RECORD IS INITIAL.

EXIT.

ELSE.

APPEND CTEL.

CLEAR CTEL.

ENDIF.

ENDDO.

LOOP AT CTEL.

SPLIT CTEL-RECORD AT ',' INTO

I_WRLS-ZSERVICE_ORD

I_WRLS-ZMATNR

I_WRLS-ZQTY

I_WRLS-ZORD_DT.

I_WRLS-ZCURR_DT = SY-DATUM.

I_WRLS-ZCURR_TIME = SY-UZEIT.

I_WRLS-ZPROCESS_FLAG = ' '.

I_WRLS-ZMAT_TYPE = 'O'.

CONCATENATE 'S' I_WRLS-ZSERVICE_ORD INTO I_WRLS-ZSERVICE_ORD.

UNPACK I_WRLS-ZMATNR TO I_WRLS-ZMATNR.

APPEND I_WRLS.

CLEAR I_WRLS.

ENDLOOP.

SELECT * FROM ZMMWRLS INTO I_WRLS WHERE ZPROCESS_FLAG = ' '.

APPEND I_WRLS.

CLEAR I_WRLS.

ENDSELECT.

SORT I_WRLS.

DELETE ADJACENT DUPLICATES FROM I_WRLS.

REFRESH CTEL.

FREE CTEL.

ENDFORM. " SPLIT_FILE

&----


*& Form MATCH_ORDERS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM MATCH_ORDERS.

LOOP AT I_OMSW.

OMS_INDX = SY-TABIX.

LOOP AT I_WRLS WHERE ZSERVICE_ORD = I_OMSW-ZSERVICE_ORD

AND ZMATNR = I_OMSW-ZMATNR

AND ZPROCESS_FLAG = ' '.

WRLS_INDX = SY-TABIX.

ENDLOOP.

IF SY-SUBRC = 0.

I_OMSW-ZPROCESS_FLAG = 'X'.

PERFORM UPDATE_ZMMOMSW.

I_WRLS-ZPROCESS_FLAG = 'X'.

CONCATENATE I_OMSW-ZBUKRS I_OMSW-ZSUB_MKT+2(3)

INTO I_WRLS-ZKOSTL.

PERFORM UPDATE_ZMMWRLS.

PERFORM UPDATE_ZMMWMCH.

CLEAR OMS_INDX.

CLEAR WRLS_INDX.

COMMIT WORK.

IF I_WRLS-ZMAT_TYPE = 'C'.

PERFORM BUILD_101_MVT.

PERFORM GOODS_MVT.

WAIT UP TO 5 SECONDS.

PERFORM BUILD_201_MVT.

PERFORM GOODS_MVT.

ELSE.

PERFORM BUILD_201_MVT.

PERFORM GOODS_MVT.

ENDIF.

WAIT UP TO 5 SECONDS.

ELSE.

I_OMSW-ZPROCESS_FLAG = ' '.

PERFORM UPDATE_ZMMOMSW.

ENDIF.

ENDLOOP.

COMMIT WORK.

LOOP AT I_WRLS WHERE ZPROCESS_FLAG = ' '.

MOVE-CORRESPONDING I_WRLS TO ZMMWRLS.

MODIFY ZMMWRLS.

ENDLOOP.

ULINE 0(90).

ENDFORM. " MATCH_ORDERS

&----


*& Form GOODS_MVT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GOODS_MVT.

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'

EXPORTING

GOODSMVT_HEADER = E_HEADER

GOODSMVT_CODE = W_CODE

IMPORTING

GOODSMVT_HEADRET = I_HEADER

MATERIALDOCUMENT = W_DOC_NUM

MATDOCUMENTYEAR = W_YEAR

TABLES

GOODSMVT_ITEM = I_MSEG

  • GOODSMVT_SERIALNUMBER =

RETURN = W_RETURN

.

IF W_RETURN-TYPE = ' '.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

IMPORTING

RETURN = W_COMMIT_RETURN.

WRITE: / SY-VLINE,

2(10) I_OMSW-ZSERVICE_ORD,

13 SY-VLINE,

14(8) I_OMSW-ZMATNR,

25 SY-VLINE,

26(5) I_OMSW-ZQTY,

32 SY-VLINE,

33(8) I_OMSW-ZORD_DT,

42 SY-VLINE,

43(10) I_OMSW-ZGL_ACCT,

54 SY-VLINE,

55(4) I_OMSW-ZBUKRS,

60 SY-VLINE,

61(5) I_OMSW-ZSUB_MKT,

68 SY-VLINE,

69(15) 'Post Successful',

85 SY-VLINE,

86 W_MVT,

90 SY-VLINE.

ELSE.

WRITE: / SY-VLINE,

2(10) I_OMSW-ZSERVICE_ORD,

13 SY-VLINE,

14(8) I_OMSW-ZMATNR,

25 SY-VLINE,

26(5) I_OMSW-ZQTY,

32 SY-VLINE,

33(8) I_OMSW-ZORD_DT,

42 SY-VLINE,

43(10) I_OMSW-ZGL_ACCT,

54 SY-VLINE,

55(4) I_OMSW-ZBUKRS,

60 SY-VLINE,

61(5) I_OMSW-ZSUB_MKT,

68 SY-VLINE,

69(15) 'Posting Failed',

85 SY-VLINE,

86 W_MVT,

90 SY-VLINE.

ENDIF.

CLEAR W_MVT.

IF W_COMMIT_RETURN-TYPE NE ' '.

CLEAR W_COMMIT_RETURN.

REFRESH W_COMMIT_RETURN.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

IMPORTING

RETURN = W_COMMIT_RETURN.

ENDIF.

CLEAR W_DOC_NUM.

CLEAR W_YEAR.

CLEAR I_MSEG.

REFRESH I_MSEG.

ENDFORM. " GOODS_MVT.

&----


*& Form BUILD_101_MVT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_101_MVT.

W_CODE = '01'.

I_MSEG-MATERIAL = I_WRLS-ZMATNR.

I_MSEG-PLANT = '1295'.

I_MSEG-STGE_LOC = '2000'.

I_MSEG-MOVE_TYPE = '101'.

W_MVT = '101'.

I_MSEG-ENTRY_QNT = I_WRLS-ZQTY.

I_MSEG-ENTRY_UOM = 'EA'.

I_MSEG-PO_NUMBER = P_PO.

I_MSEG-MVT_IND = 'B'.

SELECT SINGLE EBELP FROM EKPO INTO W_EBELP

WHERE EBELN = P_PO AND

MATNR = I_WRLS-ZMATNR.

I_MSEG-PO_ITEM = W_EBELP.

APPEND I_MSEG.

CLEAR I_MSEG.

CLEAR W_EBELP.

ENDFORM. " BUILD_101_MVT

&----


*& Form BUILD_201_MVT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_201_MVT.

W_CODE = '03'.

I_MSEG-MATERIAL = I_WRLS-ZMATNR.

I_MSEG-PLANT = '1295'.

I_MSEG-STGE_LOC = '2000'.

I_MSEG-MOVE_TYPE = '201'.

W_MVT = '201'.

I_MSEG-ENTRY_QNT = I_WRLS-ZQTY.

I_MSEG-ENTRY_UOM = 'EA'.

I_MSEG-COSTCENTER = I_WRLS-ZKOSTL.

I_MSEG-GL_ACCOUNT = I_OMSW-ZGL_ACCT.

I_MSEG-MVT_IND = ' '.

APPEND I_MSEG.

CLEAR I_MSEG.

ENDFORM. " BUILD_201_MVT

&----


*& Form clear_input_files

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CLEAR_INPUT_FILES.

OPEN DATASET U_MERC FOR OUTPUT IN TEXT MODE.

OPEN DATASET F_CSTR FOR OUTPUT IN TEXT MODE.

OPEN DATASET F_CTEL FOR OUTPUT IN TEXT MODE.

TRANSFER W_CELLSTAR TO F_CSTR.

TRANSFER W_CELLSTAR TO F_CTEL.

TRANSFER W_MERC TO U_MERC.

CLOSE DATASET F_CSTR.

CLOSE DATASET F_CTEL.

CLOSE DATASET U_MERC.

ENDFORM. " clear_input_files

&----


*& Form UPDATE_ZMMOMSW

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UPDATE_ZMMOMSW.

MODIFY I_OMSW INDEX OMS_INDX.

MOVE-CORRESPONDING I_OMSW TO ZMMOMSW.

MODIFY ZMMOMSW.

ENDFORM. " UPDATE_ZMMOMSW

&----


*& Form UPDATE_ZMMWRLS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UPDATE_ZMMWRLS.

MODIFY I_WRLS INDEX WRLS_INDX.

MOVE-CORRESPONDING I_WRLS TO ZMMWRLS.

MODIFY ZMMWRLS.

ENDFORM. " UPDATE_ZMMWRLS

&----


*& Form UPDATE_ZMMWMCH

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UPDATE_ZMMWMCH.

MOVE-CORRESPONDING I_OMSW TO ZMMWMCH.

ZMMWMCH-ZKOSTL = I_WRLS-ZKOSTL.

ZMMWMCH-ZMAT_TYPE = I_WRLS-ZMAT_TYPE.

ZMMWMCH-ZPROCESS_FLAG = ' '.

MODIFY ZMMWMCH.

ENDFORM. " UPDATE_ZMMWMCH

5 REPLIES 5
Read only

Former Member
0 Likes
1,030

Hi Prasad,

Please go through the following code which is working good without any inconsistency errors.

Hope this will be helpful for you.

INITIALIZATION.

*

START-OF-SELECTION.

  • Mandatory Include for Client Check

INCLUDE ZZIMANDT.

E_HEADER-PSTNG_DATE = SY-DATUM.

E_HEADER-DOC_DATE = SY-DATUM.

APPEND E_HEADER.

  • Opening the Data file

PERFORM READ_WIRELESS_DATA.

PERFORM MATCH_ORDERS.

PERFORM CLEAR_INPUT_FILES.

TOP-OF-PAGE.

FORMAT COLOR COL_HEADING ON.

WRITE : / SY-VLINE,

15 'Wireless Resale Daily Processing Report',

90 SY-VLINE.

ULINE 0(90).

WRITE : / SY-VLINE,

2 'Svc Ord',

13 SY-VLINE,

14 'Material',

25 SY-VLINE,

26 'Qty',

32 SY-VLINE,

33 'Ord date',

42 SY-VLINE,

43 'Gl Acct',

54 SY-VLINE,

55 'Co',

60 SY-VLINE,

61 'Sub Mkt',

68 SY-VLINE,

69 'Result',

85 SY-VLINE,

86 'MVT',

90 SY-VLINE.

ULINE 0(90).

END-OF-PAGE.

END-OF-SELECTION.

************************************************************************

************************************************************************

                                                    • END OF PROGRAM ******************************

************************************************************************

************************************************************************

************************************************************************

FORM READ_WIRELESS_DATA.

OPEN DATASET U_MERC FOR INPUT IN TEXT MODE.

OPEN DATASET F_CSTR FOR INPUT IN TEXT MODE.

OPEN DATASET F_CTEL FOR INPUT IN TEXT MODE.

PERFORM SPLIT_FILE.

CLOSE DATASET F_CSTR.

CLOSE DATASET F_CTEL.

CLOSE DATASET U_MERC.

ENDFORM.

************************************************************************

&----


*& Form SPLIT_FILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SPLIT_FILE.

DO.

READ DATASET U_MERC INTO OMSDATA.

IF OMSDATA-RECORD IS INITIAL.

EXIT.

ELSE.

APPEND OMSDATA.

CLEAR OMSDATA.

ENDIF.

ENDDO.

LOOP AT OMSDATA.

SPLIT OMSDATA-RECORD AT ',' INTO

I_OMSW-ZSERVICE_ORD

I_OMSW-ZMATNR

I_OMSW-ZQTY

I_OMSW-ZORD_DT

I_OMSW-ZGL_ACCT

I_OMSW-ZBUKRS

I_OMSW-ZSUB_MKT

I_OMSW-ZCURR_DT

I_OMSW-ZCURR_TIME.

I_OMSW-ZPROCESS_FLAG = ' '.

UNPACK I_OMSW-ZMATNR TO I_OMSW-ZMATNR.

UNPACK I_OMSW-ZGL_ACCT TO I_OMSW-ZGL_ACCT.

APPEND I_OMSW .

CLEAR I_OMSW.

ENDLOOP.

SELECT * FROM ZMMOMSW INTO I_OMSW WHERE ZPROCESS_FLAG = ' '.

APPEND I_OMSW.

CLEAR I_OMSW.

ENDSELECT.

SORT I_OMSW.

DELETE ADJACENT DUPLICATES FROM I_OMSW.

DO.

READ DATASET F_CSTR INTO CELLSTAR.

IF CELLSTAR-RECORD IS INITIAL.

EXIT.

ELSE.

APPEND CELLSTAR.

CLEAR CELLSTAR.

ENDIF.

ENDDO.

LOOP AT CELLSTAR.

SPLIT CELLSTAR-RECORD AT ',' INTO

I_WRLS-ZSERVICE_ORD

I_WRLS-ZMATNR

I_WRLS-ZQTY

I_WRLS-ZORD_DT.

CONCATENATE 'S' I_WRLS-ZSERVICE_ORD INTO I_WRLS-ZSERVICE_ORD.

I_WRLS-ZCURR_DT = SY-DATUM.

I_WRLS-ZCURR_TIME = SY-UZEIT.

I_WRLS-ZPROCESS_FLAG = ' '.

I_WRLS-ZMAT_TYPE = 'C'.

UNPACK I_WRLS-ZMATNR TO I_WRLS-ZMATNR.

APPEND I_WRLS.

CLEAR I_WRLS.

ENDLOOP.

REFRESH CELLSTAR.

FREE CELLSTAR.

DO.

READ DATASET F_CTEL INTO CTEL.

IF CTEL-RECORD IS INITIAL.

EXIT.

ELSE.

APPEND CTEL.

CLEAR CTEL.

ENDIF.

ENDDO.

LOOP AT CTEL.

SPLIT CTEL-RECORD AT ',' INTO

I_WRLS-ZSERVICE_ORD

I_WRLS-ZMATNR

I_WRLS-ZQTY

I_WRLS-ZORD_DT.

I_WRLS-ZCURR_DT = SY-DATUM.

I_WRLS-ZCURR_TIME = SY-UZEIT.

I_WRLS-ZPROCESS_FLAG = ' '.

I_WRLS-ZMAT_TYPE = 'O'.

CONCATENATE 'S' I_WRLS-ZSERVICE_ORD INTO I_WRLS-ZSERVICE_ORD.

UNPACK I_WRLS-ZMATNR TO I_WRLS-ZMATNR.

APPEND I_WRLS.

CLEAR I_WRLS.

ENDLOOP.

SELECT * FROM ZMMWRLS INTO I_WRLS WHERE ZPROCESS_FLAG = ' '.

APPEND I_WRLS.

CLEAR I_WRLS.

ENDSELECT.

SORT I_WRLS.

DELETE ADJACENT DUPLICATES FROM I_WRLS.

REFRESH CTEL.

FREE CTEL.

ENDFORM. " SPLIT_FILE

&----


*& Form MATCH_ORDERS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM MATCH_ORDERS.

LOOP AT I_OMSW.

OMS_INDX = SY-TABIX.

LOOP AT I_WRLS WHERE ZSERVICE_ORD = I_OMSW-ZSERVICE_ORD

AND ZMATNR = I_OMSW-ZMATNR

AND ZPROCESS_FLAG = ' '.

WRLS_INDX = SY-TABIX.

ENDLOOP.

IF SY-SUBRC = 0.

I_OMSW-ZPROCESS_FLAG = 'X'.

PERFORM UPDATE_ZMMOMSW.

I_WRLS-ZPROCESS_FLAG = 'X'.

CONCATENATE I_OMSW-ZBUKRS I_OMSW-ZSUB_MKT+2(3)

INTO I_WRLS-ZKOSTL.

PERFORM UPDATE_ZMMWRLS.

PERFORM UPDATE_ZMMWMCH.

CLEAR OMS_INDX.

CLEAR WRLS_INDX.

COMMIT WORK.

IF I_WRLS-ZMAT_TYPE = 'C'.

PERFORM BUILD_101_MVT.

PERFORM GOODS_MVT.

WAIT UP TO 5 SECONDS.

PERFORM BUILD_201_MVT.

PERFORM GOODS_MVT.

ELSE.

PERFORM BUILD_201_MVT.

PERFORM GOODS_MVT.

ENDIF.

WAIT UP TO 5 SECONDS.

ELSE.

I_OMSW-ZPROCESS_FLAG = ' '.

PERFORM UPDATE_ZMMOMSW.

ENDIF.

ENDLOOP.

COMMIT WORK.

LOOP AT I_WRLS WHERE ZPROCESS_FLAG = ' '.

MOVE-CORRESPONDING I_WRLS TO ZMMWRLS.

MODIFY ZMMWRLS.

ENDLOOP.

ULINE 0(90).

ENDFORM. " MATCH_ORDERS

&----


*& Form GOODS_MVT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GOODS_MVT.

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'

EXPORTING

GOODSMVT_HEADER = E_HEADER

GOODSMVT_CODE = W_CODE

IMPORTING

GOODSMVT_HEADRET = I_HEADER

MATERIALDOCUMENT = W_DOC_NUM

MATDOCUMENTYEAR = W_YEAR

TABLES

GOODSMVT_ITEM = I_MSEG

  • GOODSMVT_SERIALNUMBER =

RETURN = W_RETURN

.

IF W_RETURN-TYPE = ' '.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

IMPORTING

RETURN = W_COMMIT_RETURN.

WRITE: / SY-VLINE,

2(10) I_OMSW-ZSERVICE_ORD,

13 SY-VLINE,

14(8) I_OMSW-ZMATNR,

25 SY-VLINE,

26(5) I_OMSW-ZQTY,

32 SY-VLINE,

33(8) I_OMSW-ZORD_DT,

42 SY-VLINE,

43(10) I_OMSW-ZGL_ACCT,

54 SY-VLINE,

55(4) I_OMSW-ZBUKRS,

60 SY-VLINE,

61(5) I_OMSW-ZSUB_MKT,

68 SY-VLINE,

69(15) 'Post Successful',

85 SY-VLINE,

86 W_MVT,

90 SY-VLINE.

ELSE.

WRITE: / SY-VLINE,

2(10) I_OMSW-ZSERVICE_ORD,

13 SY-VLINE,

14(8) I_OMSW-ZMATNR,

25 SY-VLINE,

26(5) I_OMSW-ZQTY,

32 SY-VLINE,

33(8) I_OMSW-ZORD_DT,

42 SY-VLINE,

43(10) I_OMSW-ZGL_ACCT,

54 SY-VLINE,

55(4) I_OMSW-ZBUKRS,

60 SY-VLINE,

61(5) I_OMSW-ZSUB_MKT,

68 SY-VLINE,

69(15) 'Posting Failed',

85 SY-VLINE,

86 W_MVT,

90 SY-VLINE.

ENDIF.

CLEAR W_MVT.

IF W_COMMIT_RETURN-TYPE NE ' '.

CLEAR W_COMMIT_RETURN.

REFRESH W_COMMIT_RETURN.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

IMPORTING

RETURN = W_COMMIT_RETURN.

ENDIF.

CLEAR W_DOC_NUM.

CLEAR W_YEAR.

CLEAR I_MSEG.

REFRESH I_MSEG.

ENDFORM. " GOODS_MVT.

&----


*& Form BUILD_101_MVT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_101_MVT.

W_CODE = '01'.

I_MSEG-MATERIAL = I_WRLS-ZMATNR.

I_MSEG-PLANT = '1295'.

I_MSEG-STGE_LOC = '2000'.

I_MSEG-MOVE_TYPE = '101'.

W_MVT = '101'.

I_MSEG-ENTRY_QNT = I_WRLS-ZQTY.

I_MSEG-ENTRY_UOM = 'EA'.

I_MSEG-PO_NUMBER = P_PO.

I_MSEG-MVT_IND = 'B'.

SELECT SINGLE EBELP FROM EKPO INTO W_EBELP

WHERE EBELN = P_PO AND

MATNR = I_WRLS-ZMATNR.

I_MSEG-PO_ITEM = W_EBELP.

APPEND I_MSEG.

CLEAR I_MSEG.

CLEAR W_EBELP.

ENDFORM. " BUILD_101_MVT

&----


*& Form BUILD_201_MVT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_201_MVT.

W_CODE = '03'.

I_MSEG-MATERIAL = I_WRLS-ZMATNR.

I_MSEG-PLANT = '1295'.

I_MSEG-STGE_LOC = '2000'.

I_MSEG-MOVE_TYPE = '201'.

W_MVT = '201'.

I_MSEG-ENTRY_QNT = I_WRLS-ZQTY.

I_MSEG-ENTRY_UOM = 'EA'.

I_MSEG-COSTCENTER = I_WRLS-ZKOSTL.

I_MSEG-GL_ACCOUNT = I_OMSW-ZGL_ACCT.

I_MSEG-MVT_IND = ' '.

APPEND I_MSEG.

CLEAR I_MSEG.

ENDFORM. " BUILD_201_MVT

&----


*& Form clear_input_files

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CLEAR_INPUT_FILES.

OPEN DATASET U_MERC FOR OUTPUT IN TEXT MODE.

OPEN DATASET F_CSTR FOR OUTPUT IN TEXT MODE.

OPEN DATASET F_CTEL FOR OUTPUT IN TEXT MODE.

TRANSFER W_CELLSTAR TO F_CSTR.

TRANSFER W_CELLSTAR TO F_CTEL.

TRANSFER W_MERC TO U_MERC.

CLOSE DATASET F_CSTR.

CLOSE DATASET F_CTEL.

CLOSE DATASET U_MERC.

ENDFORM. " clear_input_files

&----


*& Form UPDATE_ZMMOMSW

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UPDATE_ZMMOMSW.

MODIFY I_OMSW INDEX OMS_INDX.

MOVE-CORRESPONDING I_OMSW TO ZMMOMSW.

MODIFY ZMMOMSW.

ENDFORM. " UPDATE_ZMMOMSW

&----


*& Form UPDATE_ZMMWRLS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UPDATE_ZMMWRLS.

MODIFY I_WRLS INDEX WRLS_INDX.

MOVE-CORRESPONDING I_WRLS TO ZMMWRLS.

MODIFY ZMMWRLS.

ENDFORM. " UPDATE_ZMMWRLS

&----


*& Form UPDATE_ZMMWMCH

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UPDATE_ZMMWMCH.

MOVE-CORRESPONDING I_OMSW TO ZMMWMCH.

ZMMWMCH-ZKOSTL = I_WRLS-ZKOSTL.

ZMMWMCH-ZMAT_TYPE = I_WRLS-ZMAT_TYPE.

ZMMWMCH-ZPROCESS_FLAG = ' '.

MODIFY ZMMWMCH.

ENDFORM. " UPDATE_ZMMWMCH

Read only

0 Likes
1,029

Hi Bhavana,

Thanks for ur reply, I am passing the same parameters which are required for the Goods receipt for purchase order.

The Documentation for BAPI_GOODSMVT_CREATE explains all the required parameters and I am passing the same.

I m not able to find out what is the exact problem behind this.

I used the COMMIT WORK also after this call to BAPI.

Is there any other solution for this?

Thanks,

Prasad

Read only

jayanthi_jayaraman
Active Contributor
Read only

0 Likes
1,029

Hi friends,

Do you have any idea about BAPI for "Purchase Order Return" business process?

Regards

Kuldeep K. Joshi

Read only

0 Likes
1,029

Hi,

Use this XSTOB parameter using the same bapi.

Still i m not able to solve that problem of

Inconsistency of Doc field and Prof. seg no.

Prasad