Skip to Content
0
Dec 29, 2007 at 07:59 AM

unable to make changes using 'BAPI_MATERIAL_SAVEDATA'

33 Views

Dear all,

i am trying to make changes using BAPI_MATERIAL_SAVEDATA,but unable to do so.

Can anyone plz tell me where i am going wrong.

&----


*& Report ZMM_BDC_MM02

*&

&----


*&

*&

&----


REPORT ZMM_BDC_MM02.

PARAMETERS: PR_FILE TYPE RLGRAP-FILENAME.

CONSTANTS: C_BEG_COL TYPE I VALUE 1,

C_BEG_ROW TYPE I VALUE 2,

C_END_COL TYPE I VALUE 10,

C_END_ROW TYPE I VALUE 10.

DATA: IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

DATA:BEGIN OF IT_DATA OCCURS 0,

MATNR TYPE RMMG1-MATNR ,

MATKL TYPE MARA-MATKL ,

EKGRP TYPE MARC-EKGRP ,

DISPO TYPE MARC-DISPO ,

STRGR TYPE MARC-STRGR ,

DZEIT TYPE MARC-DZEIT ,

PLIFZ TYPE MARC-PLIFZ ,

WERKS TYPE RMMG1-WERKS ,

END OF IT_DATA .

CONSTANTS: C_WAIT TYPE BAPITA-WAIT VALUE '2'.

DATA: IT_BAPI_HEAD LIKE BAPIMATHEAD OCCURS 0 WITH HEADER LINE ,

IT_BAPI_MARA LIKE BAPI_MARA ,

IT_BAPI_MARAX LIKE BAPI_MARAX ,

IT_BAPI_MARC LIKE BAPI_MARC OCCURS 0 WITH HEADER LINE ,

IT_BAPI_MARCX LIKE BAPI_MARCX OCCURS 0 WITH HEADER LINE ,

IT_BAPI_MBEW LIKE BAPI_MBEW ,

IT_BAPI_MBEWX LIKE BAPI_MBEWX ,

IT_BAPI_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR PR_FILE.

CALL FUNCTION 'KD_GET_FILENAME_ON_F4'

EXPORTING

PROGRAM_NAME = SYST-REPID

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

STATIC = ' '

MASK = ' '

CHANGING

file_name = pr_file

EXCEPTIONS

MASK_TOO_LONG = 1

OTHERS = 2

.

IF sy-subrc 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

START-OF-SELECTION.

Read Excel Sheet.

PERFORM READ_FILE." CHANGING IT_TABLE.

Process Data.

PERFORM PROCESS_DATA.

PERFORM BAPI.

Insert Data to MM02.

PERFORM INSERT_DATA.

&----


*& Form READ_FILE

&----


text

-


<--P_IT_TABLE text

-


FORM READ_FILE." changing p_it_table LIKE IT_TABLE[].

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = PR_FILE

i_begin_col = C_BEG_COL

i_begin_row = C_BEG_ROW

i_end_col = C_END_COL

i_end_row = C_END_ROW

tables

intern = IT_EXCEL

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3

.

IF sy-subrc 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " READ_FILE

&----


*& Form PROCESS

&----


text

-


--> p1 text

<-- p2 text

-


FORM PROCESS_DATA .

LOOP AT IT_EXCEL.

CASE IT_EXCEL-COL.

WHEN '001'.

IT_DATA-MATNR = IT_EXCEL-VALUE.

WHEN '002'.

IT_DATA-MATKL = IT_EXCEL-VALUE.

WHEN '002'.

IT_DATA-EKGRP = IT_EXCEL-VALUE.

WHEN '003'.

IT_DATA-DISPO = IT_EXCEL-VALUE.

WHEN '004'.

IT_DATA-STRGR = IT_EXCEL-VALUE.

WHEN '005'.

IT_DATA-DZEIT = IT_EXCEL-VALUE.

WHEN '006'.

