메모/SAP

SAP : ABAP Dictionary

해리누나 2022. 6. 29. 03:29
728x90
반응형

ABAP Dictionary는 SAP의 모든 데이터 정의를 중앙에서 관리한다.

Dictionary에 생성된 모든 테이블 및 기타 데이터 요소는 전체 SAP 시스템 내에서 사용이 가능하다.

 

Transaction Code : se11

 

어떤 데이터 요소들이 있는지 확인해 보면,

이미 시스템 내에서 존재하고 있는 Datenelement 들

 

시스템 내 존재하고 있으니, SAP 내에서 어디서든 사용이 가능하다. 예를 들어 내 report 내에서의 사용도 가능.

데이터 요소 Matnr에 대해 알아보자.

Datenelemt인 Matnr이 Length 40 에 CHAR형을 가지는 같은 이름의 도메인을 사용하고 있음이 보인다.

도메인은 데이터 유형(Datentyp)과 그 길이(Length)가 정의되는 필드의 기술 사양이라 보면 된다.

 

도메인 Matnr에 대해 찾아보자.

앞서 말했듯 도메인은 Datentyp과 Length를 가진 일종의 기술적인 속성을 정의하는 개체라 생각하면 된다.

 

이 도메인이 어디에 사용되고 있는지 궁금할 땐 저 위의 버튼을 클릭해보면 된다.

 

몇가지 옵션이 뜨는데, 이 도메인이 어떤 데이터요소들에서 쓰이는지, 혹은 어떤 클래스에서 쓰이는지 선택해서 보면 된다.

 

예시로 556개의 데이터요소들에서 Matnr 도메인이 쓰이고 있음을 알 수 있다.

 

다시 Matnr 데이터요소로 돌아와서 예로, Length 40을 원하지 않고 다른 길이를 원한다면, 이를 충족하는 Datenelemt를 만들면 된다.

데이터 요소 생성하기

 

이미 만들어진 도메인을 사용할 수도 있지만, ABAP Dictionary에 있는 자료형을 직접 사용할 수도 있다.

predefined typ 을 사용해 데이터요소 만들기

 

15 Length 의 char형의 도메인을 사용하고 싶다면, 만들어 주면 된다.

 

 

(SAP에서 $TMP 패키지의 목적은 프로그래머가 다른 시스템으로 절대 전송되지 않는 로컬 개체를 만들기 위함이다.)

개체 생성 후 Aktivieren 해주는 것을 잊지 말자.

 

이제 만든 도메인을 만들고 싶던 datenelemet 인 Matnr에 사용해 보자.

 

도메인을 사용해 데이터 요소 생성하기

 

생성 후 도메인 만들었을 때 처럼, 로칼로 저장하기를 누르면 field label을 채워주라는 창이 뜬다.

 

 

채워주고 다시 저장하고 활성화 시켜 주면 된다.

.

.

.

이제 만든 도메인과 데이터 요소를 지난번 쓴 코드에서( https://bruders.tistory.com/22) 직접 사용해 보자.

 

 

이렇게 데이터요소뿐만이 아니라 Abap Dictionary 내에 테이블이나 구조체를 생성해 사용할 수도 있다.

구조체 만들기

로컬로 저장하고 또 활성화를 시켜주면 된다.

다시 리포트로 돌아와서 딕셔너리에 만든 구조체를 사용해보자.

 

리포트 내 로컬로 만든 ty_matdata 구조체 대신 abap dictionary 에 생성해둔 구조체 'zmy_mat_data' 를 사용.

 

테이블도 생성해서 사용해보면,...

테이블 생성

 

zmy_mat_data_tt 가 이미 테이블 타입이니 table of 를 써주지 않아도 된다.

 

위와 같았던 코드가

 

이처럼 짧아졌다.

 

 

 

출처:

내용: https://www.youtube.com/watch?v=Zr0P7hAhSsU 

728x90
반응형