19 Eylül 2013 Perşembe

Collect Statement in SAP ABAP

COLLECT komutu internal tablosuna veri ile doldururken kullanılır. Ancak uniq olanların dışındakiler toplanarak yazılır.

COLLECT  working_area_table INTO internal_area_table.
Çalışma ortamından internal tablosuna eğer belirtilen anahtara ait bir kayıt yoksa
veri  tablonun sonuna boş bir alan eklenerek yazılır. Eğer aynı anahtar alanına ait bir kayıt varsa, internal tablosundaki bu kayıttaki veri çalışma alanındaki veri ile toplanarak yazılır.

COLLECT sadece uniq değerli internal tablolar yaratacaksanız kullanılmalıdır. Ancak bu durumda COLLECT ten performans sağlarsınız.

COLLECT komutu standart tablolar için uygun değildir. Sadece sıralanmış ve hashed tablolar ile problemsiz çalışır, çünkü standart tabloların aksine, ancak bu tür tablolarda değişmeyen ayrı bir anahtar ile işlem yapılabilir.  Hashed tablolar için, bütün istenen alanlar otomatik olarak doldurulur.

Eğer ısrarla standart tabloda COLLECT kullanılacaksa, sadece MODIFY komutu ile birlikte kullanılabilir. Ancak COLLECT komutunu TRANSPORTING ile kullanılacaksa, primary key alanının değişmediğinden emin olmanız gerekir. Aksi halde COLLECT komutu doğru sonuç vermez.

Bir standart tablonun COLLECT kullanımı için uygun olup olmadığını gösteren modül ABL_TABLE_HASH_STATE dir. 


Hiç yorum yok:

Yorum Gönder