부가비용(프레잇) 같이 작은 금액의 경우
팩터 = 환율
CURRENCY_AMOUNT_SAP_TO_IDOC
CURRENCY_AMOUNT_IDOC_TO_SAP :
인터페이스, 폼 등 에서 형식 맞출 떄 사용
데시멀 필드 이슈에 대한 처리
1. 기존 화폐(소수점2)
큰금액 상관 X
소액 ->절삭 또는 반올림 문제 발생
2. 기존화폐 -> 익스터널 화폐 변환
CURRENCY_AMOUNT_SAP_TO_IDOC
큰 CHar
3. 기준일 환률 * 익스터널 화폐 = 버림이 적은 화폐
4. 익스터널 화폐 -> sap(인터널) 화폐
"1. Get Convert Rate (FM : READ_EXCHANGE_RATE)
IF RATE IS INITIAL.
PERFORM GET_CONVERT_RATE
USING DATE
BASE_CURRENCY
SOURCE_CURRENCY
SOURCE_AMOUNT
TARGET_CURRENCY
TYPE_OF_RATE
EXACT_DATE
CHANGING TARGET_RATE.
ELSE.
TARGET_RATE = RATE.
ENDIF.
"2. Get Source Amount Of External Format
DATA: SOURCE_AMOUNT_IDOC TYPE C LENGTH 30,
TARGET_AMOUNT_IDOC TYPE C LENGTH 30.
CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_IDOC'
EXPORTING
CURRENCY = SOURCE_CURRENCY
SAP_AMOUNT = SOURCE_AMOUNT
IMPORTING
IDOC_AMOUNT = SOURCE_AMOUNT_IDOC.
"3. Calculate Amount
TARGET_AMOUNT_IDOC = SOURCE_AMOUNT_IDOC * TARGET_RATE.
"4. Get Target Amount Of Internal Format
CALL FUNCTION 'CURRENCY_AMOUNT_IDOC_TO_SAP'
EXPORTING
CURRENCY = TARGET_CURRENCY
IDOC_AMOUNT = TARGET_AMOUNT_IDOC
IMPORTING
SAP_AMOUNT = TARGET_AMOUNT.
'SAP·ABAP > ABAP' 카테고리의 다른 글
| Pass-by-Value vs Pass-by-Reference 이해하기 (0) | 2025.11.10 |
|---|---|
| ABAP 인터널테이블의 3가지 종류 가볍게 정리 (0) | 2025.11.07 |
| ABAP 신문법 - Reduce (0) | 2025.11.05 |
| ABAP 신문법 - Move (0) | 2025.11.05 |
| ABAP 신문법 - 데이터선언, ALPHA Conversion, Currency, SIGN, VALUE #구문, (0) | 2025.11.05 |