Skip to Content
0
Former Member
Jun 03, 2008 at 08:20 PM

issue in material master update from presentation server using BAPI....

33 Views

Hi Guru's...

i am trying to change the material master from presentation server (desktop flat file)

using BAPI(BAPI_MATERIAL_SAVEDATA) ....

while executing my program i am getting the message like material had changed...

but while in mm02 i am un able to fine the updates...

please find below program logic and correct me if any mistakes....

thanks in advance...

&----


*& Report ZAREPAS36

*&

&----


REPORT zarepas36.

DATA : gs_bapimathead TYPE bapimathead,

gs_clientdata TYPE bapi_mara,

gs_clientdatax TYPE bapi_marax.

TYPES : BEGIN OF gty_itab1,

matnr(18),

matkl(9),

spart(2),

ntgew(13),

gewei(3),

meins(3),

END OF gty_itab1.

DATA : gt_itab1 TYPE STANDARD TABLE OF gty_itab1,

gwa_itab1 TYPE gty_itab1.

TYPES: BEGIN OF gty_itab2,

abc(132),

END OF gty_itab2.

DATA: gt_itab2 TYPE STANDARD TABLE OF gty_itab2,

gwa_itab2 TYPE gty_itab2.

&----


  • flat file at selection screen

PARAMETERS: p_files TYPE string.

&----


CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING

filename = p_files

filetype = 'ASC'

CHANGING

data_tab = gt_itab2

EXCEPTIONS

OTHERS = 8.

LOOP AT gt_itab2 INTO gwa_itab2.

IF gwa_itab2-abc(1) = 'S'.

gwa_itab1 = gwa_itab2-abc(132).

APPEND gwa_itab1 TO gt_itab1.

ENDIF.

ENDLOOP.

&----


loop at gt_itab1 into gwa_itab1.

*Material

gs_bapimathead-material = gwa_itab1-matnr.

*Material details at client data

*material group.

gs_clientdata-matl_group = gwa_itab1-matkl.

gs_clientdatax-matl_group = 'X'.

*Division

gs_clientdata-division = gwa_itab1-spart.

gs_clientdatax-division = 'X'.

*Net Weight

gs_clientdata-net_weight = gwa_itab1-ntgew.

gs_clientdatax-net_weight = 'X'.

*Unit of Weight

gs_clientdata-unit_of_wt = gwa_itab1-gewei.

gs_clientdatax-unit_of_wt = 'X'.

*Base Unit of Measure

gs_clientdata-base_uom = gwa_itab1-meins.

gs_clientdatax-base_uom = 'X'.

endloop.

&----


*calling BAPI for making changes in material and saving thru BAPI.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = gs_bapimathead

clientdata = gs_clientdata

clientdatax = gs_clientdatax.

&----


IF sy-subrc NE 0.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

WRITE: / 'Error occured while changing material'.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

WRITE: / 'material',gs_bapimathead-material,'changed'.

ENDIF.

&----