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

BAPI Material Creation

Former Member
0 Likes
3,333

Can anyone let me know how to create the material using BAPI Function module.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,756

hi,

creating the material using BAPI Function module is

'BAPI_MATERIAL_SAVEDATA'

TABLES:T001L, "STORAGE LOCATIONS

MARA, "GENERAL MATERIAL DATA

MAKT, "MATERIAL DISCRIPTIONS

MBEW, "MATERIAL VALUATION

MARC. "PLANT DATA FOR MATERIAL

DATA: BAPI_HEAD LIKE BAPIMATHEAD,

BAPI_MAKT LIKE BAPI_MAKT, "MATERIAL DISCRIPTION

BAPI_MARA1 LIKE BAPI_MARA, "MATERIAL DATA AT CLIENT LEVEL

BAPI_MARAX LIKE BAPI_MARAX, "CHECKBOX STRUCTURE FOR BAPI_MARA

BAPI_MARC1 LIKE BAPI_MARC, "MATERIAL DATA AT PLANT LEVEL

BAPI_MARCX LIKE BAPI_MARCX, "CHECKBOS STRUCTURE FOR BAPI_MARC

BAPI_MBEW1 LIKE BAPI_MBEW, "VALUATION DATA

BAPI_MBEWX LIKE BAPI_MBEWX, "CHECKBOX STRUCTURE FOR BAPI_MBEW

BAPI_RETURN LIKE BAPIRET2. "RETURN PARAMETER

DATA: BEGIN OF INT_MAKT OCCURS 100.

INCLUDE STRUCTURE BAPI_MAKT.

DATA: END OF INT_MAKT.

DATA: BEGIN OF INT_MAT OCCURS 100,

MATNR TYPE MATNR, "Material number

MBRSH TYPE MBRSH, "Industry sector

MTART TYPE MTART, "Material type

WERKS TYPE WERKS_D, "Plant

MAKTX TYPE MAKTX, "Material description

MEINS TYPE MEINS, "Base unit of measure

MATKL TYPE MATKL, "Material group

VPRSV TYPE VPRSV, "Price control indicator

VERPR TYPE VERPR, "MOVING price

END OF INT_MAT.

DATA:FILENAME TYPE STRING VALUE 'D:\Documents and Settings\lz60nd\Desktop\MM01.TXT'.

SELECT-OPTIONS:

PLANT FOR MARC-WERKS , "OBLIGATORY MEMORY ID PLT,

MATERIAL FOR MARA-MATNR MEMORY ID MAT,

MATLTYPE FOR MARA-MTART MEMORY ID MTY,

DIVISION FOR MARA-SPART MEMORY ID DIV.

PARAMETERS: F_FILE LIKE RLGRAP-FILENAME DEFAULT 'D:\Documents and Settings\lz60nd\Desktop\MM01.TXT' MEMORY ID F_FILE,

GETDATA AS CHECKBOX, "Tick to download materials data to local harddisk

UPDDATA AS CHECKBOX. "Tick to update date to Materials Master

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_FILE.

*PERFORM GETDATA.

IF GETDATA = 'X'.

PERFORM DOWNLOAD_DATA.

PERFORM DOWNLOAD_FILE.

ENDIF.

IF UPDDATA = 'X'.

PERFORM UPLOAD_FILE.

PERFORM UPDATE_MM.

ENDIF.

*ENDIF.

&----


*& Form DOWNLOAD_DATA

&----


text

-


--> p1 text

<-- p2 text

-


FORM DOWNLOAD_DATA .

SELECT * FROM MARC WHERE LVORM EQ ' '

AND WERKS IN PLANT

AND MATNR IN MATERIAL.

CLEAR MARA.

SELECT SINGLE * FROM MARA WHERE MATNR = MARC-MATNR.

*CHECK MATLTYPE.

*CHECK DIVISION.

CLEAR MBEW.

SELECT SINGLE * FROM MBEW WHERE MATNR = MARC-MATNR

AND BWKEY = MARC-WERKS.

CLEAR MAKT.

SELECT SINGLE * FROM MAKT WHERE SPRAS = 'EN'

AND MATNR = MARC-MATNR.

