‎2012 Feb 29 10:43 PM
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.
‎2012 Mar 01 3:52 AM
‎2012 Mar 01 2:20 AM
Try to fill the field LANGU from structure BAPI_MAKT.
hope it solves,
Felipe
‎2012 Mar 01 3:52 AM
‎2012 Mar 01 5:52 AM
Any reason why you commented out this line? Try reactivating it.
* BAPI_HEAD-BASIC_VIEW = 'X'.
‎2012 Mar 01 6:10 AM
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.
‎2012 Mar 05 1:22 AM
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.
‎2012 Mar 05 5:10 AM
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.