SAP yazılımının standart teslimatı binlerce tablo içeriyor olsa bile, müşterilerin kendilerine özel ihtiyaçlarını karşılamak için müşteri...
SAP yazılımının standart teslimatı binlerce tablo içeriyor olsa bile, müşterilerin kendilerine özel ihtiyaçlarını karşılamak için müşterilere özel tablolar gerekir. Bu yüzden, tabloların yaratılması ve bakımı sürecine göz atarak başlayacağız.
ABAP ile ilgili yayınlar birbirlerini takip eden konular içerir. Tüm ABAP yayınlarının listesine ulaşmak için tıklayınız.
Bu bölümde, ilerleyen bölümlerde de kullanacağınız bir tablo oluşturacağız. Bu tablo üye yönetimi örneğimizin temel tablosunu teşkil edecek ve bu tabloda her üye için bir veri kaydı yaratacak, değiştirecek ve bakımını yapacaksınız. Her adımda önceki bölümlerde öğrendiklerinizin üzerine katarak ilerleyecek, böylece ilerleyen bölümlerde daha zor aşamalar için hazırlıklı olacaksınız.
- [message]
- Gerçek Hayatta Tablolar
- SAP yazılımındaki verileri tek bir tabloda tutmazsınız, bu veriler karmaşık veri modelleri kullanılarak birbirleriyle ilişkilendirilmiş tablolarda saklanır. Bununla birlikte, temel ilkeleri öğrenmek için tek bir tablo yeterli olacaktır.
ABAP Sözlük Giriş
ABAP Sözlük için Araçlar • ABAP Workbench • Geliştirme • Sözlük menüsünü (veya SE11 işlem kodu) kullandığınızda sistem ABAP Sözlük başlangıç ekranını gösterir (Şekil 1).
![]() |
Şekil 1. ABAP Sözlük Giriş Ekranı |
Veri Tabanı Tabloları
Giriş ekranından database table, view, data type, type group, domain, search help veya lock object gibi sözlük nesnelerini görüntüleyebilir, değiştirebilir veya yenilerini yaratabilirsiniz. Şimdilik sadece veritabanı tabloları ile ilgileniyoruz.
SAP yazılımında veri tabanı tablolarının 3 tipi vardır:
- Saydam tablolar (Transparent tables)
- Pool tables
- Cluster tables (Örn. BSEG)
Pool ve cluster tablolarda, veri fiziksel veritabanındaki tanımlanmış bir tablo havuzunda veya tablo kümesinde saklanır. Her iki tablo türünde de özel veri tipleri (örneğin program parametreleri, dynpro dizileri ve dokümanlar gibi) depolanır ve her iki tablo türü bir havuz ya da kümedeki bazı ortak tablolardan veri saklayabilir. Pool ve cluster tablolar normalde uygulamaların verilerini saklamak için kullanılmaz, bu tip veriler genellikle saydam tablolarda saklanır.
- [message]
- Saydam Tablolar
- Belirtiliği gibi, fiziksel veritabanında nesneler oluşturmak ve bakımlarını yapmak için sadece SAP araçları kullanılır. Saydam tablolar, ABAP sözlüğündeki tanımlaması ile fiziksel veritabanındaki tanımlaması birebir uygunluk gösteren yegane tablo tipidir.
Bir tablo havuzu (table pool) fiziksel veritabanındaki tek bir tablodan oluşur. Tablo havuzuna atanan tüm tablolara pool tablolar denir. Tablo havuzu, havuzdaki tablonun tüm verilerini pool tablosunun ismi ve anahtar alanları ile tanımlanmış olarak saklar.
Bir tablo kümesi (table cluster) birkaç cluster tablosundan oluşur. Bir tablo kümesi bir kaç cluster tablosunda ortak anahtara sahip veri kayıtlarını bir fiziksel veri kaydında birleştirir. Bu veri kayıtlarının sayısını azaltır ancak veri kayıtlarının uzunluğunu arttırır. Bunun sonucunda, sık sık devam kayıtları oluşturma gereksinimi doğar.
- [message]
- Sadece OpenSQL
- Saydam tablolarda bulunan veritabanı ile birebir uygunluk pool ve cluster tablolarda geçerli değildir. Bu nedenle pool ve cluster tablolarda teknik ayarlar veya indeksler için herhangi bir bakım gerekmez. ABAP Sözlük'te saklanan bilgiler pool ve cluster tablolarda işlem yapmak için kesinlikle gereklidir. Acil bir durumda, pool ve cluster tablolarda farklı bir SQL ile işlem yapılamaz ve yalnızca Open SQL ile işlem yapılabilir.
[post_ads_2]
Tabloların Yaratılması ve Bakımı
Yeni bir tablo yaratırken öncelikle ismini planlamalısınız. Bir tablo ismi maksimum 16 karakter olabilir ve büyük harf / küçük harf ayrımı yapmaz. Standart SAP nesneleri veya müşteriye özel nesneler gibi hemen hemen tüm nesnelerin adlandırmasında çeşitli adlandırma kurallarına uymanız gerekir.
Adlandırma kurallarına göre, müşteri nesnelerinin adları Z, Y veya müşteriye özel ön ek ile başlar. Müşteriye özel ön ek "/" işareti ile kapalı olan ve tekil olarak SAP'de saklanan harf dizisidir. Bunlar geliştirme nesnelerinin adına bir ön ek olarak ilave edilir ve diğer SAP müşterileri tarafından kendi müşteri özel nesnelerinde kullanılamaz. (örneğin, /SAPMUHASEBE/) Bu durum nesne adlarının benzersiz olmasını ve örneğin birleşmeler sırasında adlandırma çatışmalarının ortaya çıkmamasını sağlar. Ancak, bizim eğitim amaçlarımız için geleneksel müşteri alan adları olan Z ve Y yeterlidir. İlk veritabanı tablonuzun ismini ZMEMBER01 olarak tanımlayın ve CREATE tuşuna basın (Şekil 2).
![]() |
Veri Tabanı Tablosunun Yaratılması |
ABAP Sözlük bakım ekranı 5 sekmeden oluşur: Attributes (Özellikler), Delivery and Maintenance, Fields (Alanlar), Entry Help/Check (Giriş Yardım/Kontrol), Currency/Quantity Fields (Para Birimi / Miktar Alanları). Properties sekmesindeki Short Description alanına, "Table of Members" gibi bilgilendirici bir açıklama metni girin. Sonrasında Delivery and Maintenance sekmesindeki iki alanı doldurmanız gerekir:
- Delivery ClassDelivery Class kurulumlar, güncellemeler, müşteri kopyaları ve başka SAP sistemine taşınma esnasında tablonun veri kayıtlarının taşınmasını düzenler. Delivery class tanımlamasına göre SAP ve müşterileri farklı yetkilere sahip olur.Application table (master and transaction data) türünü seçmek için bu alana "A" girin. Bu tip tablolardaki malzeme numaraları ve personel numaraları gibi ana veriler (master data) nadiren değişirken, envanter işlemleri gibi işlem verileri (transaction data) sıklıkla değişir.Farklı delivery class özelliklerine sahip tablolar müşteri kopyalarında, yeni kurulumlarda ve güncellemelerde farklı işlemlere tabi tutulur. Örneğin, bir müşteri kopyası genellikle ana veri ve işlem verilerini kopyalamaz.
- Data Browser/Table View MaintenanceData Browser/Table View Maintenance alanındaki ayarlar standart SAP bakım araçları ile veri kayıtlarını görüntüleme ve bakımını yapma yetkilerinin sınırlarını belirler. Eğer bu yetkileri sınırlandırırsanız, sözlükte yeni veri kaydı oluşturamayabilirsiniz.Bu yüzden burada Display/Maintanence Allowed seçilmedilir. Böylece sözlükte çalışmak için tüm yetkilere sahip olursunuz ve yeni veri kayıtları yaratabilir, mevcut kayıtları değiştirebilir veya silebilirsiniz.
Fakat başlamadan önce, bu noktaya kadar tüm çalışmalarınızı kaydedin. Bunun için Save (
) tuşuna veya Ctrl+S tuşuna basın (Şekil 3).

