‎2007 Jul 28 6:11 AM
I need source code for material master BAPI which we can upload MMSc Transaction
‎2007 Jul 28 6:37 AM
Check the below program :
REPORT Z4PG_EXTEND_MATERIAL
NO STANDARD PAGE HEADING
LINE-SIZE 150
MESSAGE-ID Z4.
TABLES :
mard, "#EC * " Storage Location Data for Material
marc. "#EC * " Plant Data for Material
----
INTERNAL TABLES DECLARATIONS
----
1. INTERNAL TABLE FOR MATERIALS THAT ARE MAINTAINED FOR lgort = '0001'.
DATA : BEGIN OF it_mard OCCURS 0,
matnr LIKE mard-matnr, " Material No.
werks LIKE mard-werks, " Plant
lgort LIKE mard-lgort, " Storage Location
END OF it_mard.
2. INTERNAL TABLE TO STORE MATERIALS WHICH ARE ALREADY MAINTAINED FOR lgort = 'ABCD'.
DATA: BEGIN OF it_verify OCCURS 0,
matnr LIKE mard-matnr, " Material No.
werks LIKE mard-werks, " Plant
lgort LIKE mard-lgort, " Storage Location
dismm LIKE marc-dismm, " MRP type
END OF it_verify.
3. INTERNAL TABLE TO STORE MATERIALS WHICH HAS NO MRP TYPE ASSIGNED.
DATA: BEGIN OF it_marc OCCURS 0,
matnr LIKE marc-matnr, " Material No.
werks LIKE marc-werks, " Plant
dismm LIKE marc-dismm, " MRP type
END OF it_marc.
3. INTERNAL TABLE TO STORE MATERIALS WHICH ARE ALREADY MAINTAINED FOR lgort = 'ABCD'.
DATA: BEGIN OF it_error OCCURS 0, "#EC *
index TYPE I,
fname(25),
fval(30),
err_msg(40),
END OF it_error.
DATA: BEGIN OF it_error1 OCCURS 0, "#EC *
matnr LIKE mard-matnr,
type LIKE bapiret2-type,
id LIKE bapiret2-id,
message LIKE bapiret2-message,
END OF it_error1.
----
TABLES FOR FUNCTION - BAPI_MATERIAL_SAVEDATA
----
DATA: I_HEADDATA LIKE BAPIMATHEAD, " HEADER DATA
I_STORAGELOCATIONDATA LIKE BAPI_MARD, " STORAGE LOCATION SPECIFIC MATERIAL DATA
I_STORAGELOCATIONDATAX LIKE BAPI_MARDX, " Information on update for STORAGELOCATIONDATA
I_RETURN LIKE BAPIRET2, " RETURN FROM BAPI
I_RETURNMESSAGES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE.
----
SELECTION PARAMETERS
----
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS s_matnr FOR mard-matnr. " Material Number
SELECTION-SCREEN END OF BLOCK MAIN.
----
SELECTION SCREEN VALIDATION.
----
AT SELECTION-SCREEN .
PERFORM validate_material.
----
START OF SELECTION
----
START-OF-SELECTION.
PERFORM extract_itmard.
PERFORM extract_itmarc.
PERFORM extract_itverify.
PERFORM verify_material.
PERFORM display_error_report.
&----
*& Form extract_itmard
&----
text
----
--> p1 text
<-- p2 text
----
form extract_itmard .
SELECT matnr werks lgort
FROM mard
INTO TABLE it_mard
WHERE matnr IN s_matnr AND
werks = 'RAPI' AND " Plant
lgort = 'RAPI' . " Storage Location
IF sy-subrc NE 0.
MESSAGE s114. " Success Message --> Data Not Available
STOP.
ENDIF.
endform. " extract_itmard
&----
*& Form extract_itmarc
&----
text
----
--> p1 text
<-- p2 text
----
form extract_itmarc . "Fetch Materials for which the MRP Type is not maintained
SELECT matnr werks dismm
FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_mard
WHERE matnr = it_mard-matnr AND
werks = it_mard-werks AND
dismm = ' '.
endform. " extract_itmarc
&----
*& Form extract_itverify
&----
text
----
--> p1 text
<-- p2 text
----
form extract_itverify . " Fetch All the Materials which are already extended for the Storage Location
IF it_mard[] IS NOT INITIAL. "Check it_likp for not null
SELECT matnr werks lgort
FROM mard
INTO TABLE it_verify
FOR ALL ENTRIES IN it_mard
WHERE matnr = it_mard-matnr AND
werks = 'RAPI' AND " For Plant
lgort = '0001'. " For Storage Location
ELSE.
MESSAGE s114. "Success Message --> Data Not Available
STOP.
ENDIF.
endform. " extract_itverify
&----
*& Form verify_material
&----
text
----
--> p1 text
<-- p2 text
----
FORM verify_material .
DATA: v_cnt TYPE I.
v_cnt = 1.
IF it_verify[] IS NOT INITIAL AND it_marc[] IS NOT INITIAL. "Check it_likp for not null
SORT it_mard BY matnr.
SORT it_verify BY matnr.
ENDIF.
LOOP AT it_mard.
IF it_verify[] IS NOT INITIAL. " Check it_verify for not null
READ TABLE it_verify WITH KEY matnr = it_mard-matnr BINARY SEARCH. " Check Material is not extended
IF sy-subrc <> 0.
READ TABLE it_marc WITH KEY matnr = it_mard-matnr BINARY SEARCH. " Check MRP Type for the Material is Maintained
IF sy-subrc <> 0.
PERFORM extend_material USING it_mard-matnr " Extend Material
it_mard-werks.
ELSE.
it_error-index = v_cnt. " Generate Error Report
it_error-fname = 'MATERIAL NO'.
it_error-fval = it_mard-matnr.
it_error-err_msg = 'MRP Type Not Maintained'.
APPEND it_error.
v_cnt = v_cnt + 1.
ENDIF.
ENDIF.
ELSE.
READ TABLE it_marc WITH KEY matnr = it_mard-matnr BINARY SEARCH.
IF sy-subrc <> 0.
PERFORM extend_material USING it_mard-matnr
it_mard-werks.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " verify_material
&----
*& Form extend_material
&----
text
----
-->P_IT_MARD_MATNR text
-->P_IT_MARD_WERKS text
-->P_IT_MARD_LGORT text
----
FORM extend_material USING P_IT_MARD_MATNR TYPE mard-matnr
P_IT_MARD_WERKS TYPE mard-werks.
DATA: v_str(50).
CLEAR I_HEADDATA.
I_HEADDATA-MATERIAL = P_IT_MARD_MATNR.
I_HEADDATA-MRP_VIEW = 'X'.
CLEAR I_STORAGELOCATIONDATA.
CLEAR I_STORAGELOCATIONDATAX.
I_STORAGELOCATIONDATA-PLANT = P_IT_MARD_WERKS.
I_STORAGELOCATIONDATA-STGE_LOC = '0001'.
I_STORAGELOCATIONDATAX-PLANT = P_IT_MARD_WERKS.
I_STORAGELOCATIONDATAX-STGE_LOC = '0001'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = i_headdata
CLIENTDATA =
CLIENTDATAX =
PLANTDATA =
PLANTDATAX =
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA = i_storagelocationdata
STORAGELOCATIONDATAX = i_storagelocationdatax
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
NO_DEQUEUE = ' '
IMPORTING
RETURN = i_return
TABLES
MATERIALDESCRIPTION =
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES = i_returnmessages
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
.
LOOP at i_returnmessages.
write: / i_returnmessages-message.
ENDLOOP.
v_str = 'Material No does not Exist'.
IF i_return-type = 'E'.
it_error1-matnr = P_IT_MARD_MATNR.
it_error1-type = i_return-type.
it_error1-id = i_return-id.
it_error1-message = v_str.
APPEND it_error1.
ELSEIF i_return-type = 'S'.
READ TABLE i_returnmessages WITH KEY TYPE = 'S' id = 'M3'.
IF sy-subrc = 0.
it_error1-matnr = P_IT_MARD_MATNR.
it_error1-type = i_return-type.
it_error1-id = i_return-id.
it_error1-message = i_returnmessages-message.
APPEND it_error1.
CLEAR it_error1.
ENDIF.
ENDIF.
REFRESH i_returnmessages.
CLEAR it_error1.
CLEAR i_return.
ENDFORM. " extend_material
&----
*& Form display_error_report
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_error_report .
LOOP AT it_error1.
WRITE:/ it_error1-matnr COLOR 5, 15 it_error1-type COLOR 5,
30 it_error1-id COLOR 6, 55 it_error1-message COLOR 6.
ENDLOOP.
WRITE:/30 'FOLLOWING MATERIALS CAUSED ERROR' COLOR 1 .
SKIP 2.
LOOP AT it_error.
WRITE:/ it_error-index COLOR 5, 15 it_error-fname COLOR 5,
30 it_error-fval COLOR 6, 55 it_error-err_msg COLOR 6.
ENDLOOP.
ENDFORM. " display_error_report
&----
*& Form validate_material
&----
text
----
--> p1 text
<-- p2 text
----
form validate_material .
IF NOT s_matnr[] IS INITIAL.
SELECT matnr
INTO mard-matnr
FROM mard
UP TO 1 ROWS
WHERE matnr IN s_matnr.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE E115 WITH 'Invalid' mard-matnr. " Error Message-->Invalid Parameters
ENDIF.
ENDIF.
IF NOT s_matnr[] IS INITIAL.
SELECT matnr
INTO marc-matnr
FROM marc
UP TO 1 ROWS
WHERE matnr IN s_matnr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE s114. "Success Message --> Data Not Available
STOP.
ENDIF.
ENDIF.
endform. " validate_material
Thanks
Seshu
‎2007 Jul 28 6:19 AM
Hi,
Go to SE37, Give BAPI name->Display
Open Source Code tab and check it out.
Reward if useful!
‎2007 Jul 28 6:21 AM
<b>GO THROUGH THE FOLLOWING LINKS</b>
http://www.sap-img.com/bapi.htm
http://www.allsaplinks.com/bapi.html
http://sap.niraj.tripod.com/id19.html
http://www.planetsap.com/Userexit_List.htm
http://www.allsaplinks.com/material.html
http://www.sap-img.com/abap-function.htm
SLDB-To find out the logical database details
http://de.geocities.com/rafaelreichle/abapkeywords.html
STMS-Transport Management System
http://www.kabai.com/abaps/q.htm
http://www.skytechnologies.com.au/default_files/job_scheduling.htm
PZ04-TIME STATEMENT
http://www.sapdevelopment.co.uk/fmodules/fmsfield.htm
http://help.sap.com/saphelp_nw04/helpdata/en/59/cd7daa07d711d5b66f006094192fe3/content.htm
http://www.sapfriends.com/sapstuff.html
<b> waiting for reward point...............</b>
‎2007 Jul 28 6:21 AM
HI,
CHECK THIS ON
report zbapis2.
data: la_headdata type BAPIMATHEAD,
la_clientdata type BAPI_MARA,
la_CLIENTDATAX type BAPI_MARAX,
la_return type BAPIRET2.
data: i_materialdescription type table of BAPI_MAKT,
wa_materialdescription like line of i_materialdescription.
DATA: BEGIN OF ITAB OCCURS 0,
MATNR LIKE MARA-MATNR,
MBRSH LIKE MARA-MBRSH,
MTART LIKE MARA-MTART,
MAKTX LIKE MAKT-MAKTX,
MATKL LIKE MARA-MATKL,
MEINS LIKE MARA-MEINS,
END OF ITAB.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\SAMPLE.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC <> 0.
MESSAGE ' INVALID DATA' TYPE 'E'.
ENDIF.
loop at itab.
la_headdata-MATERIAL = itab-matnr.
la_headdata-IND_SECTOR = itab-mbrsh.
la_headdata-MATL_TYPE = itab-mtart.
la_clientdata-BASE_UOM = itab-meins.
la_CLIENTDATAX-BASE_UOM = 'X'.
la_clientdata-MATL_GROUP = itab-matkl.
la_CLIENTDATAX-MATL_GROUP = 'X'.
wa_materialdescription = itab-maktx.
append wa_materialdescription to i_materialdescription.
clear: wa_materialdescription.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = la_headdata
CLIENTDATA = la_clientdata
CLIENTDATAX = la_CLIENTDATAX
PLANTDATA =
PLANTDATAX =
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
RETURN = la_return
TABLES
MATERIALDESCRIPTION = i_materialdescription
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
.
write: la_return-TYPE, ',', la_return-MESSAGE.
clear: la_headdata, la_return, la_clientdata, la_clientdatax.
.
endloop.
<b>REWARS POINT</b>
REGARDS
ASHOK KUMAR
‎2007 Jul 28 6:37 AM
Check the below program :
REPORT Z4PG_EXTEND_MATERIAL
NO STANDARD PAGE HEADING
LINE-SIZE 150
MESSAGE-ID Z4.
TABLES :
mard, "#EC * " Storage Location Data for Material
marc. "#EC * " Plant Data for Material
----
INTERNAL TABLES DECLARATIONS
----
1. INTERNAL TABLE FOR MATERIALS THAT ARE MAINTAINED FOR lgort = '0001'.
DATA : BEGIN OF it_mard OCCURS 0,
matnr LIKE mard-matnr, " Material No.
werks LIKE mard-werks, " Plant
lgort LIKE mard-lgort, " Storage Location
END OF it_mard.
2. INTERNAL TABLE TO STORE MATERIALS WHICH ARE ALREADY MAINTAINED FOR lgort = 'ABCD'.
DATA: BEGIN OF it_verify OCCURS 0,
matnr LIKE mard-matnr, " Material No.
werks LIKE mard-werks, " Plant
lgort LIKE mard-lgort, " Storage Location
dismm LIKE marc-dismm, " MRP type
END OF it_verify.
3. INTERNAL TABLE TO STORE MATERIALS WHICH HAS NO MRP TYPE ASSIGNED.
DATA: BEGIN OF it_marc OCCURS 0,
matnr LIKE marc-matnr, " Material No.
werks LIKE marc-werks, " Plant
dismm LIKE marc-dismm, " MRP type
END OF it_marc.
3. INTERNAL TABLE TO STORE MATERIALS WHICH ARE ALREADY MAINTAINED FOR lgort = 'ABCD'.
DATA: BEGIN OF it_error OCCURS 0, "#EC *
index TYPE I,
fname(25),
fval(30),
err_msg(40),
END OF it_error.
DATA: BEGIN OF it_error1 OCCURS 0, "#EC *
matnr LIKE mard-matnr,
type LIKE bapiret2-type,
id LIKE bapiret2-id,
message LIKE bapiret2-message,
END OF it_error1.
----
TABLES FOR FUNCTION - BAPI_MATERIAL_SAVEDATA
----
DATA: I_HEADDATA LIKE BAPIMATHEAD, " HEADER DATA
I_STORAGELOCATIONDATA LIKE BAPI_MARD, " STORAGE LOCATION SPECIFIC MATERIAL DATA
I_STORAGELOCATIONDATAX LIKE BAPI_MARDX, " Information on update for STORAGELOCATIONDATA
I_RETURN LIKE BAPIRET2, " RETURN FROM BAPI
I_RETURNMESSAGES LIKE BAPI_MATRETURN2 OCCURS 0 WITH HEADER LINE.
----
SELECTION PARAMETERS
----
SELECTION-SCREEN BEGIN OF BLOCK MAIN WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS s_matnr FOR mard-matnr. " Material Number
SELECTION-SCREEN END OF BLOCK MAIN.
----
SELECTION SCREEN VALIDATION.
----
AT SELECTION-SCREEN .
PERFORM validate_material.
----
START OF SELECTION
----
START-OF-SELECTION.
PERFORM extract_itmard.
PERFORM extract_itmarc.
PERFORM extract_itverify.
PERFORM verify_material.
PERFORM display_error_report.
&----
*& Form extract_itmard
&----
text
----
--> p1 text
<-- p2 text
----
form extract_itmard .
SELECT matnr werks lgort
FROM mard
INTO TABLE it_mard
WHERE matnr IN s_matnr AND
werks = 'RAPI' AND " Plant
lgort = 'RAPI' . " Storage Location
IF sy-subrc NE 0.
MESSAGE s114. " Success Message --> Data Not Available
STOP.
ENDIF.
endform. " extract_itmard
&----
*& Form extract_itmarc
&----
text
----
--> p1 text
<-- p2 text
----
form extract_itmarc . "Fetch Materials for which the MRP Type is not maintained
SELECT matnr werks dismm
FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_mard
WHERE matnr = it_mard-matnr AND
werks = it_mard-werks AND
dismm = ' '.
endform. " extract_itmarc
&----
*& Form extract_itverify
&----
text
----
--> p1 text
<-- p2 text
----
form extract_itverify . " Fetch All the Materials which are already extended for the Storage Location
IF it_mard[] IS NOT INITIAL. "Check it_likp for not null
SELECT matnr werks lgort
FROM mard
INTO TABLE it_verify
FOR ALL ENTRIES IN it_mard
WHERE matnr = it_mard-matnr AND
werks = 'RAPI' AND " For Plant
lgort = '0001'. " For Storage Location
ELSE.
MESSAGE s114. "Success Message --> Data Not Available
STOP.
ENDIF.
endform. " extract_itverify
&----
*& Form verify_material
&----
text
----
--> p1 text
<-- p2 text
----
FORM verify_material .
DATA: v_cnt TYPE I.
v_cnt = 1.
IF it_verify[] IS NOT INITIAL AND it_marc[] IS NOT INITIAL. "Check it_likp for not null
SORT it_mard BY matnr.
SORT it_verify BY matnr.
ENDIF.
LOOP AT it_mard.
IF it_verify[] IS NOT INITIAL. " Check it_verify for not null
READ TABLE it_verify WITH KEY matnr = it_mard-matnr BINARY SEARCH. " Check Material is not extended
IF sy-subrc <> 0.
READ TABLE it_marc WITH KEY matnr = it_mard-matnr BINARY SEARCH. " Check MRP Type for the Material is Maintained
IF sy-subrc <> 0.
PERFORM extend_material USING it_mard-matnr " Extend Material
it_mard-werks.
ELSE.
it_error-index = v_cnt. " Generate Error Report
it_error-fname = 'MATERIAL NO'.
it_error-fval = it_mard-matnr.
it_error-err_msg = 'MRP Type Not Maintained'.
APPEND it_error.
v_cnt = v_cnt + 1.
ENDIF.
ENDIF.
ELSE.
READ TABLE it_marc WITH KEY matnr = it_mard-matnr BINARY SEARCH.
IF sy-subrc <> 0.
PERFORM extend_material USING it_mard-matnr
it_mard-werks.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " verify_material
&----
*& Form extend_material
&----
text
----
-->P_IT_MARD_MATNR text
-->P_IT_MARD_WERKS text
-->P_IT_MARD_LGORT text
----
FORM extend_material USING P_IT_MARD_MATNR TYPE mard-matnr
P_IT_MARD_WERKS TYPE mard-werks.
DATA: v_str(50).
CLEAR I_HEADDATA.
I_HEADDATA-MATERIAL = P_IT_MARD_MATNR.
I_HEADDATA-MRP_VIEW = 'X'.
CLEAR I_STORAGELOCATIONDATA.
CLEAR I_STORAGELOCATIONDATAX.
I_STORAGELOCATIONDATA-PLANT = P_IT_MARD_WERKS.
I_STORAGELOCATIONDATA-STGE_LOC = '0001'.
I_STORAGELOCATIONDATAX-PLANT = P_IT_MARD_WERKS.
I_STORAGELOCATIONDATAX-STGE_LOC = '0001'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = i_headdata
CLIENTDATA =
CLIENTDATAX =
PLANTDATA =
PLANTDATAX =
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA = i_storagelocationdata
STORAGELOCATIONDATAX = i_storagelocationdatax
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
NO_DEQUEUE = ' '
IMPORTING
RETURN = i_return
TABLES
MATERIALDESCRIPTION =
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES = i_returnmessages
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
.
LOOP at i_returnmessages.
write: / i_returnmessages-message.
ENDLOOP.
v_str = 'Material No does not Exist'.
IF i_return-type = 'E'.
it_error1-matnr = P_IT_MARD_MATNR.
it_error1-type = i_return-type.
it_error1-id = i_return-id.
it_error1-message = v_str.
APPEND it_error1.
ELSEIF i_return-type = 'S'.
READ TABLE i_returnmessages WITH KEY TYPE = 'S' id = 'M3'.
IF sy-subrc = 0.
it_error1-matnr = P_IT_MARD_MATNR.
it_error1-type = i_return-type.
it_error1-id = i_return-id.
it_error1-message = i_returnmessages-message.
APPEND it_error1.
CLEAR it_error1.
ENDIF.
ENDIF.
REFRESH i_returnmessages.
CLEAR it_error1.
CLEAR i_return.
ENDFORM. " extend_material
&----
*& Form display_error_report
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_error_report .
LOOP AT it_error1.
WRITE:/ it_error1-matnr COLOR 5, 15 it_error1-type COLOR 5,
30 it_error1-id COLOR 6, 55 it_error1-message COLOR 6.
ENDLOOP.
WRITE:/30 'FOLLOWING MATERIALS CAUSED ERROR' COLOR 1 .
SKIP 2.
LOOP AT it_error.
WRITE:/ it_error-index COLOR 5, 15 it_error-fname COLOR 5,
30 it_error-fval COLOR 6, 55 it_error-err_msg COLOR 6.
ENDLOOP.
ENDFORM. " display_error_report
&----
*& Form validate_material
&----
text
----
--> p1 text
<-- p2 text
----
form validate_material .
IF NOT s_matnr[] IS INITIAL.
SELECT matnr
INTO mard-matnr
FROM mard
UP TO 1 ROWS
WHERE matnr IN s_matnr.
ENDSELECT.
IF SY-SUBRC <> 0.
MESSAGE E115 WITH 'Invalid' mard-matnr. " Error Message-->Invalid Parameters
ENDIF.
ENDIF.
IF NOT s_matnr[] IS INITIAL.
SELECT matnr
INTO marc-matnr
FROM marc
UP TO 1 ROWS
WHERE matnr IN s_matnr.
ENDSELECT.
IF sy-subrc <> 0.
MESSAGE s114. "Success Message --> Data Not Available
STOP.
ENDIF.
ENDIF.
endform. " validate_material
Thanks
Seshu