*WRITE:/ MARC-WERKS, "Plant

MARA-MTART, "Material type

MARA-MATNR, "Material number

MARA-MATKL, "Material group

MARA-MBRSH, "Industry sector

MARA-MEINS, "Base unit of measure

MARA-GEWEI, "Weight Unit

MARA-SPART, "Division

MARC-EKGRP, "Purchasing group

MBEW-VPRSV, "Price control indicator

MBEW-STPRS, "Standard price

MBEW-PEINH, "Price unit

MAKT-SPRAS, "Language key

MAKT-MAKTX. "Material description

INT_MAT-WERKS = MARC-WERKS. "Plant

INT_MAT-MTART = MARA-MTART. "Material type

INT_MAT-MATNR = MARA-MATNR. "Material number

INT_MAT-MATKL = MARA-MATKL. "Material group

INT_MAT-MBRSH = MARA-MBRSH. "Industry sector

INT_MAT-MEINS = MARA-MEINS. "Base unit of measure

*INT_MAT-GEWEI = MARA-GEWEI. "Weight Unit

*INT_MAT-SPART = MARA-SPART. "Division

*INT_MAT-EKGRP = MARC-EKGRP. "Purchasing group

INT_MAT-VPRSV = MBEW-VPRSV. "Price control indicator

*INT_MAT-STPRS = MBEW-STPRS. "Standard price

*INT_MAT-PEINH = MBEW-PEINH. "Price unit

INT_MAT-VERPR = MBEW-VERPR. " MOVING price

*INT_MAT-SPRAS = MAKT-SPRAs. "Language key

INT_MAT-MAKTX = MAKT-MAKTX. "Material description

APPEND INT_MAT.

CLEAR INT_MAT.

ENDSELECT.

ENDFORM. " DOWNLOAD_DATA

&----


*& Form DOWNLOAD_FILE

&----


text

-


--> p1 text

<-- p2 text

-


*FILENAME = F_FILE.

FORM DOWNLOAD_FILE .

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE =

FILENAME = FILENAME

FILETYPE = 'ASC'

APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

IMPORTING

FILELENGTH =

TABLES

DATA_TAB = INT_MAT

FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " DOWNLOAD_FILE

*&----


**& Form GETDATA

**&----


text

*----


--> p1 text

<-- p2 text

*----


*FORM GETDATA .

*

*CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

IMPORTING

FILE_NAME = F_FILE

.

*ENDFORM. " GETDATA

&----


*& Form UPLOAD_FILE

&----


text

-


--> p1 text

<-- p2 text

-


FORM UPLOAD_FILE .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FILENAME

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

DAT_MODE = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

CHECK_BOM = ' '

VIRUS_SCAN_PROFILE =

NO_AUTH_CHECK = ' '

IMPORTING

FILELENGTH =

HEADER =

TABLES

DATA_TAB = INT_MAT

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " UPLOAD_FILE

&----


*& Form UPDATE_MM

&----


text

-


--> p1 text

<-- p2 text

-


FORM UPDATE_MM .

LOOP AT INT_MAT.

*****************Header

BAPI_HEAD-MATERIAL = INT_MAT-MATNR.

BAPI_HEAD-IND_SECTOR = INT_MAT-MBRSH.

BAPI_HEAD-MATL_TYPE = INT_MAT-MTART.

BAPI_HEAD-BASIC_VIEW = 'X'.

BAPI_HEAD-PURCHASE_VIEW = 'X'.

BAPI_HEAD-ACCOUNT_VIEW = 'X'.

*****************Material Description

REFRESH INT_MAKT.

INT_MAKT-LANGU = SY-LANGU.

INT_MAKT-MATL_DESC = INT_MAT-MAKTX.

APPEND INT_MAKT.

******************Client Data - Basic

BAPI_MARA1-MATL_GROUP = INT_MAT-MATKL.

BAPI_MARA1-BASE_UOM = INT_MAT-MEINS.

BAPI_MARAX-MATL_GROUP = 'X'.

BAPI_MARAX-BASE_UOM = 'X'.

*******************Plant - Purchasing

BAPI_MARC1-PLANT = INT_MAT-WERKS.

