SQL LIFE

Abap For All Entries in

abap for all entries in kullanımı, abap for all entries kullanımı

Merhaba;
Bu yazımda abap for all entries konusundan bahsedeceğim.
 
For all entires in abap select sorgusunun kayıtlarını programınızda var olan itab kayıtlarına göre  getirmesi işlemidir, bir nevi join işlemi diyebiliriz.
 
Kullanım koşulları;
For all entries deyimi where deyiminden önce kullanılır.
For all entries in itab’ında bulunan alanları select sorgusunda belirtemezsiniz. Sadece key alanları bağlayarak itab’daki kayıtlara bağlı verileri getirebilirsiniz.
For all entries in sql expression ifadeleri ile beraber kullanılamaz.

For all entries işleminde kullandığınız itab boş olmamalıdır. Eğer itab boş işe sorgunuz verdiğiniz kriterlere göre bütün kayıtları üzerinden çalışır ve performans olarak sizi çok üzer.

 
Evet bu kadar muhabbet yeter,biraz kodlama kısmına bakalım:
 

DATA p_city TYPE spfli-cityfrom.
cl_demo_input=>request( CHANGING field = p_city ).

TYPES: BEGIN OF entry_tab_type,
         carrid TYPE spfli-carrid,
         connid   TYPE spfli-connid,
       END OF entry_tab_type.

TYPES: BEGIN OF result_tab_type,
         carrid TYPE sflight-carrid,
         connid TYPE sflight-connid,
         fldate TYPE sflight-fldate,
       END OF result_tab_type.

DATA: entry_tab  TYPE TABLE OF entry_tab_type,
      result_tab TYPE SORTED TABLE OF result_tab_type
                      WITH UNIQUE KEY carrid connid fldate.

SELECT carrid, connid
       FROM spfli
       WHERE cityfrom = @( to_upper( p_city ) )
       INTO CORRESPONDING FIELDS OF TABLE @entry_tab.

IF entry_tab IS NOT INITIAL.
  SELECT carrid, connid, fldate
         FROM sflight
         FOR ALL ENTRIES IN @entry_tab
         WHERE carrid = @entry_tab-carrid AND
               connid = @entry_tab-connid
         ORDER BY PRIMARY KEY
         INTO CORRESPONDING FIELDS OF TABLE @result_tab.
  cl_demo_output=>display( result_tab ).
ENDIF.

 
Evet yukarıda da gördüğünüz üzere for all entries için kullanılan itab “entry_tab” önce boş olup olmadığı kontrol ediliyor ve dönen kayıtlar “result_tab” itab’ına gönderiliyor.
 
Daha ayrıntılı bir inceleme için aşağıda ki linke göz atabilirsiniz.
Kaynak:
https://help.sap.com/http.svc/rc/abapdocu_750_index_htm/7.50/en-US/abenwhere_logexp_itab.htm

#
Ezgim Çelik
They didn't know it was impossible, so they did it - Mark Twain