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

Problm in Uploading Using BAPI

Former Member
0 Likes
553

hi

im new to BAPI....i hav written a code to upload material Data for Practise...

bt those materials are not uploading into the system...

Can anybody correct the following code and tell me wr im wrong...

TABLES: bapimathead,

bapi_makt,

bapi_mara,

bapi_marax.

DATA: BEGIN OF itab OCCURS 0,

material TYPE bapimathead-material,

ind_sector(20),

matl_type TYPE bapimathead-matl_type,

matl_group TYPE bapi_mara-matl_group,

langu type bapi_makt-langu,

matl_desc TYPE bapi_makt-matl_desc,

END OF itab,

it_return like bapiret2,

it_bapi like bapi_makt OCCURS 0 WITH HEADER LINE.

PARAMETERS: p_file TYPE ibipparms-path OBLIGATORY.

AT SELECTION-SCREEN on VALUE-REQUEST FOR p_file.

PERFORM get_f4help.

START-OF-SELECTION.

PERFORM upload_file_itab.

PERFORM call_bapi.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

IMPORTING

FILE_NAME = p_file.

.

form UPLOAD_FILE_ITAB .

DATA: v_file TYPE string.

MOVE p_file to v_file.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = v_file

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

tables

data_tab = ITAB.

endform.

form CALL_BAPI .

LOOP AT itab.

bapimathead-material = itab-material.

bapimathead-ind_sector = itab-ind_sector.

bapimathead-matl_type = itab-matl_type.

bapimathead-basic_view = 'X'.

bapi_mara-matl_group = itab-matl_group.

bapi_mara-base_uom = 'KGS'.

bapi_marax-matl_group = 'X'.

bapi_marax-base_uom = 'X'.

it_bapi-langu = itab-langu.

it_bapi-langu_iso = 'EN'.

it_bapi-matl_desc = itab-matl_desc.

APPEND it_bapi.

ENDLOOP.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = bapimathead

CLIENTDATA = bapi_mara

CLIENTDATAX = bapi_marax

TABLES

MATERIALDESCRIPTION = it_bapi .

IF sy-subrc is INITIAL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDIF.

WRITE: / it_return-type.

endform.

Regards

Smitha

3 REPLIES 3
Read only

Former Member
0 Likes
531

hi,

check the Authorizations.

and check with this link..

hope it will help u .

~linganna

Read only

Former Member
0 Likes
531

Hi Smitha..

Check it_return internal table . Depending on the message you are getting , you can analyse and correct .

Regards,

Deepthi

Read only

Former Member
0 Likes
531

Hi,

data : RETTAB TYPE BAPIRET2 OCCURS 0 WITH HEADER LINE.

LOOP AT itab.

bapimathead-material = itab-material.

bapimathead-ind_sector = itab-ind_sector.

bapimathead-matl_type = itab-matl_type.

bapimathead-basic_view = 'X'.

bapi_mara-matl_group = itab-matl_group.

bapi_mara-base_uom = 'KGS'.

bapi_marax-matl_group = 'X'.

bapi_marax-base_uom = 'X'.

it_bapi-langu = itab-langu.

it_bapi-langu_iso = 'EN'.

it_bapi-matl_desc = itab-matl_desc.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = bapimathead

CLIENTDATA = bapi_mara

CLIENTDATAX = bapi_marax

TABLES

MATERIALDESCRIPTION = it_bapi

IMPORTING

RETURN = RETTAB.

APPEND RETTAB.

READ TABLE RETTAB WITH KEY TYPE = 'S'.

IF SY-SUBRC = 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'.

REFRESH RETTAB.

ELSE.

REFRESH RETTAB.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

  • IMPORTING

  • RETURN =

.

ENDIF.

ENDLOOP.

endform.

Rgds

Siva