BAPI_MARCX-PLANT = INT_MAT-WERKS.

**********************Accounting

BAPI_MBEW1-VAL_AREA = INT_MAT-WERKS.

BAPI_MBEW1-PRICE_CTRL = INT_MAT-VPRSV.

BAPI_MBEW1-MOVING_PR = INT_MAT-VERPR.

BAPI_MBEWX-PRICE_CTRL = 'X'.

BAPI_MBEWX-STD_PRICE = 'X'.

BAPI_MBEWX-VAL_AREA = INT_MAT-WERKS.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

HEADDATA = BAPI_HEAD

CLIENTDATA = BAPI_MARA1

CLIENTDATAX = BAPI_MARAX

PLANTDATA = BAPI_MARC1

PLANTDATAX = BAPI_MARCX

*FORECASTPARAMETERS =

*FORECASTPARAMETERSX =

*PLANNINGDATA =

*PLANNINGDATAX =

*STORAGELOCATIONDATA =

*STORAGELOCATIONDATAX =

VALUATIONDATA = BAPI_MBEW1

VALUATIONDATAX = BAPI_MBEWX

*

*WAREHOUSENUMBERDATA =

*WAREHOUSENUMBERDATAX =

*SALESDATA = BAPI_MVKE1

*SALESDATAX = BAPI_MBEWX "BAPI_MVKEX

*STORAGETYPEDATA =

*STORAGETYPEDATAX =

IMPORTING

RETURN = BAPI_RETURN

TABLES

MATERIALDESCRIPTION = INT_MAKT

*UNITSOFMEASURE =

*UNITSOFMEASUREX =

*INTERNATIONALARTNOS =

*MATERIALLONGTEXT =

*TAXCLASSIFICATIONS =

*RETURNMESSAGES =

*PRTDATA =

*PRTDATAX =

*EXTENSIONIN =

*EXTENSIONINX =

.

ENDLOOP.

IF BAPI_RETURN-TYPE = 'E'.

WRITE 😕 BAPI_RETURN-MESSAGE.

ELSEIF BAPI_RETURN-TYPE = 'S'.

WRITE 😕 BAPI_RETURN-MESSAGE.

ENDIF.

ENDFORM.

see this may be useful

reward if useful,

thanks and regards.

5 REPLIES 5
Read only

Former Member
0 Likes
1,756

Hi

Use the BAPI

BAPI_MATERIAL_SAVEDATA

refer the sample code

https://forums.sdn.sap.com/click.jspa?searchID=13348102&messageID=3459824

Regards

Kiran Sure

Read only

Former Member
0 Likes
1,756

Hello,

Check BAPI : BAPI_RETAILMATERIAL_CREATE.

Rgds,

Raghu.

Read only

Former Member
0 Likes
1,757

hi,

creating the material using BAPI Function module is

'BAPI_MATERIAL_SAVEDATA'

TABLES:T001L, "STORAGE LOCATIONS

MARA, "GENERAL MATERIAL DATA

MAKT, "MATERIAL DISCRIPTIONS

MBEW, "MATERIAL VALUATION

MARC. "PLANT DATA FOR MATERIAL

DATA: BAPI_HEAD LIKE BAPIMATHEAD,

BAPI_MAKT LIKE BAPI_MAKT, "MATERIAL DISCRIPTION

BAPI_MARA1 LIKE BAPI_MARA, "MATERIAL DATA AT CLIENT LEVEL

BAPI_MARAX LIKE BAPI_MARAX, "CHECKBOX STRUCTURE FOR BAPI_MARA

BAPI_MARC1 LIKE BAPI_MARC, "MATERIAL DATA AT PLANT LEVEL

BAPI_MARCX LIKE BAPI_MARCX, "CHECKBOS STRUCTURE FOR BAPI_MARC

BAPI_MBEW1 LIKE BAPI_MBEW, "VALUATION DATA

BAPI_MBEWX LIKE BAPI_MBEWX, "CHECKBOX STRUCTURE FOR BAPI_MBEW

BAPI_RETURN LIKE BAPIRET2. "RETURN PARAMETER

DATA: BEGIN OF INT_MAKT OCCURS 100.

