일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- abap #wildcard #와일드카드 #sql #select #where조건
- sap #abap #cl_gui_alv_grid #function code #alv
- abap #sap #sy-index #sy-tabix #syst
- abap #sql #sap #query 실행 순서 #query 작성 순서
- abap #sap #color #row #layout
- abap move corresponding #abap data이동 #abap correspond mapping
- abap #initial #null #abap inital vs null
- abap #sap #layout #layout 설정
- abap #abap_move
- grave #abap #sap #backquote
- abap #sap #conversion #currency #cfield #waers
- abap #동적 where #동적 select
- abap #sap #search hlep #f4 #f4if_int_table_value_request #change column name
- sap #cts #abap #release #merge cts #request no
- sap #abap #data exists #read table #xsdbool #line exists
- abap #sap #conversion #currency #conversion_currency
- abap #sap #sy-datlo #sy-datum #syst #system variable # 시스템변수
- abap #se39 #srepo #sap #development #compare code
- abap #sap #se16h #data #tcode
- abap #sap #free #alv #clear #refresh
- abap #sap #hotspotclick #do_sum
- abap #정규표현식 #regular expression
- open sql #sap #abap #where exists #where not exists
- sap #abap #화폐단위 #sap conversion #inr conversion
- #apostrophe
- Today
- Total
0v0__DEV
[04] 화폐 단위 변경( Currency Conversion Function / Wrtie Currency) 본문
프로그램 개발 중 화폐 단위 변경으로 애먹었다,,,
화폐 단위 변경 관련 함수에 대해 알아보겠다!
[ SAP의 금액 저장, 표시 ]
금액필드의 경우 보통 CURR 타입/ DEC2 자리
아래와 같이 테이블에는 금액과 통화키 필드가 같이 저장이 되고, 통화 키 필드가 적용된 상태로 보인다
![]() |
![]() |
금액을 저장할 때에는 소수점 두자리로 저장을 하고, DISPLAY할 때 화폐를 적용해서 보여주는 것
EX) KRW 10,000원은 SAP TABLE에 저장 시 10,00으로 저장되고, 보여줄 때 다시 X100 해서 10,000이 된다
금액 필드에 대해 사용자가 값을 입력하고 DB에 저장하는 경우,
참조하는 통화 키 필드가 없는 경우 등 여러 경우에
화폐단위로 컨버전하는 펑션을 사용할 수 있다!
1.
BAPI_CURRENCY_CONV_TO_INTERNAL - DB에 저장 ( KRW 10,000 > 10.00 )
max_number_of_digits 는 Maximum Field Length of Internal Domains 로, 최대 23자리
import> amount_external이 bapiccur-bapicurr로 (dec23.4) 맞춰줘야 함
export> 따로 정해진 타입 없음
BAPI_CURRENCY_CONV_TO_EXTERNAL - 화면에 표시 ( KRW 10.00 > 10,000 )
import > 정해진 타입 x export > bapicurr-bapicurr (DEC 23.4)
2.
CURRENCY_AMOUNT_DISPLAY_TO_SAP - DB에 저장 ( KRW 10,000 > 10.00 )
import > wmto_s-amount (DEC 15.4 )
export > wmto_s-amount
CURRENCY_AMOUNT_SAP_TO_DISPLAY - 화면에 표시 ( KRW 10.00 > 10,000 )
import > wmto_s-amount (DEC 15.4 )
export > wmto_s-amount
3. 텍스트로 된 금액을 통화 단위로 변환
CURRENCY_AMOUNT_SAP_TO_IDOC
CURRENCY_AMOUNT_IDOC_TO_SAP
4. WRITE문으로 CURR 변경하기 :
바로 위 펑션(CURRENCY_AMOUNT_IDOC_TO_SAP와 유사, 화폐단위 적용 > 화폐단위 적용된 C 출력)
1) 문법
WRITE (A 금액) CURRENCY (B 변환하려는 화폐단위) to (C 변환된 금액) .
2-1) C가 char 형식이 아니면, 액티브 안됨

2-2) A가 금액 필드가 아니라 char 필드일 경우 : 변환 안됨
2-3) A가 소수점 2자리 초과일 때 : 변환 제대로 안됨 (소수점이 두개만 옮겨져야 하는데, 네개가 뒤로 가버림)
2-4) A가 소수점 2자리일 때 : 정상 변환 가능!
+ 참고)
TCURX( Decimal Places in Currencies ) 테이블에는 통화별 소수점 위치에 대한 정보가 담겨있음!
파운드, 달러 등은 표준(소수점 2자리)이라서 데이터가 저장되어 있지 않음
표준이 dec 2 이기 때문에, KRW는 금액 X 10-² 해서 보이게 됨!
끄으읕!!
'SAP BASIC' 카테고리의 다른 글
[06] ABAP Debugging Tip (1) | 2024.08.08 |
---|---|
[05] ABAL SQL 작성 순서 & 실행 순서 (0) | 2024.08.05 |
[03] ALV 행 색깔 변경하기 ( change row color in alv ) (1) | 2024.07.18 |
[02] SY-TABIX 와 SY-INDEX ( what is the difference between sy-tabix and sy-index ) (2) | 2024.07.15 |
[01] 자주 사용하는 정규표현식 ( Regular Expression in abap ) (1) | 2024.07.10 |