Skip to Content
0
Apr 28, 2009 at 05:22 AM

Problm in Uploading Using BAPI

22 Views

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