Application Development 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: 

bapi for mmsc and mscn1

Former Member
0 Kudos

hi abapers

does anyone know bapi for mmsc and mscn1 ?

thanks for your help...!

3 REPLIES 3

Former Member
0 Kudos

Please check BAPI BAPI_MATERIAL_SAVEDATA.

Also check this link as well for sample code.

http://www.sap-img.com/abap/bapi-to-copy-materials-from-one-plant-to-another.htm

Also check the eample for BAPI_MATERIAL_SAVEDATA.

REPORT Z4PG_EXTEND_MATERIAL

NO STANDARD PAGE HEADING

LINE-SIZE 150

MESSAGE-ID Z4.

DATABASE TABLE DECLARATIONS

-


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

Regards,

ak_upadhyay
Contributor
0 Kudos

Hi,

For MMSC

Try BAPI_MATERIAL_SAVEDATA.

Reward points if useful....

Regards

AK

Former Member
0 Kudos

Hi

You can use bapi "/ISDFPS/MATMAS_PLANT_SLOC"

Regards

Gabriel