안녕하세요 지코딩입니다!
개발을 하다 보면 Dictionary의 데이터를 프로그램 안에서 Select 할 때 값이 다르게 조회되어 Conversion을 따로 해줘야 하는 경우가 있습니다.
주로 금액관련된 필드에서 해당 현상이 일어나고 우리는 ALV의 Field Catalog를 통해 Conversion을 하여 사용자에게 보여줍니다.
그렇다면, 조회프로그램이 아닌 RFC와 같이 타 시스템에 데이터 전송을 하고 싶을 때는 어떻게 변환해야 할까요??
오늘은 이 Conversion에 대해 말해보겠습니다!!
Dictionary의 데이터를 조회할 때 값이 달라지는 경우
오늘의 예시는 COSP_BAK 테이블의 WTG002로 예시를 들겠습니다.
우리는 흔히 Dictionary의 데이터를 확인할 때 SE11에서 확인을 하곤 합니다.
WOG002는 금액 필드로 해당 데이터는 원화 567,800원을 의미합니다.
그런데 데이터를 조회하면 5,678.00이라는 값이 조회됩니다.
왜 이런 차이가 나는 걸까요??
Diconary의 데이터와 차이가 나는 이유
사실 SE11에서 조회되는 데이터는 DB의 데이터를 그대로 보여주는 것이 아닙니다.
SE11에서 해당 데이터 조회하면 567,800으로 보여주지만 DB의 실제 값은 5,678.00이 저장되어 있습니다.
이를 SE11의 조회기능이 데이터를 Conversion 해서 보여줍니다.
그렇기 때문에 데이터를 Select 하면 SE11에서 보여주는 567,800이 아닌 5,678.00을 불러오는 것입니다.
여기서 Conversion의 기준은 바로 도메인입니다.
예시 필드는 해당 도메인을 사용하고 있습니다.
여기서 Routine이 SE11 화면에서 데이터를 Conversion 해주는 역할을 합니다.
Routine을 더블 클릭하면 위와 같은 팝업이 나와 Conversion을 적용시키는 function List를 보여주며 이를 이용해 SE11에서 보이는 화면과 같은 결과를 얻을 수 있습니다.
컨버전 적용 전과 후를 비교하고 싶을 때
Conversion 적용 전과 후의 값을 보고 싶을 때는 SE16N에서 필드를 더블클릭하면 세부조회 창이 뜨고 이 창에서 확인할 수 있습니다!
즐밥!
'SAP > ABAP 生 기초' 카테고리의 다른 글
ABAP Debugging 옵션 (0) | 2023.04.14 |
---|---|
ABAP OFFSET( F1[+off][(len)] ) (0) | 2023.03.14 |
CALL TRANSACTION STANDARD PROGRAM(ex.MM03) (0) | 2023.03.09 |
SAP Data Element 적용 테이블 조회(Where-Used List) (0) | 2023.03.08 |
SAP ABAP 해당 월 마지막 날짜, 첫째 날자 구하기( find the last date of the month in abap ) (0) | 2023.03.02 |