반응형

먼저 ABAP Table을 만들기 위해서는 

 

T-Code : SE11로 들어간다.

 

SE11 에서 Table 만드는 방법

 

Database table에 Table이름을 입력하고 Create 버튼을 누르면 Table 생성 화면으로 넘어간다.

 

먼저 Delivery Class를 설정해야 하는데, 

Delivery Class란 테이블 데이터의 전송 제어를 위한 세팅 이다.

Delivery Class 종류

 

들어갈 수 있는 값으로는 A,C,L,G,E,S,W 이렇게 7가지가 있는데, 

설명 읽어봐도 알 수 있듯이 일반 사용자가 사용할 수 있는 케이스는 A와 C입니다.

 

A : 각 시스템에서 데이터를 직접 제어하는 경우로 일반적으로 사용되는 Customer Table.

C : 데이터를 CTS가능하게 하여 개발, QA, 운영 등 동일한 데이터를 가져야 할 때 사용하는 Customer Table.

 

일반적으로 A를 선택하고 넘어가시면 됩니다.

 

Data Browser / Table view Editing

 

테이블의 데이터를 유지보수 툴 이용 접근 허용 여부를 선택해주는 것이다.

 

Display/Maintenance Allowed with Restrictions : 제한적으로 Display와 Maintenance 를 허용하는 것

                                                                                   허용되는 T-code는 SE16과 SE54 이며 / 데이터 수정 및 SM30은 불가

 

Dsiplay/Maintenance Allowed :  모든 기능을 허용한다. 이 설정이 되어있으면 SE16N에서 데이터 수정이 가능하다.

 

Display/Maintenance Not Allowed : 모든 기능을 허용 하지 않는다.

 

Only display allowed : Display 접근만 가능.

 

보통 개발중엔 Allowed로 하고 나중에 Restiction으로 바꿔서 허용하는 경우가 많다.

 

Fileds 탭

 

Fields Tab에서는 테이블에 들어갈 필드와 타입을 설정해주는 곳이다.

이미 정의되어있는 Data element를 넣어주고 엔터를 눌러주면 데이터 타입이 들어간다.

 

또한, 키를 설정하고 싶으면 key부분에 체크박스를 하여 선택해주면 테이블의 키값이 된다.

Remark 같은 data타입 없이 직접 타입을 주고싶으면 Built-In Type 버튼을 눌르면 입력이 가능하다.

Built-In Type 버튼 눌렀을 때

 

Built-In Type 버튼을 누르면 Data Element로 설정된 부분은 수정불가로 변하고

Data Type을 입력할 수 있는 필드들은 수정이 가능하도록 바뀐 것을 볼 수 있다.

 

또한, 해당 필드에 Search Help를 연동 시키고 싶으면 아래와 같이 필드를 선택하고

Search Help 버튼을 눌러서 Search Help 이름을 반영해 주면 된다.

Search Help 버튼 클릭

 

그다음 만들 때마다 세팅을 어떻게 줘야 할지 모르는 기술적 세팅(Technical Settings) 을 해야한다.

Technical Settings 버튼

Technical Setting이란 테이블의 범주, Size 세팅,

버퍼사용여부, DB Log를 쌓을지 여부 세팅하는 곳이다.

 

Data Class는 필수 선택이다.

 

먼저 필수 항목인 Data Class를 알아보자.

Data Class 에 들어갈 수 있는 값

 

Data Class : 데이터의 건수가 변경이 얼마나 자주 일어나는지에 따라 물리적 영역 정의다.

-. APPL0 (Master Data) : 거의 변경이 되지 않는 데이터 (ex 주소 )

-. APPL1 (Transaction Data) : 변경이 자주 되는 데이터 (ex 거래 )

-. APPL2 (Organization data) : 변경이 없는 데이터        (ex 국가 )

 

해당 테이블의 성격에 따라 위 3가지 중 하나를 선택하면 된다. 

보통 개발 할때 APPL0과 APPL1을 많이 사용하게 된다.

 

다음은 Data Class 아래있는 항목인 Size Category는 말 그대로 저장가능한 데이터 건수를

지정하여 공간을 얼마나 가져갈지 계산한다.

넉넉하게 설정하되 너무 크게 잡아 데이터베이스 공간 낭비가 너무 되지 않도록 사이즈를 정한다.

 

Table 의 Data Size 설정

 

다음은 Buffering 설정을 해야한다.

다음은 Buffering 설정을 해야한다.

Buffering 선택 리스트

 

Buffering Not Allowed : 버퍼를 비활성화. ( 트랜젝션이 많이 안일어나는 테이블 일경우 선택 )

Buffering allowed but switched off : 트랜젝션 상황에 따라 버퍼를 활성화/비활성화 한다. 

Buffering Activated : 버퍼 활성화 ( 데이터에 접근이 많은 경우 선택 ) 

 

주로 CBO테이블일 경우 데이터 접근이 많지 않기에 메모리 영역을 확보하여

Performance를 고려하는 방법으로 버퍼를 허용안하고 만드는 경우가 많습니다.

 

Buffering Type 설정은 버퍼를 사용할 경우 선택하는 케이스로

Not Allowed 선택 했을 시 체크할 필요 없습니다.

 

Buffering Type 설정

 

Single records buffered 는 말그대로 1개 를 버퍼에 저장한다는 것입니다.

예를들어 select single * from ytest_t001 where belnr = '450000001' 이런 식으로 했을 때 1개의 데이터를 버퍼에 저장.

 

Generic Area Buffered는 Key값 기준 일치하는 데이터 모두 버퍼링.

Fully Buffered는 모든 레코드를 버퍼링 한다는 의미입니다.

 

DB Log 설정

 

Log data Changed 는 Delete Update의 DB Log를 쌓을지의 여부 세팅 값입니다.

 

