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

report problem with BAPI_MATERIAL_SAVEDATA (help required)

Former Member
0 Likes
658

hi all,

i am using this source code to create material using

BAPI_MATERIAL_SAVEDATA.

when i am executing the program,

i am getting message the material no 512 transferred without leading 0.

but when i am checking the mara table i am not getting the material 512 created.

my program is as follows plz check where i am wrong ? why i am not able to create the material using this program.what changes i have to make in this program so that i will be successful in creating material.?

&----


*& Report ZCREATE_MATERIAL

*&

&----


*& Developer

*& Date: &DATE

&----


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

  • STRUCTURE DECLARATIONS *

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

Report:zcreate_material.

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 =

.

  • Bapi to commit the changes

IF sy-subrc <> 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'.

ENDIF.

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.

thanks

sanjeev

4 REPLIES 4
Read only

alex_m
Active Contributor
0 Likes
591

Actually your COMMIT call not at all executed.

IF sy-subrc <> 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'.

ENDIF.

The sy-subrc = 0 after the BAPI executed, the right way is after BAPI call check the bapi RETURN table has any error, if not commit the BAPI otherwise rollback.

Read only

Former Member
0 Likes
591

Alexander,

i have changed the if codition then also it is not working.

if u have done the same requirement then plz share the code with me.

my id is----

sanjeev.singh@prospectasoftware.com.

i need it urgently

thanks for ur reply

i am looking for it.

sanjeev

Read only

alex_m
Active Contributor
0 Likes
591

I have sent the mail check.

Read only

Former Member
0 Likes
591

i didn't got the mail yet.

plz check it. send it once again.

otherwise send it to my gmailid- sanjeevsap1@gmail.com

plz yaar