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_savedata error

Former Member
0 Likes
1,053

Dear friends,

I am updating the Material Description short text in Material master and I have the following code. I am not able to update, what am i doing wrong can you please take a look at the code.

Thanks.

CODE:

REPORT test.

TABLES: MARA, "General Material Data

MAKT, "Material Descriptions

BAPIRET2.

DATA: BAPI_HEAD LIKE BAPIMATHEAD,

BAPI_MAKT LIKE BAPI_MAKT,

BAPI_MARA1 LIKE BAPI_MARA.

DATA: BEGIN OF INT_MAKT OCCURS 0.

INCLUDE STRUCTURE BAPI_MAKT.

DATA: END OF INT_MAKT.

DATA: BEGIN OF INT_update OCCURS 100,

MATNR(40),

WERKS(4),

MAKTX(40),

END OF INT_update.

PARAMETERS: P_WERKS LIKE MARC-WERKS DEFAULT '7000' OBLIGATORY,

F_FILE LIKE RLGRAP-FILENAME

DEFAULT 'C:\test.TXT' MEMORY ID F_FILE.

PERFORM WSUPLOAD.

PERFORM GETUPDATE.

FORM WSUPLOAD.

call function 'WS_UPLOAD'

EXPORTING

FILENAME = F_FILE

FILETYPE = 'DAT'

  • FILETYPE = 'WK1'

tables

data_tab = INT_update

EXCEPTIONS

FILE_OPEN_ERROR = 1.

ENDFORM.

FORM GETUPDATE.

LOOP AT INT_update.

CLEAR: BAPI_HEAD,

BAPI_MARA1,

BAPIRET2.

  • Header

BAPI_HEAD-MATERIAL = INT_update-MATNR.

  • BAPI_HEAD-BASIC_VIEW = 'X'.

  • Material Description

REFRESH INT_MAKT.

INT_MAKT-MATL_DESC = INT_update-MAKTX.

APPEND INT_MAKT.

WRITE:/ BAPI_HEAD.

call function 'BAPI_MATERIAL_SAVEDATA'

exporting

HEADDATA = BAPI_HEAD

CLIENTDATA = BAPI_MARA1

  • CLIENTDATAX = BAPI_MARAX

  • PLANTDATA = BAPI_MARC1

IMPORTING

RETURN = BAPIRET2

TABLES

MATERIALDESCRIPTION = INT_MAKT.

.

IF SY-SUBRC = 0.

IF BAPIRET2-TYPE EQ 'E'.

WRITE:/ 'Error Message - UPDATE FAILED'.

ELSE.

COMMIT WORK.

WRITE:/ ' UPDATE SUCCESSFUL'.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
992

Hi,

You can refer this forum which will definitely help you because its of same scenario.

[;

Thanks and Regards,

Dhaya.G

6 REPLIES 6
Read only

Former Member
0 Likes
992

Try to fill the field LANGU from structure BAPI_MAKT.

hope it solves,

Felipe

Read only

Former Member
0 Likes
993

Hi,

You can refer this forum which will definitely help you because its of same scenario.

[;

Thanks and Regards,

Dhaya.G

Read only

Former Member
0 Likes
992

Any reason why you commented out this line? Try reactivating it.

* BAPI_HEAD-BASIC_VIEW = 'X'.

Read only

Former Member
0 Likes
992

hi ..

try this code ..


TABLES:BAPIMATHEAD,
       BAPI_MAKT,
       BAPI_MARA,
       BAPI_MARAX.
DATA:   IT_RETURN LIKE BAPIRET2,
        IT_BAPI LIKE BAPI_MAKT OCCURS 0 WITH HEADER LINE.

PARAMETERS : P_MAT TYPE MARA-MATNR,
             P_MBRSH TYPE MARA-MBRSH,
             P_MTART TYPE MARA-MTART,
             P_MATKL TYPE MARA-MATKL,
             P_MAKTX TYPE MAKT-MAKTX,
             P_LANG.


BAPIMATHEAD-MATERIAL = P_MAT.
BAPIMATHEAD-IND_SECTOR = P_MBRSH .
BAPIMATHEAD-MATL_TYPE =  P_MTART.
BAPIMATHEAD-BASIC_VIEW = 'X'.
BAPI_MARA-MATL_GROUP = P_MATKL.
BAPI_MARA-BASE_UOM = 'KGS'.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.

IT_BAPI-LANGU = P_LANG.
IT_BAPI-LANGU_ISO = 'EN'.
IT_BAPI-MATL_DESC = P_MAKTX.
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' .

WRITE:/ IT_RETURN-TYPE.

Read only

0 Likes
992

Thanks everyone,

There were two things that must be declared in my original code.

IT_BAPI-LANGU and

BAPIMATHEAD-BASIC_VIEW = 'X'.

Thanks once again.

Read only

Former Member
0 Likes
992

Thanks everyone,

There were two things that must be declared in my original code.

IT_BAPI-LANGU and

BAPIMATHEAD-BASIC_VIEW = 'X'.

Thanks once again.