IT_DATA-PLIFZ = IT_EXCEL-VALUE.

WHEN '007'.

IT_DATA-WERKS = IT_EXCEL-VALUE.

ENDCASE.

AT END OF ROW.

APPEND IT_DATA.

CLEAR IT_DATA.

ENDAT.

ENDLOOP.

ENDFORM. " PROCESS_DATA

&----


*& Form BAPI

&----


text

-


--> p1 text

<-- p2 text

-


FORM BAPI .

*LOOP AT IT_DATA.

IT_BAPI_HEAD-MATERIAL = 'CD243622'.

IT_BAPI_HEAD-PURCHASE_VIEW = 'X'.

IT_BAPI_HEAD-MRP_VIEW = 'X'.

APPEND IT_BAPI_HEAD.

*IT_BAPI_MARC-PLANT = IT_DATA-WERKS.

*IT_BAPI_MARC-PUR_GROUP = IT_DATA-EKGRP.

*IT_BAPI_MARC-MRP_CTRLER = IT_DATA-DISPO.

*IT_BAPI_MARC-PLAN_STRGP = IT_DATA-STRGR.

*IT_BAPI_MARC-INHSEPRODT = IT_DATA-DZEIT.

*IT_BAPI_MARC-PLND_DELRY = IT_DATA-PLIFZ.

IT_BAPI_MARC-PLANT = '1000'.

IT_BAPI_MARC-PUR_GROUP = 'ABC'.

IT_BAPI_MARC-MRP_CTRLER = 'DEF'.

IT_BAPI_MARC-PLAN_STRGP = '10'.

IT_BAPI_MARC-INHSEPRODT = '20'.

IT_BAPI_MARC-PLND_DELRY = '2'.

APPEND IT_BAPI_MARC.

IT_BAPI_MARCX-PLANT = 'X'.

IT_BAPI_MARCX-PUR_GROUP = 'X'.

IT_BAPI_MARCX-MRP_CTRLER = 'X'.

IT_BAPI_MARCX-PLAN_STRGP = 'X'.

IT_BAPI_MARCX-INHSEPRODT = 'X'.

IT_BAPI_MARCX-PLND_DELRY = 'X'.

APPEND IT_BAPI_MARCX.

*ENDLOOP.

ENDFORM. " BAPI

&----


*& Form INSERT_DATA

&----


text

-


FORM INSERT_DATA .

LOOP AT IT_DATA.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = IT_BAPI_HEAD

CLIENTDATA =

CLIENTDATAX =

PLANTDATA = IT_BAPI_MARC

PLANTDATAX = IT_BAPI_MARCX

FORECASTPARAMETERS =

FORECASTPARAMETERSX =

PLANNINGDATA =

PLANNINGDATAX =

STORAGELOCATIONDATA =

STORAGELOCATIONDATAX =

VALUATIONDATA =

VALUATIONDATAX =

WAREHOUSENUMBERDATA =

WAREHOUSENUMBERDATAX =

SALESDATA =

SALESDATAX =

STORAGETYPEDATA =

STORAGETYPEDATAX =

FLAG_ONLINE = ' '

FLAG_CAD_CALL = ' '

NO_DEQUEUE = ' '

IMPORTING

RETURN = IT_BAPI_RETURN.

TABLES

MATERIALDESCRIPTION =

UNITSOFMEASURE =

UNITSOFMEASUREX =

INTERNATIONALARTNOS =

MATERIALLONGTEXT =

TAXCLASSIFICATIONS =

RETURNMESSAGES =

PRTDATA =

PRTDATAX =

EXTENSIONIN =

EXTENSIONINX =.

ENDLOOP.

READ TABLE IT_BAPI_RETURN WITH KEY TYPE = 'E'.

IF SY-SUBRC = '0'.

WRITE: 'Error'.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = C_WAIT

IMPORTING

RETURN = IT_BAPI_RETURN.

.

ENDIF.

ENDFORM. " INSERT_DATA