spatium tech
← Tutoriais ABAP
ABAP RANGE LOOP FOR
15 de junho de 2026

FILL RANGE TABLES EM ABAP

spatium tech
1 min
article

Muitas vezes precisamos criar filtros dinâmicos utilizando Ranges. Mas você ainda programa como se estivesse nos anos 2000?

Esqueça o RANGES obsoleto com Header Line ! Hoje, dominar a evolução da linguagem é sinônimo de código limpo e performance. Se liga nessas 2 formas modernas de resolver o problema:

1 - O Estado da Arte: Moderno (VALUE + FOR)

Ideal para resolver tudo em uma única expressão, mantendo o código limpo e direto.

    DATA lt_carr_id_range TYPE RANGE OF spfli-carrid.
    
    lt_carr_id_range = VALUE #( FOR <fs_spfli> IN lt_spfli
                               ( sign   = 'I'
                                 option = 'EQ'
                                 low    = <fs_spfli>-carrid ) ).

2 - O Híbrido Essencial: Clássico (LOOP + APPEND VALUE)

A velha conhecida estrutura de repetição, mas atualizada: o APPEND VALUE elimina a necessidade de declarar uma Work Area.

DATA lt_carr_id_range TYPE RANGE OF spfli-carrid.

LOOP AT lt_spfli INTO DATA(ls_spfli).
  APPEND VALUE #( sign   = 'I'
                  option = 'EQ'
                  low    = ls_spfli-carrid ) TO lt_carr_id_range.
ENDLOOP.

DICA DE OURO: No método 1, se você não quiser declarar a variável do range na linha de cima, você pode usar a declaração em linha criando um tipo local ou global, assim:

DATA(lt_range) = VALUE range_type( ... )

Menos linhas de código, mais produtividade!

E você, qual dessas duas formas mais utiliza no seu dia a dia?

Avalie este conteudo

para avaliar

Comentarios

0
Seja o primeiro a comentar.
Faca login para comentar
Novos posts direto para voce
Cadastre-se gratuitamente. Sem spam, so conteudo.