본문 바로가기
카테고리 없음

ABAP fomula to be calculated function 문자열로 된 계산식 결과값 리턴 해주는 함수

by 온레 2023. 12. 4.

 

 

문자열로 된 계산식을 

해당 계산식의 

최종 결과 값으로 계산해주는 function을 작성해 보자.

 

 

EVAL FOMULA 문자열 계산식 결과값 계산 FUNCTION

 

DATA : LV_STR TYPE CHAR 100,
       LV_VALUE TYPE F,
       LV_RESULT TYPE CHAR100,
       LV_RETCODE LIKE SY-SUBRC,
       LV_MESSAGE TYPE MSGTXT,
       LV_CALC_aMT TYPE P DECIMALS 2.
  
  " i에 1로 치환
  LV_STR = '(100*5)/10 + i '.
  CONDENSE LV_STR.
  REPLACE ALL OCCURRENCES OF 'i' IN LV_STR WITH '1'.
  
  "Check Fomula
  CALL FUNCTION 'EVAL_FORMULA'
  	EXPORTING
       FORMULA  = 'LV_STR'
     IMPORTING
       VALUE    = LV_VALUE
     EXCEPTIONS
      DIVISION_BT_ZERO = 1
      EXP_ERROR = 2
      FOMULA_TABLE_NOT_VALID = 3
      INVALID_EXPRESSION = 4
      INVALID_VALUE = 5
      LOG_ERROR = 6
      PARAMETER_ERROR = 7
      SORT_ERROR = 8
      UNITS_NOT_VALID = 9
      MISSING_PARAMETER = 10
      OTHERS = 11.
      
  LV_CALC_AMT = LV_VALUE.
  WRITE : LV_CALC_AMT TO LV_RESULT STYLE CL_ABAP_FORMAT=>O_SIMPLE.
  CONDENSE LV_RESULT.
  WRITE : LV_RESULT.