Unit of Measure in SAP

 

Measures in SAP can be painful to understand, this blogpost dives into the area exposing the logic behind the measures and elaborating how to change from one measure to another. Be warned that there is nothing prohibiting you from converting from meters into kelvin, only your understanding of the usage context will ensure a valid transformation

 

An example of conversion to a SI unit

    1. Simplified formula:

            Measurement unit = (N/D) x SI unit

    2. Complete formula:

            A * measurement unit = (A * N/D * 10**E + K) * SI unit

 

    A = number of measurement units

    N = numerator

    D = denominator

    E = exponent (only required in the case of very large or very small numbers)

    K = additive constant (only required for temperature conversions)

 

 

    Examples

        1. Dimension length

        Measurement unit mm (millimeter)

        SI unit m (meter)

        1 mm = (1/1000) * meter

 

        2. Dimension temperature

        Measurement unit °F (Fahrenheit)

        SI unit K (Kelvin)

        32 °F = (32 * 5/9 * 10**0 + 255,37) * K = 273,15 K = 0 °C

 

Assuming we implemented “Unit of Measure” and “Unit Dimension” as describe in the diagrams attaches to this document then we can transform 1000mg to kg as easy as this

SELECT 1000 AS NETweight,
‘MG’
AS MSEHI

INTO #t

 

SELECT #t.NETweight*1.0/SIConversionDenominator*SIConversionNumerator, ud.SIUnit

FROM #t

INNER
JOIN UnitOfMeasure uom ON uom.MSEHI=#t.msehi

INNER
JOIN UnitDimension ud ON ud.MSEHI = uom.MSEHI

 

And should we want to transform from one measure over a SI to another measure, then we can do like this as explained in this example where I convert the 1000mg to Tonn

 

SELECT #t.NETweight*1.0/uom.SIConversionDenominator*uom.SIConversionNumerator, ud.SIUnit

    , #t.NETweight*1.0/uom.SIConversionDenominator*uom.SIConversionNumerator

                    * uom2.SIConversionDenominator/uom2.SIConversionNumerator

                    ,uom2.InternalUnit

FROM #t

INNER
JOIN UnitOfMeasure uom ON uom.MSEHI=#t.msehi

INNER
JOIN UnitDimension ud ON ud.MSEHI = uom.MSEHI

INNER
JOIN UnitOfMeasure uom2 ON uom2.MSEHI=‘TO’

 

 

 

 

 

 

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s