# 1. 단위 환산은 자재에 등록된 단위의 factor 값(MARM)으로 환산을 한다.
-> 같은 Dimension을 가진 단위는 등록하지 않아도 시스템에서 계산한다.
-> 다른 Dimension을 가진 단위는 반드시 등록해야 함.
2. 모든 환산은 기본 단위를 기준으로한다.
3. 재고의 수량은 기본 단위로 관리된다.
# 환산 순서 : 단위 A에서 단위 B로 환산
1. 단위 A -> 기본단위
2. 기본단위 -> 단위B
# 기본 단위로 환산할지, 입력단위로 환산할지는 kzmeinh 필드로 제어한다.
-> 'X' 인경우는 MEINH의 단위를 참조하여 기본단위로 환산.
-> default 값은 기본단위를 참조하여 MEINH의 단위로 환산.
REPORT ztest_conv NO STANDARD PAGE HEADING LINE-SIZE 1023.
PARAMETERS : pa_matnr LIKE mara-matnr OBLIGATORY,
pa_old LIKE mara-meins OBLIGATORY,
pa_new LIKE t006-msehi OBLIGATORY,
pa_value LIKE plfh-mgvgw DEFAULT 10 OBLIGATORY.
INITIALIZATION.
pa_matnr = '3001940'.
pa_new = 'MG'.
pa_old = 'KG'.
pa_value = '0.5002000'.
START-OF-SELECTION.
DATA : lv_value_tmp(10) TYPE p DECIMALS 10,
lv_meins LIKE mara-meins,
umrez TYPE f,
lv_value_new LIKE lv_value_tmp.
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
EXPORTING
matnr = pa_matnr
input = pa_value
meinh = pa_old
kzmeinh = 'X'
IMPORTING
output = lv_value_tmp
EXCEPTIONS
conversion_not_found = 01
input_invalid = 02
material_not_found = 03
meinh_not_found = 04
meins_missing = 05
no_meinh = 06
output_invalid = 07
overflow = 08.
IF sy-subrc = 8.
RAISE overflow.
ENDIF.
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'
EXPORTING
matnr = pa_matnr
input = lv_value_tmp
meinh = pa_new
kzmeinh = ' '
IMPORTING
output = lv_value_new
EXCEPTIONS
conversion_not_found = 01
input_invalid = 02
material_not_found = 03
meinh_not_found = 04
meins_missing = 05
no_meinh = 06
output_invalid = 07
overflow = 08.
IF sy-subrc = 8.
RAISE overflow.
ENDIF.
WRITE : / lv_value_new.