이렇게 테이블 생성 하는 법을 알아봤는데,

개발 할 때 기술적 세팅은 Delivery Class와 Size 세팅만하고

나머지 세팅은 건드는 일이 없을 확률이 큽니다.

 

Table 세팅하는 방법에 대해서 알아봤습니다.

반응형
반응형

 

Class 내부에 Method를 만들어보고 Attribute와 Method의 Parameter가 어떠한 차이가 있는지 확인.

 

클래스 생성 화면

 

 클래스 생성에서 Attribute에 Method Variable인 MV_NUM를 Static Attribute / Public 을 설정해서 저장

 

Level 이란 클래스가 해당 요소를 사용하기 위한 주체가 될 수 있는지 결정

Level 설정 하는 화면

 

Level에는 Instance Atrribute와 Static Attribute그리고 Constant 값을 가질 수 있다.

 

1. Instace Atrribute : 클래스를 이용하여 인스턴스화한 객체마다 부여되는 속성으로 보면된다.

 

2. Static Attribute : 클래스 자체 속성으로 클래스를 이용하여 인스턴스화한 객체에 상속되는 속성.

                                 즉, 해당 클래스로 인스턴스화된 객체들은 Static 속성의 값이 같다.

 

3. Constant : 특정 변수를 고정시켜서 그 값을 사용할 수 있다. (Attribute 에만 존재하고 Method는 존재하지 않음)

 

Visibility 설정 하는 화면

 

Visibility는 보안 수위를 설정하는 기능으로 Public과 Protected 그리고 Private 값이 들어올 수 있다.

 

1. Public : 클래스 외부에서도 접근 가능으로 클래스를 호출해 사용하는 프로그램 등 에서 어디서든 접근 할 수 있고, 자식 클래스에 상속이 된다.

 

2. Protected : 클래스 내부에서만 접근 가능으로 클래스 관리 툴에서만 접근할 수 있고, 자식 클래스에 상속된다

 

3. Private : 클래스 내부에서만 접근 가능으로 클래스 관리 툴에서만 접근할 수 있고, 자식 클래스에 상속되지 않는다.

 

Method 입력 Tab

 

 Methods에 2개 Method를 작성합니다. 1개는 변수2개를 받아 서로 빼는 method고

다른 1개는 변수 1개를 받아 제곱하는 method를 만들어 보자.

 

위에 그림에서 method를 마우스로 클릭하고 Parameters 버튼을 클릭하면 다음과 같이 변수 입력하는 창이 나옵니다.

 

Method에 Import, Export 파라미터 설정 화면

 

 Method 2개에 importing 변수와 exporting 변수를 입력해주고  Sourcecode 버튼을 눌러 코드를 작성하면 된다.

 

GET_MINUS / GET_SQUARE Method 코드

 

 

Sourcecode를 다음과 같이 작성하고 프로그램에서 Method를 어떻게 호출하여 사용하는지와

Class의 Attribute에 작성된 MV_NUM의 값이 어떻게 되는지 추적 해본다.

 

 

같은 프로그램내에서 방금만든 클래스의 Method를 호출

디버깅 화면

 

기본적으로 Method를 호출하는 방법은

CALL METHOD class=>method명 으로 사용하면 된다.

 

 동적으로 Method를 호출하여 사용가능하며 동적 호출은

class=>method명( f ) 로 사용하면 되고 dynamic 기호인 ( )를 꼭 사용해야 된다.

 

지금 만든 GET_MINUS 나 GET_SQUARE는 Static method이기 때문에 => 이 기호를 사용하지만

Instance method는 클래스를 인스턴스화하여 사용하기 때문에 -> 이 기호를 사용해야 한다.

 

 

그러면 위에 작성한 코드에서 Method변수와 Attribute (MV_NUM)이 어떻게 되는지 디버깅타면서 알아보자.

 

GET_MINUS Method 내부

 

GET_MINUS method를 타고 Importing 값과 Exporting값이 적용되었고 MV_NUM은 91로 저장되었다.

 

GET_MINUS Method 나온 후

 

GET_SQUARE method로 들어가기 전에 exporting 값이 lv_result에 할당이 되었고,

이제 get_square method에 들어갔을 때 MV_NUM은 어떤지 보자.

 

GET_SQUARE Method 내부

 

ET_SQUARE Method에 들어갔을 때 lv_num1,lv_num2,ev_result 값은 리셋으로 시작되지만

Class Attribute의 값(MV_NUM)은 GET_MINUS에서 얻은 값인 91로 그대로 유지되고 있다.

 

다음 단계로 넘어가면 LV_NUM2 = 91 - 25 = 66으로 적용되고

그 후 다시 MV_NUM의 값을 LV_NUM2로 바꾸면 MV_NUM의 값은 66으로 고정된다.

 

 

Method의 변수로 등록하는 것은 Method가 실행될때마다 리셋되지만,

 

Class Attribute에 넣어준 속성 값들은 프로그램내에서 계속 유지되어 있어 언제든지 Method를 통해 값을 가공하여 원하는 값을 얻을 수 있다.

 

Attribute에는 변수 뿐만 아니라 인터널 테이블 MT_XXX / 스트럭쳐 MS_XXX 식으로

 

Naming Rule에 어긋나지않게 작성 후 받아서 가공할 수 있다.

반응형

'SAP > ABAP' 카테고리의 다른 글

[ABAP] Search Help 초기 필드값 세팅  (0) 2024.05.28
[ABAP] Table 생성  (0) 2024.05.25
[ABAP] Search Help Exit 함수 만들기 - 2편  (0) 2024.05.22
[ABAP] Search Help Exit 함수 만들기 - 1편  (0) 2024.05.22
[ABAP] Search Help 만들기  (0) 2024.05.21

+ Recent posts