본문 바로가기

ABAP New syntax - filter

반응형

ABAP 신문법(New syntax)인 filter구문에 대한 설명이다.

Filter구문은 internal table에서 다른 internal table로 조건에 따라 데이터 값을 복사할 때 쓰는 기능이다.

select구문의 for all entrys구문과 유사하다.(조건에 따라 데이터가 filtering되어 나온다는 측면에서)


● filter 구문(using key)

DATA: lt_spfli_all TYPE TABLE OF spfli WITH NON-UNIQUE SORTED KEY carrid COMPONENTS carrid,
      lt_spfli     TYPE TABLE OF spfli.

SELECT *
  FROM spfli
  INTO TABLE @lt_spfli_all.

lt_spfli = FILTER #( lt_spfli_all USING KEY carrid
                                  WHERE carrid = 'LH ' ).

모수 테이블 lt_spfli_all에서 filter를 사용해 조건을 주어 해당 데이터만 뽑아 내고, lt_spfli 테이블에 데이터를 필터 걸어(carrid = 'LH') 뽑아내는 구문이다.

using key뒤에 오는 filed는 반드시 internal table 내부에 key로 설정되어 있어야 한다.

기존 구문이었으면 loop를 돌려 일일이 확인해야하는 것에 비해 코드도 짧아지고 간편하다.

LE_SPFLI_ALL
LT_SPFLI

 


● filter 구문(in)

DATA: lt_spfli_all TYPE TABLE OF spfli WITH NON-UNIQUE SORTED KEY carrid COMPONENTS carrid,
      lt_spfli     TYPE TABLE OF spfli.

SELECT *
  FROM spfli
  INTO TABLE @lt_spfli_all.
  
DATA lt_filter TYPE SORTED TABLE OF scarr-carrid WITH UNIQUE KEY table_line.
lt_filter = VALUE #( ( 'AA ' ) ( 'LH ' ) ).
lt_spfli = FILTER #( lt_spfli_all IN lt_filter
                                  WHERE carrid = table_line ).

filter용 테이블을 생성해 filter를 사용하는 구문이다.

lt_filter라는 filter용 테이블을 선언하고 'AA', 'LH'라는 값을 넣어준다.

filter구문안에 in 조건으로 filter용 테이블을 넣어줌으로써 조건과 부합하는 데이터만 뽑아낸다.

LT_SPFLI

 


lt_filter에 데이터를 삽입할 때 value구문을 사용하였다. value구문이 궁금하면 아래 링크를 참조하자.

 

ABAP New Syntax - Value

ABAP 신문법(New Syntax)인 Value구문에 대한 설명이다. Value문은 Insert/Append와 유사한 기능을 한다. Internal Table 또는 Structure에 초기 데이터를 생성하거나 데이터를 추가할 수 있는 기능을 가지고 있..

kyoshins.tistory.com

 

반응형

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

ABAP new syntax line_exists  (0) 2021.11.12
Open SQL CASE문 사용법  (0) 2021.09.29
ABAP New syntax - switch, cond  (0) 2020.11.08
ABAP New Syntax - Value  (3) 2020.03.25
ABAP New Syntax - Inline 선언  (5) 2020.03.24
댓글