SAP/ABAP

MM 단위 환산.

Denise 2013. 3. 14. 10:15
# 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.
  

'SAP > ABAP' 카테고리의 다른 글

[Macro] Range 선언  (0) 2014.02.18
Chartset 변경.  (0) 2014.01.15
Custom Search Help in ALV OOP  (1) 2013.01.23
Excel OLE constants  (0) 2012.12.03
BAPI_SALESORDER_CHANGE  (0) 2012.09.12