Funktionsbaustein UNIT CONVERSION SIMPLE

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Sammlung Funktionsbausteine.

Dieser Funktionsbaustein UNIT_CONVERSION_SIMPLE wandelt Einheiten ineinander um. Die Einheiten müssen in der Tabelle T006 enthalten sein.

Die Umrechnung sollte nur dann durchgeführt werden, wenn Inputmaßeinheit <> Outputmaßeinheit ist. Ansonsten ist eine Umrechnung nicht nötig und man kann die Menge direkt zuweisen.

Beispiel Gewichtsumrechnung

  • Hier werden die Gewichte von Lieferungen in KG umgerechnet.
if ls_likp-gewei <> 'KG'.
  DATA: lv_brgew TYPE brgew.

  CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
    EXPORTING
      input                      = ls_likp-btgew
      NO_TYPE_CHECK              = 'X'
      ROUND_SIGN                 = ' '
      unit_in                    = ls_likp-gewei
      unit_out                   = 'KG'
    IMPORTING
      ADD_CONST                  =
      DECIMALS =
      DENOMINATOR                =
      NUMERATOR                  =
      output                     = lv_brgew
    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.
   "Implement suitable error handling here
  ENDIF.
endif.

Beispiel Volumenumrechnung

  • Hier werden die Volumen in Lieferungen in Kubikmeter umgerechnet.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
  EXPORTING
    input                = <fs_likp>-volum
    NO_TYPE_CHECK        = 'X'
    ROUND_SIGN           = ' '
    unit_in              = <fs_likp>-voleh
    unit_out             = 'M3'
  IMPORTING
    ADD_CONST            =
    DECIMALS             =
    DENOMINATOR          =
    NUMERATOR            =
    output               = lv_volum
  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.
* Implement suitable error handling here
ELSE.
  ADD lv_volum TO cv_volum.
ENDIF.

Literatur