Internal tables in ABAP
ABAP dili için internal table oldukça önemlidir. ABAP herhangi bir dizi tanımlamasına izin vermediğinden, birden fazla satırlı veri nesnesi kullanmak isterseniz internal table kullanmak zorundasınız.
Internal tablosu tanımlanmış yapıdaki deÄŸiÅŸken datasetleri ABAP’ın çalışma alanına taşır, ve veriyi dinamik olarak kullanmanızı saÄŸlar. Veriler aynı yapıdan oluÅŸan satırlarda ayrı ayrı depolanır.
3 tip Internal Tablosu vardır. Ne tür işlemler yaptığımıza bağlı olarak birini seçerek yaratırız.
Standard Table :Index erişimi en hızlı olandır. Ancak erişim hızı, tablodaki değerlerin sayısına ve ilişkilerin fazlalığına bağlı olarak değişir. Eğer bir anahtar veri erişimine ihtiyacınız varsa, bu tablo genelde yeterlidir,
Sorted Table: Bu tablo çeşidi, eğer sıralamalı olarak doldurduğunuz bir tabloya ihtiyacınız varsa kullanacağınız tablodur. INSERT komutunu kullanrak tabloyu sıralayıp doldurabilirsiniz. Girişler bir tablo anahtarı tarafından tanımlanan şekilde sıralanark doldurulur. Bir anahtar için program hızı, sistem daima binary search kullandığı için, tablodaki satırların sayısı kadar logaritmik olarak azalır. Eğer spesifik olarak tablodaki anahtarı WHERE koşulu ile LOOP içinde kullanıyorsanız, bu tablo çok kullanışlıdır.
Hashed Table: Asıl işlem anahtar erişimi üzerine ise, bu tip tablo en uygun olandır. Hashed tabloda, onun indexini kullanrak erişim sağlayamazsınız. Tablodaki değer sayısı ne olursa olsun anahtar değere erişim sabittir. Database tablosu gibi, hashed tablo da daima bir unique anahtar vardır. Eğer büyük boyutta veri içeren tablolarınız varsa hashed tablo en iyisidir.
Eğer internal tablosundan spesific bir satır okumak isterseniz READ komutunu kullanmanız gerekir.
READ… TRANSPORTING NO FIELDS.
READ HASHED Table
READ into FIELD-SYMBOL
bu komutlar ile anahtar değişkeni ile (READ WITH TABLE KEY) internal tablosundan okurken kullanılacak komutlar yukardakilerdir.
READ komutunun nasıl kullanılacağına dair birkaç örnek:
READ HASHED Table
READ into FIELD-SYMBOL
bu komutlar ile anahtar değişkeni ile (READ WITH TABLE KEY) internal tablosundan okurken kullanılacak komutlar yukardakilerdir.
READ komutunun nasıl kullanılacağına dair birkaç örnek:
READ TABLE IT_TABLE INTO WA_TABLE WITH TABLE KEY ID = PERSON_ID
*&---------------------------------------------------------------------*
*& READ INTERNAL TABLE CODE
**********************************
REPORT ZREAD_TABLE.
DATA: BEGIN OF line,
col1 TYPE i,
col2 TYPE i,
END OF line.
DATA itab LIKE HASHED TABLE OF line WITH UNIQUE KEY col1.
DO 4 TIMES.
line-col1 = sy-index.
line-col2 = sy-index ** 2.
INSERT line INTO TABLE itab.
ENDDO.
line-col1 = 2.
line-col2 = 3.
READ TABLE itab FROM line INTO line COMPARING col2.
WRITE: 'sy-subrc =', sy-subrc.
SKIP.
WRITE: / line-col1, line-col2.
READ TABLE itab WITH TABLE KEY col1 = 3
INTO line TRANSPORTING col2.
WRITE: /'yeni kısımi transporting::::::: ', 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix.
SKIP.
WRITE: / line-col1, line-col2.
***************transporting no fields
READ TABLE itab WITH KEY col2 = 16 TRANSPORTING NO FIELDS.
WRITE: /'transporting no fields.....: ', 'sy-subrc =', sy-subrc,
/ 'sy-tabix =', sy-tabix.
* ******************
* assign
FIELD-SYMBOLS
READ TABLE itab WITH TABLE KEY col1 = 2 ASSIGNING
LOOP AT itab INTO line.
WRITE: / line-col1, line-col2.
ENDLOOP.
WRITE: /'*reading lines using the ASSÄ°GN:'.
DATA itab11 LIKE SORTED TABLE OF line WITH UNIQUE KEY col1.
DO 10 TIMES.
line-col1 = sy-index.
line-col2 = 2 * sy-index.
WRITE : / LINE-COL1, LINE-COL2.
APPEND line TO itab11.
ENDDO.
READ TABLE itab11 ASSIGNING
SKIP.
WRITE: /
sy-subrc, sy-tabix.
SKIP.
WRITE: /
Konu ile ilgili detaylı içerik ve örnek ABAP Kodları,daha sonra eklenecektir.
SAP ve ABAP ile ilgili tüm sorularınızı
serkurumsal@yandex.com
E-Mail adresi ile bize ulaÅŸarak sorabilirsiniz.
Serkan AKKAVAK
Bilgisayar Mühendisi
0 Comments