SAP ABAP 이외의 개발언어를 사용하여 테이블을 만들 때는 직접 DBMS에 접속하여 Craate 쿼리를 사용하여 테이블을 만들곤 하였다.
필자도 이전에는 Olacle, MS SQL 등의 DBMS에 접속하여 테이블을 생성하였는데 SAP 개발을 하면서부터
Tool을 이용해 테이블 생성하려다 보니 번거롭고 타이핑양 늘어나는 단점이 있었다.
하지만 권한의 분리와 초보자들의 쿼리 하나로 인한 실수를 줄이는 데는 Tool 이용한 방식도 좋겠다는 생각이다.
SAP Hana 버전에 가면 많은 변화가 있다. 이 또한 다뤄볼 시간이 있겠지만 ABAP의 향기가 점점 흐려지는 거 같아 아쉬움이 느껴지기도 한다.
테이블 생성 - 명칭
테이블의 생성을 위해서는 여러 방법이 있으나 필자는 주 개발 Tcode인 SE80 기준으로 설명을 하겠다.
Dictionary Object에서 우클릭을 하고 Database Table을 선택하자.
원하는 테이블명을 넣고 확인 버튼을 누른다. 명명법은 각 프로젝트의 기준을 따르도록 하자
테이블 생성을 위해 내역을 과 기본 설정 항목을 넣는다.
Delivery Class : 테이블 데이터의 전송 제어를 위한 세팅.
A : 각시스템에서 데이터를 직접 제어하는 경우, 일반적으로 사용됨 Customer Table 이라 한다.
C : 데이터를 CTS 가능하게하여 개발기,QA,운영기 등이 동일한 데이타를 가져야할때 사용됨 Customizing Table이라 한다.
Data Brow./Table View Maint. : 테이블의 데이타를 유지보수 툴 들을 이용 직접 허용할지 설정한다.
세팅 별로 아래의 프로그램으로 데이터 접근이 가능하다.
테이블 생성 - 필드
필드명과 사용할 data element를 넣거나 Pre-defined data type을 사용하여 구성할 수 있다.
필드명은 Standard에서 사용하는 필드와 같다면 같은 이름을 사용하여 데이터 연결성을 표시하는 것도 좋다.
Key : Key 가 찍힌 필드의 조합으로는 같은 데이터가 존재할 수 없는, 즉 Unique 한 값을 같는 필드의 조합을 이야기 한다.
Initial Values : 빈 값이 들어올 경우 선언된 데이터형의 기본값이 들어가게 된다. Not Null의 효과가 나타나게 된다. NUMC(3) Type이면 '000' 이 테이블에 들어가 있을 것이다.
CBO(Customer Bolt On) 테이블을 만들 때 MANDT라는 클라이언트 필드를 기본으로 넣는다. 이는 한시스 템 안에서
클라이언트 번호를 나누어 마치 테이블이 여러 개 인 것같이 데이터를 격리하여 사용할 때 필요하다.
ZTMP001 테이블은 하나이지만 , Clint 100, 110, 120 등 어떤 Client에 Logon 했는지에 따라 해당 데이터만 불려지는 것이다. Client Independent 한 테이블이 필요할 때도 있지만 개발자인 우리는 잠시 잊어버리자. MANDT는 꼭 넣어주자.
(CBO는 보통 SAP가 제공하지 않은 기업 고유로 생성한 Object을 총칭한다, 반대로 SAP가 제공한 Object는 Standard 라한다.)
Pre-defined type 버튼을 누르면 직접 Data Type과 길이, 명칭을 넣을 수 있다.
이렇게 만 들 경 우 테이블을 만들기는 쉬우나, 다중언어 지원 등 Data Element의 이점이 사라지므로 손이 많이 가도
Data Element사용을 권한다.
테이블 생성 - Activation
테이블 이름을 넣고 저장을 누르면 CTS(Change and Transport System) 번호를 생성하는 화면이 나타난다 여기서 해당 Object이 속할 개발 클래스를 지정하고 CTS번호를 생성하게 된다. 이 CTS 번호를 연계된 타 시스템으로 이관하여 QA기, 운영기에 프로그램을 전송할 수 있다. CTS 또한 다시 다룰기회가 있을 것이다.
필자는 Test 이므로 타 시스템으로 이관이 불가능한 Local object 버튼을 눌러 Local패키지에 테이블을 생성할 것이다.
나 혼자 테스트하는 경우 정식 CTS 가 필요 없으므로 Local로 CTS를 생성하자. Local 영역은 Log On 한 ID 별로 생성된다.
보통 타 언어에서는 컴파일이라는 과정을 거쳐 배포를 하게 되는데 ABAP의 경우 Activation(활성화)이라는 작업으로 컴파일을 하게 된다. 혹자는 촛불 내가 볼 때는 성냥이다.
이것을 누르면 아래와 같은 경고 문구가 뜨면서 활성화가 되지 않는다. Technical Setting이라는 것을 해줘야 한다.
Technical Setting : 테이블의 범주, Size 세팅 Delete Update의 DB log를 쌓을지의 여부를 세팅한다. 몇 가지 중요한 것만 살펴보자.
Data Class : 테이블이 논리적으로 저장되는 데이터베이스의 물리적 영역 (Oracle의 경우 TABLESPACE)을 정의한다. 데이터의 건수가 변경이 얼마나 자주 일어나는지 등으로 물리적으로 유리한 DB위치에 할당하기 위한 선택이다. 현대에는 큰 의미는 없다.
APPL0 : Master data, transparent tables
APPL1 : Transaction data, transparent tables
APPL2 : Organization and customizing
Size Category : 저장 가능한 데이터 건수를 지정하여 DBMS 가 고정 공간을 얼마나 가져갈지 계산한다. 지정한 크기를 넘는다고 데이터가 저장 안 되는 것은 아니다. 즉 크게 중요하지 않다. 넉넉히 선택하자.
Log data changes : Delete Update의 DB log를 쌓을지의 여부를 세팅한다.
자 이제 기본적인 세팅은 끝이 났다. DMBTR, MENGE필드 때문에 여전히 활성화는 되지 않겠지만
두 필드를 제거하면 활성화가 가능할 것이다.
다음 편은 테이블에 대한 심화학습으로 여러 세팅 사항과 금액, 수량 필드에 대하여 살펴보려 한다.
이상으로 Table에 대한 기본설명을 마치겠습니다.
긴 글 읽어 주셔서 감사합니다.
'ABAP' 카테고리의 다른 글
[SAP ABAP 강좌 6] 테이블 (Table) - Search Help (0) | 2020.12.01 |
---|---|
[SAP ABAP 강좌 5] 테이블 (Table) - Check Table (0) | 2020.11.29 |
[SAP ABAP 강좌 4] 테이블 (Table) - Currency/Quantity Fields탭 (6) | 2020.11.28 |
[SAP ABAP 강좌 2] 데이타 엘리먼트 (Data Element) (0) | 2020.11.25 |
[SAP ABAP 강좌 1] 도메인 (Domain) (0) | 2020.11.24 |
최근댓글