Application Development 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: 

BAPI for creating more than one material...

Former Member
0 Kudos

hello friends,

i have a doubt... i want to know is there any BAPI through which i can create more that one material...

i know we can use BAPI_MATERAIL_SAVEDATA ...but by this we can only create one material..what if i wanna create more than one material....

i dont wanna build custom RFC to use for this(means by using BDC recordind inside rfc enabled function module)

one more question can we create more materail using ALE,IDOC ......

4 REPLIES 4

Former Member
0 Kudos

Hi

u can create the multiple materials with the BAPI_MATERAIL_SAVEDATA

check this BAPI_STANDARDMATERIAL_CREATE

check this also

*---tables used

tables:bapimathead,

bapi_makt,

bapi_mara,

bapi_marax.

*--declaration for internal table

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.

*---selection screen

parameters:p_file TYPE IBIPPARMS-PATH obligatory.

*---f4 help for the file from PC

at selection-screen on value-request for p_file.

perform get_f4help.

*--start-of-selection .

start-of-selection.

perform upload_file_itab.

perform call_bapi.

&----


*& Form get_f4help

&----


form get_f4help .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

IMPORTING

FILE_NAME = P_FILE .

endform. " get_f4help

&----


*& Form upload_file_itab

&----


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. " upload_file_itab

&----


*& Form call_bapi

&----


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.

clear it_bapi.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

headdata = BAPIMATHEAD

CLIENTDATA = bapi_mara

CLIENTDATAX = bapi_marax

IMPORTING

RETURN = it_RETURN

TABLES

MATERIALDESCRIPTION = IT_BAPI .

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

*---this is the message type which indicates whether it is failed or succeded

write:/ it_return-TYPE.

endloop.

endform. " call_bapi

former_member188685
Active Contributor
0 Kudos

call this function BAPI_MATERAIL_SAVEDATA inside the loop. and create. the other methods also triggers/created one materail at a time.

0 Kudos

i dont want to use report ...

i am accessing thses BAPIS from non-SAP background from a middleware...

so i just need to use standard BAPI for craeting more than one material at a time.

and second is can i do it with IDOCS?

0 Kudos

hi abhijeet

if u see any bapi at the time of testing u can create only one record

so in program only you have to write the logic to get more

in similar way in NON-SAP they have to write the logic to get more

i think it will work with idocs too