카테고리 없음

SYNC 5기 10주차 - FOR ALL ENTRIES문

firststepsaperp 2024. 9. 8. 21:56

ABAP에서 LOOP문과 같은 효과를 내지만, 시스템 과부하는 훨씬 줄여줄 수 있는 키워드가 FOR ALL ENTRIES문입니다.

 

 

먼저 이렇게 선언해줌으로써,

SFLIGHT DB 테이블의 CARRID, CONNID, FLDATE, SEATSMAX, SEATSOCC 이렇게 5개의 컬럼을 가진 인터널테이블(내용물 데이터 없는 껍데기) GT_JOIN, 그리고 스트럭쳐(내용물 데이터 없는 껍데기) GS_JOIN이 선언됐습니다.

 

 

이번에는 SPFLI DB 테이블의 컬럼들 '틀'을 가진 인터널테이블 GT_SPFLI와 스트럭쳐 GS_SPFLI를 선언합니다.

이것을 선언한 이유를 쉽게 말하면, 'FOR ALL ENTRIES' 구문을 통하여 JOIN 조건 필터링을 할 건데, 그 JOIN 조건을 적어놓을 테이블을 만들기 위해 선언하는 것입니다.

 

 

CARRID와 CONNID를 입력하는 SELECT-OPTIONS를 선언해주고, 조건들 적어놓을 테이블을 만들 것입니다. JOIN 때로 치면, ON 뒤에 붙는 필터링 조건이 CARRID와 CONNID인 것입니다.

 

 

방금 만든 조건 테이블을 정렬하고 중복을 제거해줍니다.

※ADJACENT : 인접한.

 

 

이제 조건 테이블을 FORALL ENTRIES IN 구문으로 훑습니다. 그러면 SELECT-OPTIONS 창에 입력한 CARRID와 CONNID 값을 가진 데이터만 추출해낼 수 있습니다.