INCLUDE STRUCTURE BAPI_MAKT.

DATA: END OF INT_MAKT.

DATA: BEGIN OF INT_MAT OCCURS 100,

MATNR TYPE MATNR, "Material number

MBRSH TYPE MBRSH, "Industry sector

MTART TYPE MTART, "Material type

WERKS TYPE WERKS_D, "Plant

MAKTX TYPE MAKTX, "Material description

MEINS TYPE MEINS, "Base unit of measure

MATKL TYPE MATKL, "Material group

VPRSV TYPE VPRSV, "Price control indicator

VERPR TYPE VERPR, "MOVING price

END OF INT_MAT.

DATA:FILENAME TYPE STRING VALUE 'D:\Documents and Settings\lz60nd\Desktop\MM01.TXT'.

SELECT-OPTIONS:

PLANT FOR MARC-WERKS , "OBLIGATORY MEMORY ID PLT,

MATERIAL FOR MARA-MATNR MEMORY ID MAT,

MATLTYPE FOR MARA-MTART MEMORY ID MTY,

DIVISION FOR MARA-SPART MEMORY ID DIV.

PARAMETERS: F_FILE LIKE RLGRAP-FILENAME DEFAULT 'D:\Documents and Settings\lz60nd\Desktop\MM01.TXT' MEMORY ID F_FILE,

GETDATA AS CHECKBOX, "Tick to download materials data to local harddisk

UPDDATA AS CHECKBOX. "Tick to update date to Materials Master

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_FILE.

*PERFORM GETDATA.

IF GETDATA = 'X'.

PERFORM DOWNLOAD_DATA.

PERFORM DOWNLOAD_FILE.

ENDIF.

IF UPDDATA = 'X'.

PERFORM UPLOAD_FILE.

PERFORM UPDATE_MM.

ENDIF.

*ENDIF.

&----


*& Form DOWNLOAD_DATA

&----


text

-


--> p1 text

<-- p2 text

-


FORM DOWNLOAD_DATA .

SELECT * FROM MARC WHERE LVORM EQ ' '

AND WERKS IN PLANT

AND MATNR IN MATERIAL.

CLEAR MARA.

SELECT SINGLE * FROM MARA WHERE MATNR = MARC-MATNR.

*CHECK MATLTYPE.

*CHECK DIVISION.

CLEAR MBEW.

SELECT SINGLE * FROM MBEW WHERE MATNR = MARC-MATNR

AND BWKEY = MARC-WERKS.

CLEAR MAKT.

SELECT SINGLE * FROM MAKT WHERE SPRAS = 'EN'

AND MATNR = MARC-MATNR.

*WRITE:/ MARC-WERKS, "Plant

MARA-MTART, "Material type

MARA-MATNR, "Material number

MARA-MATKL, "Material group

MARA-MBRSH, "Industry sector

MARA-MEINS, "Base unit of measure

MARA-GEWEI, "Weight Unit

MARA-SPART, "Division

MARC-EKGRP, "Purchasing group

MBEW-VPRSV, "Price control indicator

MBEW-STPRS, "Standard price

MBEW-PEINH, "Price unit

MAKT-SPRAS, "Language key

MAKT-MAKTX. "Material description

INT_MAT-WERKS = MARC-WERKS. "Plant

INT_MAT-MTART = MARA-MTART. "Material type

INT_MAT-MATNR = MARA-MATNR. "Material number

INT_MAT-MATKL = MARA-MATKL. "Material group

INT_MAT-MBRSH = MARA-MBRSH. "Industry sector

INT_MAT-MEINS = MARA-MEINS. "Base unit of measure

*INT_MAT-GEWEI = MARA-GEWEI. "Weight Unit

*INT_MAT-SPART = MARA-SPART. "Division

*INT_MAT-EKGRP = MARC-EKGRP. "Purchasing group

INT_MAT-VPRSV = MBEW-VPRSV. "Price control indicator

*INT_MAT-STPRS = MBEW-STPRS. "Standard price

*INT_MAT-PEINH = MBEW-PEINH. "Price unit

INT_MAT-VERPR = MBEW-VERPR. " MOVING price

