SAP ABAP Dahili Tablosu: Oluşturun, Okuyun, Doldurun, Kopyalayın ve Silin

Dahili Masa Nedir?

İÇ TABLO ABAP'ta dinamik kullanım için sabit bir yapıdan veri elde etmek için kullanılır. Dahili tablodaki her satır aynı alan yapısına sahiptir. Dahili tabloların ana kullanımı, bir program içindeki bir veritabanı tablosundaki verileri depolamak ve biçimlendirmek içindir.

Çalışma Alanı Nedir?

Çalışma alanları tek satırlık verilerden oluşur. Dahili tablolardan herhangi biriyle aynı formatta olmalıdırlar. Dahili bir tablodaki verileri satır satır işlemek için kullanılır.

İç Masa ile Çalışma Alanı Arasındaki Fark Nedir?

bir fotoğraf çok şey söyler

İç Masa ile Çalışma Alanı Arasındaki Fark

İç Masa Çeşitleri

İki tür dahili tablo vardır.

  1. HEADER satırına sahip dahili tablolar
  2. HEADER satırı olmayan dahili tablolar.

Başlık Çizgili Dahili Tablolar

  • Burada sistem otomatik olarak çalışma alanını oluşturur.
  • Çalışma alanı dahili tabloyla aynı veri türüne sahiptir.
  • Bu çalışma alanına HEADER satırı denir.
  • Tablonun içeriğindeki tüm değişikliklerin veya herhangi bir işlemin yapıldığı yer burasıdır. Bunun sonucunda kayıtlar doğrudan tabloya eklenebilir veya doğrudan iç tablodan erişilebilir.

Başlık Satırı Olmayan Dahili Tablolar :

  • Burada tabloyla ilişkili bir çalışma alanı yoktur.
  • Bu tür tablolara erişmemiz gerektiğinde çalışma alanı açıkça belirtilmelidir.
  • Bu nedenle bu tablolara doğrudan erişilemez.

Dahili Tablolar Oluşturma

Dahili Tablo oluşturmanın birçok yolu vardır. Şimdi onlara tek tek bakalım.

1. Tür İfadesini Kullanarak

Şimdi şunu kullanarak bir Internal tablo itab oluşturalım. TYPE bildirimi.

Sözdizimi -

Types : begin of line,

column1 type I,

column2 type I,

end of line.

Örnek:

TYPES : begin of line,

empno		type I,

empname(20)   	type c	,

end of line.

TYPES deyimi tanımlandığı gibi bir yapı çizgisi oluşturur.

Aslında bir Dahili Tablo itab oluşturmak için aşağıdaki komutu kullanın:

Data itab type line occurs 10.

Satır yapısıyla bir dahili tablo itab oluşturulur. Bir dahili tablonun yapısını bildirmenin yanı sıra, OCCURS cümlesi aynı zamanda ana depolamada kaç tablo girişinin tutulduğunu da tanımlar (bu durumda 10). Ekstra kayıtlar sayfalama alanına yazılır ve performansı etkileyebilir

2.Başka bir Tabloya atıfta bulunarak

Mevcut bir tabloya başvurarak dahili bir tablo oluşturabilirsiniz. Mevcut tablo standart olabilir SAP tablosu, Z tablosu veya başka bir dahili tablo.

Sözdizimi-

Data <f> <type> [with header line].

Örnek-

DATA itab TYPE line OCCURS 10 with header line.

Burada, başlık satırına sahip tip satırından dahili bir itab tablosu oluşturulur. Lütfen "başlık satırıyla" seçeneğinin isteğe bağlı olduğunu unutmayın.

3.Mevcut Yapıya atıfta bulunarak

Sözdizimi-

Data	<f> LIKE <struct> occurs n [with header line].

Örnek-

DATA itab LIKE sline OCCURS 10.

Burada sline ile aynı yapıya sahip bir itab tablosu yaratılır.

4.Yeni bir Yapı oluşturarak

Şimdi kendimize ait yapıya sahip bir iç tablo oluşturalım. Burada tablo bir Başlık satırıyla oluşturulur, varsayılan olarak.

sözdizimi –

Data : Begin of <f> occurs <n>,

<component declaration>,

.................................,

End of <f>.

Örnek -

Data : Begin of itab occurs 10,

column1       type I,

column2(4)  type C,

column3      like  mara-ernam,

End of itab.

Dahili tablo itab oluşturuldu

Dahili Tabloları Doldurma

Artık bazı dahili tabloları başarıyla oluşturduğumuza göre, bunları bazı kayıtlarla nasıl dolduracağımızı görelim. Tabloları doldurmak için çeşitli yöntemler mevcuttur

1.Verileri satır satır ekleyin

Mevcut ilk yöntem APPEND ifadesinin kullanılmasıdır.

APPEND deyimini kullanarak ya başka bir çalışma alanından bir satırı dahili tabloya ekleyebiliriz ya da dahili tabloya bir başlangıç ​​satırı ekleyebiliriz.

sözdizimi –

APPEND [<wa> TO / INITIAL LINE TO] <itable>.

İşte çalışma alanı veya Başlangıç ​​Satırı dahili tabloya eklenir .

