‎2005 Jun 23 4:52 PM
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
‎2005 Jun 23 5:02 PM
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
‎2005 Jun 23 5:02 PM
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
‎2005 Jun 24 10:30 AM
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
‎2005 Jun 24 10:38 AM
‎2005 Jun 24 12:25 PM
Hi friends,
Do you have any idea about BAPI for "Purchase Order Return" business process?
Regards
Kuldeep K. Joshi
‎2005 Jun 24 12:51 PM
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