SQL LIFE

Structure ve Internal Table

Merhaba;
Bu yazımda SAP ABAP structure ve internal table se11 konularından basit bir şekilde bahsetmeye çalışacağım.
Structures (Yapılar): Verileri işlemek için oluşturulan alanlar topluluğudur. Yani bir tablonun alanları onun yapısı olur.
 
Structure’ları SE11 işlem kodundan veya kendi programınızın içinde local olarak oluşturabilirsiniz, çalışma zamanında oluşturduğunuz  local structure aynı zamanda ”work area” da olabilir.
SE11 tcode ile structure oluşturalım:

se11 structure and internal table http://sqllife.net

 

Create butonuna tıkladıktan sonra oluşturmak istediğiniz objeyi soruyor. Structure seçiyoruz.

structure and internal table abap sqllife.net

Gelen Ekranda alanlarımızı ve doğru data elementleri seçerek structure oluşturuyoruz ve kayıt edip active (kibrit) butonuna tıklayarak aktifleştiriyoruz.


sap abap dictionary ezgim çelik

Global olarak her programınızda kullanabileceğiniz bir structure yarattınız ve programlarınızda kullanabilirsiniz.
Not:Aynı şekilde SE11 den tablo ve tablolarınızda, programlarınızda kullanacağınız nesneleri(table, structure, data element, data type, domain vs.) oluşturabilirsiniz.
 
Şimdi de  Work Area ve internal table oluşturalım,work area da bir structure’dır çalışma zamanında(runtime)  program da oluşturulur ve sadece o programda kullanabilirsiniz. Structure  bahsettiğimiz gibi se11 data dictionary de de oluşturulur.
Örnek itab yapısı:

DATA itab TYPE|LIKE tabkind OF linetype WITH key
          [INITIAL SIZE n]
          [WITH HEADER LINE].
TYPES vector TYPE SORTED TABLE OF i WITH UNIQUE KEY table_line.
DATA: itab TYPE vector,
jtab LIKE itab WITH HEADER LINE.
MOVE itab TO jtab[].

Örnek kodda gs_ozet isimli bir structure tip oluşturdum ve bu tipten bir internal table ve work area ürettim.

 
REPORT ZEZGIM.

types:
begin of gs_ozet,
  name(30)         type c,
  tuketim        type p decimals 3,
  tutar      type p decimals 3,
end of gs_ozet.


data: gt_ozet  type table of gs_ozet,
      wa_ozet  type gs_ozet.


wa_ozet-NAME = 'Ezgim Çelik'.
wa_ozet-TUKETIM = '30.454'.
wa_ozet-TUTAR = '10.000'.

append wa_ozet to gt_ozet.


wa_ozet-NAME = 'Esra Çelik'.
wa_ozet-TUKETIM = '100.000'.
wa_ozet-TUTAR = '3000.000'.

append wa_ozet to gt_ozet.


write:/10  sy-vline,
(10) 'İsim' color COL_HEADING, sy-vline,
(50) 'Tüketim'  color COL_HEADING, sy-vline,
(50) 'Tutar'  color COL_HEADING, sy-vline.
 loop at gt_ozet into wa_ozet.
write:/10 sy-VLINE, (10)wa_ozet-NAME,(50)wa_ozet-TUKETIM,(50)wa_ozet-TUTAR.
 endloop.



Keywrods: itab,internal table,abap, work area, sap abap, se11.

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