FILTER on Internal table using FILTER Internal Table

w13qcK1465380577New ABAP feature allows to filter one internal table based on another internal table content. 

 

 

Program

TYPES: BEGIN OF ty_flt,
                  coun_from TYPE spfli–countryfr,
                END OF ty_flt,
                  tt_flt TYPE HASHED TABLE OF ty_flt WITH UNIQUE KEY coun_from.
DATA: lt_spfli1 TYPE TABLE OF spfli,
              lt_spfli2 TYPE TABLE OF spfli,
              lt_flt    TYPE tt_flt.
SELECT * FROM spfli INTO TABLE lt_spfli1.

* Fill value on filter table LT_FLT
lt_flt = VALUE tt_flt( ( coun_from = 'US' )
                       ( coun_from = 'DE' ) ).
* FILTERING apply on internal table LT_SPFLI1 based on filter table
lt_spfli2 =   FILTER #( lt_spfli1 IN lt_flt
                        WHERE countryfr = coun_from ).
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
  EXPORTING
    i_callback_program = sy–repid
    i_structure_name   = ‘SPFLI’
  TABLES
    t_outtab           = lt_spfli1.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
  EXPORTING
    i_callback_program = sy–repid
    i_structure_name   = ‘SPFLI’
  TABLES
    t_outtab           = lt_spfli2.


7

Output

LT_SPFLI1  table records.

8

LT_SPFLI2  records after filter. Only shows where COUNTRYFR is US or DE.

9


 

Leave a Reply