본문 바로가기

ABAP 프로그래밍 개념/ABAP 프로그래밍 Concept

ABAP Programming Concept : Domains

도메인(Domain)은 필드의 기술적 속성(Technical attributes)을 나타냅니다. Domain의 최우선 기능은 Value Range를 정의하는 것으로 이를 통해 도메인에 관련된 필드에 유효한 값을 설정할 수 있습니다. 

그러나, 만약 기술적으로 같은 다수의 data elements를 만들 계획이 있다면, 같은 도메인을 사용함으로써 data element의 같은 기술적 속성을 이끌어 낼 수 있습니다.

이것은 다수의 Data Element의 기술적 속성을 중앙통제로서 관리할 수 있도록 해줍니다. 
즉, 기술적 속성은 도메인에서 관리하기 때문에, 도메인만 한번 바꿔주면 도메인을 사용 하는 모든 Data Element의 기술적 속성이 바뀐다는 것을 의미합니다.
이것은 Predefined Elementary Data Type이 선택됬을 때, 기술적 속성들을 유지보수하기 위하여 Data Element 각각을 바꾸는 것에 대한 대안이 될 수 있습니다.

필드는 Domain을 직접적으로 사용,언급할 수 없습니다(DATA, TYPES 구문에서 Domain을 통해서 데이터 선언을 할수는 없습니다)
오직, 도메인이 Data Element에 사용되없다면, 그 Data Element를 통해 원하는 Domain의 속성을 가져올 수 있습니다.
다른말로 하면, 개발자는 항상 Data Element에 Domain을 사용해야 된다는 의미입니다.

아래 그림은 이러한 관계를 묘사하고 있습니다
Field1은 Data Element1을 언급하고 있습니다, 반면, Field2와 Field3는 Data Element2를 언급하고 있습니다. Data Element1과 Data Element2는 모두 같은 도메인을 사용하기 때문에, 같은 기술적 속성을 가질 것입니다.
Field2와 Field3가 함축하고 있는 것은 의미적으로(semantically)나 기술적으로나 같다는 뜻입니다. 반면, Feidl1은 의미적으로는 Field2와 Field3와 다르지만 기술적으로는 Field2, FIeld3와 같다는 뜻입니다.

예를 들어, 하나의 판매오더와 대금청구문서는 기술적으로는 10자리의 Character 필드로서 같을 순 있습니다. 그러나, 판매오더와 대금청무문서는 의미적으로 다릅니다(목적이 다르다) 이러한 경우에서, 판매오더와 대금청구문서는 같은 도메인을 사용하지만, 구분된 각각의 Data Element를 사용했다는 것입니다.

또한 도메인 단계에서 Conversion Routine을 걸어서 도메인이 언급된 필드의 internal data format과 external data format 사이의 자동적인 컨버젼(변환)을 할 수 있습니다.

이러한 Domain을 만들 때는 top-down 접근과 bottom-up 접근을 할 수 있습니다. 
이 말은 도메인을 먼저 각각 만들어서 Data Element에 사용하거나 Data Element를 만들면서 도메인을 만들 수 있다는 뜻입니다.

Bottom-up 접근 방식을 통해서 Domain을 만들고, 이 만든 도메인을 이전에 만들었던 ZE_ELEMENT에 사용해보겠습니다.
Domain과 Data Element는 그들 자신의 namespaces를 가지고 있기 때문에, 같은 이름을 Domain과 Data Element에 사용할 수 있습니다.
(즉, Domain과 Data Element는 각자의 이름을 저장하는 공간이 있기 떄문에, 같은 이름을 가지고 있더라고 문제가 없다는 뜻입니다)

그렇지만, 같은 이름이 아닌 구분지어서 ZD_DOMAIN이라는 이름의 도메인을 만들어 보겠습니다. ABAP Data Dictionary에서 Domain을 만드는 절차는 다음과 같습니다.

1. ABAP Data Dictionary 초기 화면에서, Domain 라디오 버튼을 누르고, 도메인의 이름을 입력합니다. 그리고 Create 버튼을 클릭합니다. Domain는 또한 repository objects이기 때문에, customer namespace안에 존재합니다. 


2. Domain을 위한 Short Description을 입력하고, 이 Short Description은 실제 사용자(end-user)에게 보여지지 않습니다. 그것은 F4 Help를 사용한 도메인을 위한 검색 때 보여주고, 그것은 당신의 Domain 목적을 이해를 위해 다른 개발자에게 도움이 됩니다.

3. Data type을 선택하기 위해 Data Type 필드에서 F4 Help를 사용하여 No.Characters 필드에 값을 입력합니다. 이 No.Characters 필드 값을 통해 필드 길이를 정의할 수 있습니다. 부가적으로 Decimal Places 필드에 필요한경우 소숫점을 입력할 수 있습니다.

4. 또한, Output Length, Conversion Routine, 그리고 이 도메인을 사용하는 화면 필드 값을 자동으로 대문자 변환을 막는 지시자인(Lower Case) 등을 Output Characteristics에서 사용할 수 있습니다.

5. 도메인을 활성화하여, 이 도메인을 ZE_ELEMENT에 사용합니. SE11에서 Data Element를 키고 Elementary Type 라디오 버튼 아래에 있는 Domain 라디오 버튼을 선택하고 도메인을 입력해줍니다.

6. Domain을 입력하면, 시스템이 자동으로 Data Type과 Length를 입력하는 것을 알 수 있습니다. 만약 도메인 입력후에도 시스템이 Data Type과 Length를 자동으로 띄워주지 않는다면, 도메인이 존재하지 않는다는 것을 의미합니다. 해당 경우에는 시스템이 No active domain 도메인명 available이라는 메시지를 띄워줄 것입니다. 이러한 경우에는 입력한 도메인을 더블클릭하면 도메인을 생성할 수 있습니다(top-down approach)

 

반응형