*INT_MAT-SPRAS = MAKT-SPRAs. "Language key

INT_MAT-MAKTX = MAKT-MAKTX. "Material description

APPEND INT_MAT.

CLEAR INT_MAT.

ENDSELECT.

ENDFORM. " DOWNLOAD_DATA

&----


*& Form DOWNLOAD_FILE

&----


text

-


--> p1 text

<-- p2 text

-


*FILENAME = F_FILE.

FORM DOWNLOAD_FILE .

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE =

FILENAME = FILENAME

FILETYPE = 'ASC'

APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = ' '

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

IMPORTING

FILELENGTH =

TABLES

DATA_TAB = INT_MAT

FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " DOWNLOAD_FILE

*&----


**& Form GETDATA

**&----


text

*----


--> p1 text

<-- p2 text

*----


*FORM GETDATA .

*

*CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = ' '

IMPORTING

FILE_NAME = F_FILE

.

*ENDFORM. " GETDATA

&----


*& Form UPLOAD_FILE

&----


text

-


--> p1 text

<-- p2 text

-


FORM UPLOAD_FILE .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = FILENAME

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

HEADER_LENGTH = 0

READ_BY_LINE = 'X'

DAT_MODE = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

CHECK_BOM = ' '

VIRUS_SCAN_PROFILE =

NO_AUTH_CHECK = ' '

IMPORTING

FILELENGTH =

HEADER =

TABLES

DATA_TAB = INT_MAT

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17

.

IF SY-SUBRC 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " UPLOAD_FILE

&----


*& Form UPDATE_MM

&----


text

-


--> p1 text

<-- p2 text

-


FORM UPDATE_MM .

LOOP AT INT_MAT.

*****************Header

BAPI_HEAD-MATERIAL = INT_MAT-MATNR.

BAPI_HEAD-IND_SECTOR = INT_MAT-MBRSH.

BAPI_HEAD-MATL_TYPE = INT_MAT-MTART.

BAPI_HEAD-BASIC_VIEW = 'X'.

BAPI_HEAD-PURCHASE_VIEW = 'X'.

BAPI_HEAD-ACCOUNT_VIEW = 'X'.

*****************Material Description

REFRESH INT_MAKT.

INT_MAKT-LANGU = SY-LANGU.

INT_MAKT-MATL_DESC = INT_MAT-MAKTX.

APPEND INT_MAKT.

******************Client Data - Basic

BAPI_MARA1-MATL_GROUP = INT_MAT-MATKL.

BAPI_MARA1-BASE_UOM = INT_MAT-MEINS.

BAPI_MARAX-MATL_GROUP = 'X'.

BAPI_MARAX-BASE_UOM = 'X'.

*******************Plant - Purchasing

BAPI_MARC1-PLANT = INT_MAT-WERKS.

BAPI_MARCX-PLANT = INT_MAT-WERKS.

**********************Accounting

BAPI_MBEW1-VAL_AREA = INT_MAT-WERKS.

BAPI_MBEW1-PRICE_CTRL = INT_MAT-VPRSV.

BAPI_MBEW1-MOVING_PR = INT_MAT-VERPR.

BAPI_MBEWX-PRICE_CTRL = 'X'.

BAPI_MBEWX-STD_PRICE = 'X'.

BAPI_MBEWX-VAL_AREA = INT_MAT-WERKS.

CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'

EXPORTING

HEADDATA = BAPI_HEAD

CLIENTDATA = BAPI_MARA1

CLIENTDATAX = BAPI_MARAX

PLANTDATA = BAPI_MARC1

PLANTDATAX = BAPI_MARCX

*FORECASTPARAMETERS =

*FORECASTPARAMETERSX =

*PLANNINGDATA =

*PLANNINGDATAX =

*STORAGELOCATIONDATA =

*STORAGELOCATIONDATAX =

VALUATIONDATA = BAPI_MBEW1

VALUATIONDATAX = BAPI_MBEWX

*

*WAREHOUSENUMBERDATA =

*WAREHOUSENUMBERDATAX =

*SALESDATA = BAPI_MVKE1

*SALESDATAX = BAPI_MBEWX "BAPI_MVKEX

*STORAGETYPEDATA =

