SAP ABAP에서 문자열로 된 산술식을 계산하는 방법


ABAP 프로그램을 개발하다 보면 정확하게 정의된 산술식이 아니라 상황이나 조건에 따라 변하는 산술식을 계산해야 할 때가 있습니다.

일반적으로 계산 식은 미리 정해져 있고, 프로그램에서는 정해진 계산 식에서 사용되는 변수 값에 따라 자동으로 계산해서 결과 값을 처리하게 됩니다.
하지만 조건에 따라 계산하는 산술 식이 바뀌게 된다면 경우를 수를 모두 고려해서 프로그램에 계산하는 로직을 구현해 주어야 합니다. 만약 산술 식을 미리 특정할 수 없는 경우라면 ABAP 프로그램에서 계산은 불가능해지게 됩니다.

SAP ABAP Function 중에 산술식을 문자열로 입력 받아 자동으로 계산해서 계산된 결과 값을 리턴해 주는 함수가 있습니다.
이번 글에서는 SAP ABAP에서 문자열로 된 산술식을 계산하는 방법에 대해 알아보겠습니다.

참고로 ABAP에서 문자 타입 확인은 SAP ABAP에서 문자열 타입을 체크하는 방법에서 확인하실 수 있습니다.

EVAL_FORMULA 함수를 사용하여 문자열로 된 계산식을 계산하기

▼ 아래 ABAP 소스는 EVAL_FORMULA 함수를 사용하여 문자열의 계산 식을 계산해서 결과를 리턴 받는 예제입니다.

DATA: AAA TYPE P DECIMALS 2,BBB TYPE F.
 
CALL FUNCTION ‘EVAL_FORMULA’
  EXPORTING
    FORMULA = ‘(10+10)*10/8.5-7*(5+3)/7’
  IMPORTING
    VALUE = BBB.
    
AAA = BBB.
WRITE AAA. => 출력결과 : 15.53
 

계산된 결과 값은 binary floating point numbers(F)로 리턴 받게 됩니다.
일반적인 Decimal 형식의 숫자로 변환해 주는 로직을 추가해 주었습니다.

EVAL_FORMULA 함수의 매개변수

Function 그룹 : CALC
Function 모듈 : EVAL_FORMULA

SAP ABAP에서 문자열로 된 산술식을 계산하는 방법
  • Import 매개변수에서 FORMULA의 값에 문자열로 된 산술식을 입력해 줍니다.
  • Export 매개변수VALUE에 계산 된 결과 값이 리턴 됩니다.
    리턴하는 계산 값의 Type은 binary floating point numbers (f) 입니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기