‎2007 Jan 12 8:38 PM
I am trying to load a file of material numbers into LSMW and delete each material's 'EA' additional unit of measure (if it has one).
The problem is, using BDC, I don't know in advance which line the 'EA' Additional unit of measure will reside in the MM UOM screen table control (MM02->Basic Data->Additional Data->Units of Measure).
I think I can overcome this with a BAPI, but I already tried using
BAPI_MATERIAL_MAINTAINDATA_RT sending parameter fields:
HEADDATA-MATERIAL = <material num>
MATERIAL-BASIC_VIEW = X
UNITSOFMEASURE-FUNCTION = '003'
UNITSOFMEASURE-MATERIAL = <material num>
UNITSOFMEASURE-ALT_UNIT = 'EA'
I tested these parameter entries executing the BAPI in SE37.
It did not work. Any suggestions would be greatly appreciated.
Kind Regards,
Jason
Message was edited by: Jason DeLuca
Jason DeLuca
‎2007 Nov 27 3:35 PM
I get the same problem. Jason - did you find any solution outside SDN?
‎2011 Jan 24 9:03 PM
Try the below code out:
*&---------------------------------------------------------------------*
*& Report ZMM_DELETE_UOM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zmm_delete_uom.
TABLES: marm.
* Local data
DATA: ls_bapi_head TYPE bapimathead,
ls_bapi_return TYPE bapiret2,
lt_bapi_marm TYPE TABLE OF bapi_marm,
ls_bapi_marm TYPE bapi_marm,
lt_bapi_marmx TYPE TABLE OF bapi_marmx,
ls_bapi_marmx TYPE bapi_marmx,
lt_marm TYPE TABLE OF marm,
ls_marm TYPE marm,
ls_mara TYPE mara.
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.
SELECT-OPTIONS: s_matnr FOR marm-matnr.
PARAMETERS: p_meinh TYPE marm-meinh OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl1.
START-OF-SELECTION.
SELECT * INTO TABLE lt_marm
FROM marm
WHERE matnr IN s_matnr
AND meinh EQ p_meinh.
IF sy-subrc EQ 0.
LOOP AT lt_marm INTO ls_marm.
SELECT SINGLE * INTO ls_mara
FROM mara
WHERE matnr EQ ls_marm-matnr.
IF sy-subrc EQ 0.
ls_bapi_head-material = ls_marm-matnr.
ls_bapi_head-ind_sector = ls_mara-mbrsh.
ls_bapi_head-matl_type = ls_mara-mtart.
ls_bapi_head-basic_view = 'X'.
ls_bapi_marm-alt_unit = ls_marm-meinh.
ls_bapi_marm-numerator = ls_marm-umrez.
ls_bapi_marm-denominatr = ls_marm-umren.
ls_bapi_marm-del_flag = 'X'.
APPEND ls_bapi_marm TO lt_bapi_marm.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = ls_bapi_head
IMPORTING
return = ls_bapi_return
TABLES
unitsofmeasure = lt_bapi_marm.
IF ls_bapi_return-type EQ 'E'.
MESSAGE ls_bapi_return-message TYPE 'I' DISPLAY LIKE 'E'.
STOP.
ENDIF.
ENDIF.
ENDLOOP.
MESSAGE 'Material Master successfully updated.' TYPE 'I'.
ELSE.
MESSAGE 'No data found for the current selection criteria.' TYPE 'I'.
ENDIF.
END-OF-SELECTION.Edited by: anish mathew on Jan 24, 2011 10:08 PM