Sometimes there comes a situation where the conversion from one unit to another may become necessary. One such situation could be to convert the order unit in the purchase order to the base unit measure of the material. The usage of the function module 'MC_UNIT_CONVERSION' could ease the job. The user must supply the source unit of meausre and the target unit of measure. The function module in turn returns a conversion factor. This conversion factor needs to be multiplied with the value in source units in order to get the value in target units. The various units of measure along with the conversion ratios between them are maintained in the table T006. Here is a simple program implementing the specified function module.
The code was written in R/3 4.6B.
REPORT Unit_Conversion .
p_svalue TYPE p DECIMALS 2,
p_sunit TYPE mara-meins,
p_tunit TYPE mara-meins.
w_target_value TYPE f,
l_factor TYPE f.
CALL FUNCTION 'MC_UNIT_CONVERSION'
nach_meins = p_tunit " Target unit
von_meins = p_sunit " Source unit
umref = l_factor
conversion_not_found = 1
material_not_found = 2
nach_meins_missing = 3
overflow = 4
von_meins_missing = 5
OTHERS = 6
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
w_target_value = p_svalue * l_factor.
'The value after conversion to the target unit of measure is',