본문 바로가기

SAP

SAP 엑셀 업로드 프로그램 사용 시 INR 금액 100배로 반영될 때 처리 방법

반응형

SAP 엑셀 업로드 시 INR 금액이 100배로 반영되는 문제와 처리 방법

문제 요약

SAP 시스템에서 엑셀을 통해 금액 데이터를 업로드할 때, INR(인도 루피) 금액이 실제 금액의 100배로 반영되는 현상은 통화 소수점(Decimal Place) 설정 또는 데이터 변환 로직의 문제에서 자주 발생합니다. 이는 특히 SAP의 통화 필드 처리 방식과 엑셀 데이터의 소수점 표현 차이에서 비롯됩니다.

 

원인 분석

  • SAP에서는 통화별로 소수점 자릿수(Decimal Place)를 관리합니다. 예를 들어, KRW(한국 원)는 소수점이 없고, INR은 2자리 소수점이 기본입니다.
  • 엑셀에서 100.00 INR을 업로드하면, SAP 내부에서는 이를 10000(100.00 × 100)으로 저장할 수 있습니다.
  • 반대로, SAP에서 데이터를 엑셀로 내보낼 때도 100배 또는 1/100로 보이는 현상이 발생할 수 있습니다 234.

 

처리 방법

1. 통화 소수점 설정 확인

  • SAP에서 사용 중인 통화(INR)의 소수점 설정(TCURX 테이블 등)을 확인합니다.
  • INR은 기본적으로 소수점 2자리(0.01 단위)로 설정되어 있어야 하며, 만약 설정이 잘못되어 있으면 올바르게 수정해야 합니다.

2. 데이터 변환 함수 적용

  • 엑셀 업로드 프로그램(예: ABAP, ALV 등)에서 금액 필드를 SAP 내부 형식에 맞게 변환하는 함수 사용이 필요합니다.
  • 대표적으로 BAPI_CURRENCY_CONV_TO_INTERNAL 함수를 사용하여 엑셀의 금액 데이터를 SAP 내부 형식으로 변환할 수 있습니다.
 
abap
CALL FUNCTION 'BAPI_CURRENCY_CONV_TO_INTERNAL'
  EXPORTING
   CURRENCY = 'INR'
   AMOUNT_EXTERNAL = 외부_금액
   MAX_NUMBER_OF_DIGITS = 15
  IMPORTING
    AMOUNT_INTERNAL = 내부_금액.
  • 이 과정을 통해 엑셀의 100.00 INR이 SAP 내부적으로 10000이 아닌 100으로 저장되도록 할 수 있습니다.

3. 필드 카탈로그 및 데이터 매핑 점검

  • ALV나 기타 리포트에서 금액 필드의 통화키 연결 및 필드 카탈로그 설정이 올바른지 점검합니다.
  • 필드 카탈로그에서 통화 필드와 금액 필드가 올바르게 매핑되어야 합니다. 잘못 매핑 시 100배, 1/100 등의 값이 나타날 수 있습니다.

4. 데이터 업로드/다운로드 로직 수정

  • 엑셀 업로드 시 금액 데이터를 100으로 나누거나, 다운로드 시 100을 곱하는 임시 로직을 추가할 수 있습니다.
  • 그러나 이는 임시방편이므로, 근본적으로는 통화 소수점 설정과 변환 함수를 통해 해결하는 것이 바람직합니다.

요약

  • SAP 엑셀 업로드 프로그램에서 INR 금액이 100배로 반영되는 문제는 통화 소수점 설정과 데이터 변환 미흡에서 발생합니다.
  • BAPI_CURRENCY_CONV_TO_INTERNAL 함수 등을 사용해 금액을 올바르게 변환하고, 통화 소수점 설정을 점검해야 합니다.
  • 필드 카탈로그 및 데이터 매핑도 반드시 확인해야 하며, 임시로 나누기/곱하기 로직을 추가할 수 있지만, 근본 원인 해결이 우선입니다.
반응형