![]() |
Tablonun Kaydedilmesi |
Karşınıza gelen ekranda önemli bir karar vermeniz beklenir: Tablonuzun bir başka SAP sistemine taşınıp taşınamayacağı. Eğer taşınabilirse, bir package tanımlamalısınız. Package ilgili ABAP Workbench nesnelerini gruplandırır ve taşıma katmanını tanımlar. Taşıma katmanı ise nesnelerin hedef sisteme taşınabilir olmasını veya yerel SAP sisteminde kalmasını belirler.
- [message]
- Taşımak veya Taşımamak
- Bu konu dikkatlice düşünülmelidir. Gerçek SAP projelerinde (çok katmanlı sistemlerin olduğu bir uygulamada) sistem yöneticinizden package ismini öğrenmeniz ve package alanına bu ismi girmeniz gerekir, çünkü test ve geliştirme sistemlerinde nesneler yaratır ve sonra bunları canlı sistemde kullanırsınız. Bu örnek için, böyle bir işlem gereksizdir. Tablo ve başlangıçtaki raporlar, yerel test ve geliştirme sistemi üzerinde kalabilir.
Tabloyu Local Object olarak kaydedin (Şekil 4). Bu durumda tablo otomatik olarak $TMP package'ına atanır. $TMP package'ındaki nesneler asla taşınmazlar ve versiyon yönetimine konu edilmezler.
![]() |
Şekil 4. Create Object Directory Entry Ekranı ve Package Seçimi |
Daha sonra Fields sekmesinde (Şekil 5) tablonun alanlarını girin ve alanın anahtar alan olup olmadığına, veritabanında varsayılan değeri olup olmadığına ve hangi veri öğesinin (data element) alanın özelliklerine uygun olduğuna karar verin.
- Field (Alan)
Alan adı seçerken adlandırma kurallarını dikkate almanıza gerek olmasa da anlamlı bir isim seçmelisiniz. Tablo alanı her zaman tablo ile adreslendiğinden (Tablo_adı-Alan_adı formatında) müşteri alanları ile SAP alanları arasındaki fark bu noktada önemli değildir. Alan adları maksimum 30 karakter uzunluğunda olabilir. - Key (Anahtar)
Burada alanın anahtar alan olup olmadığını tanımlarsınız. Anahtar alanlar tablo alanlarının başında yer almalıdır ve bu alanlar arasına anahtar olmayan alanlar giremez. Anahtar alanlar benzersiz bir satır tanımlamak için kullanılır. Ayrıca anahtar alanlar sıralama ve arama kriteri olarak da kullanılırlar. Maksimum 16 tane anahtar alan tanımlanabilir.
![]() |
Şekil 5. Tablonun Bakımı |
- Initial Values (Başlangıç Değerleri)
Eğer veri kaydındaki bir alan boş ise (yani geçerli bir değere sahip değilse) başlangıç değerlerindeki ayar önem kazanır. Eğer alanın veri tabanında kendi türüne uygun bir başlangıç değeri ile (örneğin sıfır) doldurulmasını istiyorsanız Initial Values alanını tıklamanız gerekir. Bu alanda bir seçim yoksa alan gerçekten boştur. Daha sonra, herhangi bir zamanda değer girişi yaparak alan içeriğini doldurmanız mümkündür. Genellikle her zaman başlangıç değerlerini önceden atamanız gerekir, çünkü aksi takdirde veri tabanındaki alan null değerler içerebilir. Programlama aşamasında, null değerler kolaylıkla başlangış değerleri ile karıştırılabilir ve bu durum istenmeyen hatalara yol açabilir. - Data Element (Veri Öğesi)
Burada data elementin adını girer veya varsayılan bir data elementini seçersiniz. Data elementleri alanların uzunluğu, türü vb. bazı niteliklerini depolar.
Bu kiymetli bilgilendirmeler icin tesekkür ederim.
YanıtlaSilData elementi biraz daha aciklarmisiniz.