Application Development and Automation 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: 
Read only

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

Former Member
0 Likes
559

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.

&----


4 REPLIES 4
Read only

naimesh_patel
Active Contributor
0 Likes
526

You need to get the results back form the FM through IMPORTING parameter RETURN.

You need to analyze this return structure to get to know, if everything was fine.

One more point, is you didn't use the coversion routine for the Material. Please use that.

Regards,

Naimesh Patel

Read only

Former Member
0 Likes
526

could youplease explain little bit briefly...

thanks in advance....

Srinivas....

Read only

Former Member
0 Likes
526

hi hello Guru's

i resolved the issuee..

pleaso go thru the below proram logic for your reference..........

&----


*& 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.

DATA:ls_return TYPE bapiret2,

lt_bapiret2 TYPE standard table of bapiret2.

&----


  • 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

IMPORTING

return = ls_return.

&----


LOOP AT lt_bapiret2 INTO ls_return.

EXIT.

ENDLOOP.

IF sy-subrc = 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.

&----


Read only

Former Member
0 Likes
526

Hi Guru's...

i resolved the issuee...

i did the mistake in input flat file that is data entry...

thanks for ur valuble time and valuble inputs....

thanks&regards

srinivas...