본문 바로가기
SAP/ABAP

SAP ABAP WITH HEADER LINE itab[] 헤더라인

by 꿈청(꿈꾸는청년) 2021. 4. 1.
반응형
SAP ABAP WITH HEADER LINE  itab[]  헤더라인 

 

여러분 안녕하세요,

 

오늘은 Internal Table(인터널테이블) HEADER LINE에 대해서 알아보도록 하겠습니다.

 

 

HEADER LINE

 

 

구조체(wa)와 인터널테이블(itab)이 하나로 된 것이라 생각하면 됩니다.

 

즉, 헤더라인으로 인터널테이블을 선언할 시 자동으로 구조체(wa) 도 생성된다는 것이죠.

 

예전 문법(?)이라 말하는게 맞지는 않지만 현재는 구조체와 인터널테이블을 다르게 구별하여

 

사용하는 것을 ABAP에서도 지향한다고 합니다 

 

따라서 -> GS_LIST (구조체) GT_LIST(인터널테이블) 식으로 선언하는 게 맞겠네요 ^^

 

하지만 프로그램을 개발하다 보면 예전 문법으로(?) 헤더라인으로 개발된 경우도 많아서 

 

해당 개념을 짚고 넘어갈 필요성이 있답니다. ( 프로그램 수정시 일관성을 지켜준다는 마인드이기에 헤더라인으로 개발했다면 저 또한 써준답니다 ^^* )  

 

ABAP도 문법이 발전하면서 범용적인 데이터 타입 변수를 지원하고 있는데요 아직까진 Ranges 변수로 선언하거나 selection-option for 형태와 같이 자주 쓰는 문법에서도 헤더라인이 생기니 

 

꼭 알아야겠죠?

 

 

헤더라인 생성 CASE

 

1. Internal Table(인터널테이블)구성 시 OCCURS 0 또는 WITH HEADER LINE

2. Selection-Screen 에서 selection-option 으로 받을 시 

3. Ranges 레인지변수 생성 시

 

 

1. 인터널테이블 OCCURS 0 또는 WITH HEADER LINE

 

 

 

CASE1. OCCURS 0

 

GT_LIST OCCURS 0 인터널테이블을 헤더라인 생성

 

CASE2. DATA: GT_LIST TYPE TABLE OF SFLIGHT WITH HEADER LINE.

 

GT_LIST 테이블에 WITH HEADER LINE 선언 시 헤더라인 생성

 

 

GT_LIST를 헤더라인이 있는 형식으로 했을 경우 구조체와 인터널테이블 [] 생성된 것을 알 수 있습니다.

 

 

 

 

그렇다면, 어떻게 구별하여 ABAP에서 인식을 할까요? 상황에 맞춰서 써주면 됩니다.

 

EX) 

  

  MODIFY

  

  MODIFY SFLIGHT FROM GT_LIST (구조체를 뜻함)

  MODIFY SFLIGHT FROM TABLE GT_LIST (인터널테이블을 뜻함)

 

  즉, GT_LIST를 어떻게 바라볼 것인지 구별하는 문법을 '정확히' 써줘야 한다는 것입니다.

 

  또 다른 예를 하나 보시죠

  

  MOVE-CORRESPONDING

  

  DATA: GT_LIST2 TYPE TABLE OF SFLIGHT ( 헤더라인 없는 인터널테이블 )

  MOVE-CORRESPONDING GT_LIST TO GT_LIST2.  

  ( move-coressponding 문법의 경우 같은 필드의 속성이 있을 경우 인터널테이블에 담긴 데이터를 

  다른 인터널테이블에 넘기는 문법이다 따라서 헤더라인이 있는 GT_LIST의 경우 [] (인터널테이블표시) BODY

  부분을 써줘야 한다 )

 

  올바른 예)

  MOVE-CORRESPONDING GT_LIST[] TO GT_LIST2[].  

  

   

 

 

2. Selection-Screen 에서 selection-option 으로 받을 시 

 

 

 

 

3. Ranges 레인지변수 생성 시

 

 

 

 

 

헤더라인 구조체와 인터널테이블 두 가지의 속성을 갖춘 변수를 가지는 HEADER LINE에 대해 알아보았습니다.

 

감사합니다.

 

끝.

반응형

댓글