SAP 시스템에서 사용하는 데이터베이스 테이블은 ABAP Dictionary(SE11)에서 생성 및 유지 보수를 하게 됩니다.
Database Table을 새로 생성할 때 테이블의 필드(Field)를 정의하게 됩니다.
일반적인 테이블의 ‘컬럼(Column)‘을 SAP 시스템에서는 ‘필드(Field)‘라는 용어로 표현하고 있습니다.
테이블의 필드를 정의할 때 주로 Data element(데이터 요소)를 지정해서 만들게 됩니다. 물론 내장 유형을 사용해서 데이터 유형과 길이, 내역을 직접 입력해서 만들기도 합니다.
또 Data element는 Elementary Type에 Domain(도메인)을 지정해서 만들게 됩니다.
ABAP Dictionary에서 만든 테이블의 필드 중에 데이터 유형이 “CHAR“인 텍스트 필드의 경우 데이터가 저장될 때 자동으로 대문자로 변환되어 저장됩니다.
SAP 시스템의 기본 컨셉이 텍스트는 모두 대문자로 처리하는 것으로 된 듯합니다.
하지만 테이블의 텍스트 필드 중에는 대소문자를 구분해서 저장해야 하는 경우가 있습니다.
영업 모듈에서 고객이 요구하는 사항을 라벨이나 스티커로 인쇄해서 제품에 부착해야 하는 경우 고객은 대소문자를 구분한 텍스트를 인쇄해 주길 원합니다. 기타 다양한 필요성에 따라 텍스트의 대소문자 구분이 필요한 경우가 많이 생길 수 있습니다.
이번 글에서는 ABAP Dictionary 텍스트 필드(CHAR) 소문자 입력 방법(데이터 대소문자 구분)에 대해 알아보겠습니다.
ABAP Dictionary 텍스트 필드 대소문자 구분 입력
▼ 아래 화면은 ABAP Dictionary(SE11)에서 테이블의 엔트리를 조회한 화면입니다.
모든 텍스트가 대문자로 저장된 “ZTEXT1” 필드와 대소문자를 구분하여 텍스트가 저장된 “ZTEXT2” 필드를 확인해 볼 수 있습니다.
▼ 테이블의 필드(Fields) 정의를 보면 아래 화면과 같습니다.
- ZTEXT1 필드는 내장 유형을 사용하여 데이타 유형, 길이, 내역을 직접 입력해서 만든 필드입니다.
- ZTEXT2 필드는 ‘YTMP’라는 Data element(데이터 요소)를 지정해서 만든 필드입니다.
‘YTMP’는 다시 ‘YTMP’라는 도메인으로 만든 Data element 입니다.
▼ 아래는 도메인(Domain) ‘YTMP’ 조회 화면입니다.
- Definition 탭의 Output Characteristics 옵션 중에 ‘Lower Case‘가 체크가 된 것을 확인할 수 있습니다.
- SAP 버전에 따라 ‘Case-sensitive‘ 로 표시되기도 합니다.
마무리
SAP 시스템에서 만들진 대부분의 도메인(Domain)은 Lower Case(Case-sensitive)를 체크하지 않고 만들어져 있습니다.
따라서 Lower Case가 체크 되지 않는 도메인(Domain)을 사용한 Data element를 지정한 테이블 필드의 데이터 또한 자동으로 대문자로 저장되어 집니다.
앞에서도 언급했지만 Data element 지정 없이 직접 데이터 유형을 지정해도 해당 필드의 데이터는 기본적으로 대문자로 저장되어 집니다.
테이블의 텍스트 필드 데이터를 대소문자로 구분하여 저장할 경우 Lower Case(Case-sensitive)를 체크한 도메인(Domain)을 먼저 만들고, 해당 도메인으로 Data Element를 만들고, 이렇게 만들어진 Data Element를 지정해서 필드를 만들어 주어야 합니다.
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
♥ 이 글이 도움이 되었기를 바랍니다. ^-^
댓글로 흔적을 남겨 주세요.