300x250

알아보기 전


어떻게 하면 최대한 쉽게 이해하고 생각할 수 있는지 쓴 블로그이다.

자세한 내용은 넘어가고 최대한 쉽게 쓸려는 글입니다!

 

예제도 있으니 참고 바람.

 

Transparent Table vs Internal Table에 대해서


# Internal Table 정의 : 프로그램 내부에서 정의하는 Table이다,

즉 프로그램이 런타임동안에만 존재하는 Table이며 DB에 저장되어 있는 것이 아닌 메모리에 저장이 되어있는 Table이다. 

 

여기서 말하는 DB에 저장되어있는 Table( SE11에서 확인 )은

Transparent Table이다.

 

반대로 위에서 말했듯이 프로그램 안에서 있는 Table

Internal Table이다.

 

Internal Table은 무엇이다.라는 것까지 이해가 갔다고 생각하겠다. 

 

그럼 이제 Internal Table을 사용하기 위한 

1. WITH HEADER LINE 

2. OCCURS 0 

3. TABLES

 

에 대해서 알아보기 전Workarea부터 이해하고 넘어가자.

 

 

Workarea VS Structure에 대해서


# Workarea란? 말 그대로 작업공간이라고 생각하면 된다. 데이터저장할 수 있는 변수이다.

# Structure란? 말 그대로 구조체이라고 생각하면 된다. 데이터 저장 할 수 없고 모든 데이터 유형의 필드구성데이터 객체이다.

 


# 크게 보자면

저장할 수 있느냐 없느냐차이점데이터 유형

다른 점 빼고는 WorkareaStrcuture 유사한 것이다.

그래서 엄연히 사용하는 건 다르지만

 

전체적으로 봤을 때

Workarea = Structure이다.

 


예시를 들면

GS_SCARRWorkarea면서도 Structure인 것이다. 

그 이유는

GS_SCARR의 타입SCARR 타입의 Structure이며 

GS_SCARR 변수 Workarea인 것이다.


 

여기서 중점데이터를 저장할 수 있는 Workarea 인 것이다.


그럼. 

# Workarea 사용한다는 것은

데이터를 저장할 수 있게 만드는 것이고

 

 데이터 저장 할 수 있다는 것은

데이터 타입들알고 있다는 것이다. 

 

즉,

Workarea데이터 타입정해줘야 한다는 것이다. 

 

Workarea을 만들기 위해서는 

Structure or Tables or With header line or type 등등..

이 필요로 한다. 

 

이제 그것에 대해서 알아가 보자. 

 

WITH HEADER LINE이란?


프로그램을 개발하면서 " 헤더라인 있는 이터널테이블이다, 헤더라인 없는 이터널테이블이다."라는 말을 무조건 들어봤을 거라고 생각한다.

그것에 차이점Work area 있냐 없냐 차이점이다.

 

다음과 같이 선언을 했다고 하면 이것 또한 Workarea 생성한 것이다. 

 

디버깅을 통해서 확인해 보자.

GT_SCARR을 클릭해 보면 테이블처럼 생긴 아이콘모자 아이콘을 볼 수 있다. 

여기서 말하는 HEADR LINE(헤더라인) = 모자아이콘 Workarea이다.

 

GT_SCARR = Structure( Workarea ) 

GT_SCARR[  ] = Table 

인 것이다. 

 

한마디로 

WITH HEADER LINE은 Table과 Structure( Workarea )을 한 번에 정의했다고 보면 되는 것이다.

 

이 말은 곧 

다음과 같이 선언했다고 봐도 무방한 것이다.

( 이렇게 쓰면 물론 오류는 나지만)

 

그래서 WITH HEADER LINE일 때 뭐가 Workarea이고 뭐가 Table 구분하는 기준[ ] 것이다.

 

위에서 설명했듯이

GT_SCARR의 변수Work area이고 GT_SCARR의 타입 Structure 

GT_SCARR[ ]은 Internal Table 인 것이다. 

 

그래서 헤더라인이 있는 인터널 테이블이라고 말한다. 

 

반대로 헤더라인 없는 인터널 테이블Work area없는 인터널 테이블인 것이다. 

 

Occurs 0이란?


여기서는 Work area는 상관없다.

Occurs 0구식 방식이기 때문에 사용을 비추천 하지만 참고용으로 보면 될 것이다.

뒤에 붙는 숫자메모리를 늘려주거나 레코드를 늘려주는 용도

 

결론Internal Table을 만들어준다고 보면 된다. 

 

확인을 해보자.

다음과 같이 Internal Table생성된 걸 볼 수 있다.

 

Tables이란 


이것은 Internal Table이 아닌 SE11에서 정의한 Table(Transparent Table)만 정의할 수 있다.

또한 Table명변수설정하는 것이다.

 

예시를 보면 바로 이해한다.

 

TABLES SCARR는

SCARR라는 변수 Work area을 만들고 

SCARR의 타입은 Structure을 만들어 준 것이다. 

 

 

끝. 

 

 

 

 

도움이 되셨으면 클릭 한번 부탁드립니다!!

 

 

 

 

 

728x90