반응형
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를 돌려 일일이 확인해야하는 것에 비해 코드도 짧아지고 간편하다.
● 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_filter에 데이터를 삽입할 때 value구문을 사용하였다. value구문이 궁금하면 아래 링크를 참조하자.
반응형
'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 |