SY-TABIX sistem değişkeni eklenen satırın indeksini içerir.

Örnek:

Data: Begin of itab occurs 10,

col1 type C,

col2 type I,

end of itab.

Append initial line to itab.

Sonuçlar : ' ' '0'

Başlangıç ​​satırları, tabloya türü için doğru değerle başlatılan bir satır ekler. Burada col1 bir karakter, col2 ise bir tamsayıdır. Daha sonra başlangıç ​​satırına EKLE, sütunların veri türüne göre başlatılan bir satırı ekler; yani sütun1 için boşluk ve sütun0 için 2.

2.COLLECT ifadesinin kullanılması

COLLECT, dahili tabloları doldurmak için kullanılan başka bir ifade biçimidir. Genellikle COLLECT, benzersiz standart anahtarla dahili bir tabloya satır eklerken kullanılır.

Sözdizimi-

COLLECT [<wa> INTO] <itable>.

Başlık satırı bulunan tablolarda INTO seçeneği atlanır. Eklemeye çalıştığınız anahtarla aynı anahtara sahip bir girişin zaten olduğunu varsayalım, bu durumda tabloya yeni bir satır eklenmez, ancak her iki girişin sayısal alanları eklenir ve anahtara karşılık gelen yalnızca bir giriş bulunur. . SY-TABIX'in değeri orijinal girişin satırına değiştirilir. Aksi takdirde COLLECT, APPEND'e benzer şekilde davranır ve SY-TABIX, işlenen satırın dizinini içerir.

3.INSERT ifadesini kullanma

INSERT ifadesi dahili tabloya bir satır/çalışma alanı ekler. INSERT deyimiyle birlikte INDEX deyimini kullanarak yeni satırın ekleneceği konumu belirleyebilirsiniz.

Sözdizimi

INSERT [<wa> INTO / INITIAL LINE INTO] <itable> [index <idx>].

Burada çalışma alanı veya BAŞLANGIÇ HATTI dahili tabloya eklenir indekste .

Dahili Tabloları Kopyalama

Bir dahili tablonun içerikleri APPEND LINES veya INSERT LINES ifadesi kullanılarak başka bir tabloya kopyalanabilir. Daha basit bir yol aşağıdaki sözdizimlerinden herhangi birini kullanmaktır.

MOVE  <itab1> To <itab2>.

OR

<itab1> = <itab2>.

Bunlar ITAB1'in içeriğini ITAB2'ye kopyalar. Başlık satırına sahip dahili tablolarda çalışma alanından ayırmak için [] kullanmak zorundayız. Böylece, dahili tabloların içeriklerini başlık satırıyla kopyalamak için sözdizimi şu şekilde olur:

itab1[] = itab2[].

Dahili Tabloları Okuyun

Artık dahili tabloların oluşturulmasına ve bunların verilerle doldurulmasına aşinayız. Şimdi verileri gerçekte nasıl kullanacağımızı veya dahili tablolardan verileri nasıl alacağımızı göreceğiz.

1. Döngü Kullanımı -Endloop

Dahili tabloya erişmenin veya onu okumanın yollarından biri LOOP-ENDLOOP kullanmaktır.

Sözdizimi

LOOP AT <itable> [INTO <wa>]

...................................

ENDLOOP.

Burada LOOP AT ITABLE dediğinizde iç tablo ITABLE satır satır okunur. LOOP-ENDLOOP yapısının herhangi bir yerinde o satıra ait sütunların değerlerine ulaşabilirsiniz. SY-SUBRC'nin değeri şu şekilde ayarlandı: 0, yalnızca bir kayıt okunsa bile.

2. READ'ı kullanma

Dahili tabloyu okumanın diğer yöntemi READ ifadesini kullanmaktır.

Sözdizimi-

READ TABLE <itable> [INTO <wa>] INDEX <idx>.

Bu ifade geçerli satırı veya satırı indeks tarafından belirtildiği şekilde okur. . SY-TABIX'in değeri okunan satırın indeksidir. Belirtilen indekse sahip bir giriş bulunursa SY-SUBRC 0'a ayarlanır. Belirtilen indeks 0'dan küçükse çalışma zamanı hatası oluşur. Belirtilen dizin tablo boyutunu aşarsa SY-SUBRC 4'e ayarlanır.

Dahili Tabloların Silinmesi

Dahili bir tablodan satırları silmenin birçok yolu vardır.

1. Bir döngüdeki satırları silmek.

Bu, satırları silmenin en basit yoludur.

Sözdizimi

DELETE <ITABLE>.

Bu ifade yalnızca bir döngü içinde çalışır. Geçerli satırı siler. Döngüdeki satırları koşullu olarak ekleyerek silebilirsiniz. WHERE yan tümcesi.

2. Dizini kullanarak satırları silmek.

Bu, bilinen herhangi bir dizindeki dahili tablodan bir satırı silmek için kullanılır.

Sözdizimi

DELETE <ITABLE> INDEX <IDX>.

Endeksli çizgi silinir. Sonraki satırın indeksi 1 azaltılır.

Bu yazıyı şu şekilde özetleyin: