Former Member

### Convert unit and currency

Hi

I have 2 requirements.

1. I need a function module which can convert quantities (MENGE) to Base unit of quantity (MEINS). It should import quantity, current unit and unit to which conversion is required(meins) and then return new quantity and base unit.

2.Similar to above this function module should import value(dmbtr), current curreny (waers), and company currency code (waers) and return the value and currency wrt company currency code.

Regards,

Kiran

10|10000 characters needed characters exceeded

• Former Member
Jun 23, 2006 at 11:07 AM

There are Several Function Module...

Check out there functionality as per your requirement...

· CONVERSION_FACTOR_GET

With this function module, you determine the conversion factors for the conversion of a measurement unit into another using the measurement units table. This does not apply to measurement units within a dimension.

The module also returns the number of decimal places to which the values in the unit UNIT_OUT are to be rounded. This also applies to units with no dimension.

The following formula applies for the conversion:

(value in the unit UNIT_OUT) = (value in the unit UNIT_IN) * numerator/denominator + additive constant.

· ROUND

With this function module, you round a value to the specified number of decimal places. You can choose between three rounding types:

- Rounding up

- Rounding down

- Commercial rounding

The rounding is performed internally with the same field type as that of the field passed.

Rounding errors can thus occur when rounding a FLOAT value. If you want a high degree of accuracy, the passed field should have the type P.

· SI_UNIT_GET

You pass either a unit or a dimension to this function module to get the SI unit. If you pass both a unit and a dimension, the SI unit for the dimension is returned.

· UNIT_CONVERSION_WITH_FACTOR

With this function module, you convert a value according to the factor passed.

· UNIT_CORRESPONDENCE_CHECK

With this function module, you can check whether the two units passed belong to the same dimension.

· UNIT_GET

With this function module, you get the appropriate measurement unit for the specified dimension and conversion factor.

· UNIT_CONVERSION_SIMPLE

With this function module, you convert a value using the measurement unit table, and round it, if appropriate.

You can also perform the rounding without conversion.

Conversion with this function module requires that the measurement unit table is maintained for both units, and that both units belong to the same dimension, i.e. also that they have dimensions.

The rounding can, however, also be performed for units which have no dimension.

CONVERT_TO_LOCAL_CURRENCY - Conversion of currency

HRCM_AMOUNT_TO_STRING_CONVERT - Convert amount to string

HRCM_STRING_TO_AMOUNT_CONVERT - Convert amount from string

CLOI_PUT_SIGN_IN_FRONT Move the negative sign from the left hand side of a number, to the right hand side of the number. Note that The result will be left justified (like all

character fields), not right justifed as numbers normally are.

CONVERT_TO_FOREIGN_CURRENCY Convert local currency to foreign currency.

CONVERT_TO_LOCAL_CURRENCY Convert from foreign currency to local currency

http://www.sapgenie.com/abap/functions.htm

http://fuller.mit.edu/SAPDocs/conversion_exits_in.htm

Do Reward Points to replies if found useful...

10|10000 characters needed characters exceeded
• Former Member
Jun 23, 2006 at 11:09 AM

hi,

unit-conversion-with-0unitmat

http://www.sapgenie.com/abap/functions.htm

http://fuller.mit.edu/SAPDocs/conversion_exits_in.htm

You can use FM CONVERT_TO_LOCAL_CURRENCY or CONVERT_TO_FOREIGN_CURRENCY for currency conversion

There are many others available. Check with unitconvert* and convertcurrency*.

UNIT_CONVERSION_WITH_FACTOR or UNIT_CONVERSION_SIMPLE for unit conversion.

Regards,

Richa

10|10000 characters needed characters exceeded
• Former Member
Jun 23, 2006 at 11:55 AM

Hi Kiran,

1) Use Function Module <b>UNIT_CONVERSION_SIMPLE</b>.

DATA:

L_UNIT1 LIKE T006-MSEHI,

L_UNIT2 LIKE T006-MSEHI,

L_OUTPUT TYPE P DECIMALS 3,

L_INPUT TYPE P DECIMALS 3.

CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'

EXPORTING

INPUT = L_INPUT "InputValue

UNIT_IN = L_UNIT1 "Unit need to be converted

UNIT_OUT = L_UNIT2 "Unit to be converted

IMPORTING

OUTPUT = L_OUTPUT "Value in required units

EXCEPTIONS

CONVERSION_NOT_FOUND = 1

DIVISION_BY_ZERO = 2

INPUT_INVALID = 3

OUTPUT_INVALID = 4

OVERFLOW = 5

TYPE_INVALID = 6

UNITS_MISSING = 7

UNIT_IN_NOT_FOUND = 8

UNIT_OUT_NOT_FOUND = 9

OTHERS = 10.

IF SY-SUBRC = 0.

V_QTY_FINAL = L_OUTPUT.

SHIFT V_QTY_FINAL LEFT DELETING LEADING SPACE.

ENDIF.

2) Use Function modules <b>CONVERT_TO_LOCAL_CURRENCY and CONVERT_TO_FOREIGN_CURRENCY</b> for currency conversions

Thanks,

Vinay

10|10000 characters needed characters exceeded
• Former Member
Jun 23, 2006 at 12:33 PM

code to convert weight from one unit to another

FORM F_CONVERT_WEIGHT_INTO_KG USING P_WEIGHT

P_WT_UNIT.

DATA: LV_LB TYPE COMT_NET_WEIGHT,

LV_KG TYPE COMT_NET_WEIGHT,

LV_WT_UNIT TYPE COMT_UNIT.

LV_LB = P_WEIGHT.

LV_WT_UNIT = P_WT_UNIT.

CALL FUNCTION 'COM_PRODUCT_UNIT_CALC_WEIGHT'

EXPORTING

I_INPUT_B = LV_LB "your current MENGE

I_UNIT_B = LV_WT_UNIT "current MEINS

I_UNIT_A = 'KG' "target MEINS

I_NUMERATOR = 1

I_DENOMINATOR = 1

IMPORTING

E_OUTPUT_A = LV_KG. "weight in new MEINS

P_WEIGHT = LV_KG.

ENDFORM. " F_CONVERT_WEIGHT_INTO_KG

10|10000 characters needed characters exceeded
• Former Member
Jun 23, 2006 at 12:37 PM

for currency conversions

use the function modules,

CONVERT_TO_FOREIGN_CURRENCY -

Convert Currency

CONVERT_TO_LOCAL_CURRENCY

CONVERT_COUNTRY_CURRENCY

CURRENCY_CONVERT

10|10000 characters needed characters exceeded
• Former Member
Jun 23, 2006 at 12:40 PM

Hai Kiran

Check the following Function Modules

For Unit

UNIT_OF_MEASURE_SAP_TO_ISO

UNIT_OF_MEASURE_ISO_TO_SAP

For Currency

CONVERT_TO_LOCAL_CURRENCY

CONVERT_COUNTRY_CURRENCY

CONVERT_TO_FOREIGN_CURRENCY

CURRENCY_CONVERT

Thanks & regards

Sreenivasulu P