*STORAGETYPEDATAX =

IMPORTING

RETURN = BAPI_RETURN

TABLES

MATERIALDESCRIPTION = INT_MAKT

*UNITSOFMEASURE =

*UNITSOFMEASUREX =

*INTERNATIONALARTNOS =

*MATERIALLONGTEXT =

*TAXCLASSIFICATIONS =

*RETURNMESSAGES =

*PRTDATA =

*PRTDATAX =

*EXTENSIONIN =

*EXTENSIONINX =

.

ENDLOOP.

IF BAPI_RETURN-TYPE = 'E'.

WRITE 😕 BAPI_RETURN-MESSAGE.

ELSEIF BAPI_RETURN-TYPE = 'S'.

WRITE 😕 BAPI_RETURN-MESSAGE.

ENDIF.

ENDFORM.

see this may be useful

reward if useful,

thanks and regards.

Read only

Former Member
0 Likes
1,756

Manjunath,

just refer:

/people/ramganesan.karuppaiah/blog/2006/12/14/material-creation-bapi-access-in-webdynprojava

Amit.

Read only

Former Member
0 Likes
1,756

Hi,



See the example code for BAPI :

&---------------------------------------------------------------------
*& Report Z8_BAPI
*&
&---------------------------------------------------------------------
*&
*&
&---------------------------------------------------------------------

REPORT Z8_BAPI.

**********************************************************************

STRUCTURE DECLARATIONS * 
**********************************************************************

TABLES: BAPIMATHEAD, "Headerdata
BAPI_MARA, "Clientdata
BAPI_MARAX, "Clientdatax
BAPI_MARC, "Plantdata
BAPI_MARCX, "Plantdatax
BAPI_MAKT, "Material description
BAPIRET2. "Return messages

DATA:V_FILE TYPE STRING.

DATA:
BEGIN OF LSMW_MATERIAL_MASTER,
MATNR(018) TYPE C, "Material number
MTART(004) TYPE C, "Material type
MBRSH(001) TYPE C, "Industry sector
WERKS(004) TYPE C, "Plant
MAKTX(040) TYPE C, "Material description
DISMM(002) TYPE C, "Extra Field Added In the Program as itsrequired
MEINS(003) TYPE C, "Base unit of measure
MATKL(009) TYPE C, "Material group
SPART(002) TYPE C, "Division
LABOR(003) TYPE C, "Lab/office
PRDHA(018) TYPE C, "Product hierarchy
MSTAE(002) TYPE C, "X-plant matl status
MTPOS_MARA(004) TYPE C, "Gen item cat group
BRGEW(017) TYPE C, "Gross weight
GEWEI(003) TYPE C, "Weight unit
NTGEW(017) TYPE C, "Net weight
GROES(032) TYPE C, "Size/Dimensions
MAGRV(004) TYPE C, "Matl grp pack matls
BISMT(018) TYPE C, "Old material number
WRKST(048) TYPE C, "Basic material
PROFL(003) TYPE C, "DG indicator profile
KZUMW(001) TYPE C, "Environmentally rlvt
BSTME(003) TYPE C, "Order unit
VABME(001) TYPE C,
EKGRP(003) TYPE C, "Purchasing group
XCHPF(001) TYPE C, "Batch management
EKWSL(004) TYPE C, "Purchasing key value
WEBAZ(003) TYPE C, "GR processing time
MFRPN(040) TYPE C, "Manufacturer part number
MFRNR(010) TYPE C, "Manufacturer number
VPRSV(001) TYPE C, "Price control indicator
STPRS(015) TYPE C, "Standard price
BWPRH(014) TYPE C, "Commercial price1
BKLAS(004) TYPE C, "Valuation class
END OF LSMW_MATERIAL_MASTER.


**********************************************************************


INTERNAL TABLE DECLARATIONS * 
**********************************************************************

*to store the input data
DATA:
BEGIN OF it_matmaster OCCURS 0.
INCLUDE STRUCTURE LSMW_MATERIAL_MASTER.

DATA:
END OF it_matmaster.

*for material description
DATA:BEGIN OF IT_MATERIALDESC OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT .
DATA:END OF IT_MATERIALDESC.

