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