*to return messages
DATA:BEGIN OF IT_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF IT_RETURN.

************************************************************************

SELECTION SCREEN 
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-002.

PARAMETERS:P_FILE LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1 .

************************************************************************

AT SELECTION SCREEN 
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.


**********************************************************************


TO UPLOAD THE DATA * 
**********************************************************************

START-OF-SELECTION.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'

HEADER_LENGTH = 0 
READ_BY_LINE = 'X' 
DAT_MODE = ' ' 
IMPORTING 
FILELENGTH = 
HEADER = 
tables
data_tab = IT_MATMASTER
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

**********************************************************************

DATA POPULATIONS * 
**********************************************************************

LOOP AT IT_MATMASTER.
BAPIMATHEAD-MATERIAL = IT_MATMASTER-MATNR.
BAPIMATHEAD-IND_SECTOR = IT_MATMASTER-Mbrsh.
BAPIMATHEAD-MATL_TYPE = IT_MATMASTER-Mtart.
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPIMATHEAD-PURCHASE_VIEW = 'X'.
BAPIMATHEAD-ACCOUNT_VIEW = 'X'.
BAPI_MARA-MATL_GROUP = IT_MATMASTER-MATKL.
BAPI_MARA-OLD_MAT_NO = IT_MATMASTER-BISMT.
BAPI_MARA-BASE_UOM = IT_MATMASTER-MEINS.
BAPI_MARA-BASIC_MATL = IT_MATMASTER-WRKST.
BAPI_MARA-MFR_NO = IT_MATMASTER-MFRNR.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-OLD_MAT_NO = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-BASIC_MATL = 'X'.
BAPI_MARAX-MFR_NO = 'X'.
BAPI_MARC-PLANT = IT_MATMASTER-WERKS.
BAPI_MARC-PUR_GROUP = IT_MATMASTER-EKGRP.
BAPI_MARCX-PLANT = IT_MATMASTER-WERKS.
BAPI_MARCX-PUR_GROUP = 'X'.
IT_MATERIALDESC-LANGU = 'EN'.
IT_MATERIALDESC-MATL_DESC = IT_MATMASTER-MAKTX.
append IT_materialdesc.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = BAPIMATHEAD
CLIENTDATA = BAPI_MARA
CLIENTDATAX = BAPI_MARAx
PLANTDATA = BAPI_MARc
PLANTDATAX = BAPI_MARcx


FORECASTPARAMETERS = 
FORECASTPARAMETERSX = 
PLANNINGDATA = 
PLANNINGDATAX = 
STORAGELOCATIONDATA = 
STORAGELOCATIONDATAX = 
VALUATIONDATA = 
VALUATIONDATAX = 
WAREHOUSENUMBERDATA = 
WAREHOUSENUMBERDATAX = 
SALESDATA = 
SALESDATAX = 
STORAGETYPEDATA = 
STORAGETYPEDATAX = 
FLAG_ONLINE = ' ' 
FLAG_CAD_CALL = ' ' 
IMPORTING
RETURN = IT_RETURN
TABLES
MATERIALDESCRIPTION = IT_MATERIALDESC

UNITSOFMEASURE = 
UNITSOFMEASUREX = 
INTERNATIONALARTNOS = 
MATERIALLONGTEXT = 
TAXCLASSIFICATIONS = 
RETURNMESSAGES = 
PRTDATA = 
PRTDATAX = 
EXTENSIONIN = 
EXTENSIONINX = 
.

WRITE:/ IT_RETURN-TYPE,
2 IT_RETURN-ID,
22 IT_RETURN-NUMBER,
25 IT_RETURN-MESSAGE.

IT_RETURN-LOG_NO, 
IT_RETURN-LOG_MSG_NO, 
IT_RETURN-MESSAGE_V1, 
IT_RETURN-MESSAGE_V2, 
IT_RETURN-MESSAGE_V3, 
IT_RETURN-MESSAGE_V4, 
IT_RETURN-PARAMETER, 
IT_RETURN-ROW, 
IT_RETURN-FIELD, 
IT_RETURN-SYSTEM. 

ENDLOOP.

Regards,

Jagadish