Şimdiye kadar, ek tablo alanlarını doğrudan alan listesinde oluşturdunuz. Müşteriye özel tablolarda, bir tabloyu değiştirmek için yetkili...
Şimdiye kadar, ek tablo alanlarını doğrudan alan listesinde oluşturdunuz. Müşteriye özel tablolarda, bir tabloyu değiştirmek için yetkili olmalısınız. SAP standart tabloları için, ayrıca bir nesne anahtarınız olmalıdır. Ortaya çıkacak iş yükünü göz ardı etsek bile, standart tablolarda müşteriye özel alanlar oluşturmak son derece risklidir. Yazılımın yeni sürümü müşteriye özel alanla aynı ada sahip bir alan içerebilir, ve bunun sonuçları öngörülemez.
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.
- [message]
- Standart Tabloların Geliştirilmesi
- Bu durumdan kaçınarak, tabloları geliştirmek için başka seçenekleriniz de vardır. Standart veya müşteriye özel bir tabloyu geliştirmek için append structure'ları kullanabilirsiniz, böylece tablonun çekirdeği değişmeden kalır. Append structure ihtiyaç duyulan ve bu nedenle tabloya eklenen (appended) herhangi bir tamamlayıcı, müşteriye özel alan için oluşturulur. Bu yöntem, size her türlü standart tabloyu geliştirme olanağı sağlar. Ayrıca bu teknik, SAP yazılım güncellemesi sırasında müşteriye özel geliştirmeleri üzerine yazılmaktan ve tahrip olmaktan korur.
Her append structure tam olarak bir tabloya atanır, ancak her tablo birkaç append structure'a sahip olabilir. Append structure'da oluşturulan alanlar, ABAP programlarında diğer alanlar gibi Table_Name-FIELD_NAME ile adreslenir. Alanlar diyaloglara bağlanırsa, bunlara aynı diğer tablo alanları gibi davranılır.
Append structure'ın prensibini açıklamak için, basit bir örnek kullanacağız. ABAP Dictionary bakım ekranında, bir append structure oluşturmak için Append Structure... tuşuna tıklayın. (Şekil 1)
![]() |
Şekil 1. Bir Tablo İçin Append Structure Yaratılması |
- [message]
- Önerilen İsimleri Kabul Edin
- Append'e bir isim atadığınızda, append structure'ın adının müşteri adlandırmalarına uyması gerektiğini unutmayın. Yani, isim Z ile veya /SAPMUHASEBE/ gibi kayıtlı müşteri adınız ile başlamalıdır. Enter tuşu ile önerilen adı kabul ettiğinizde (Şekil 2), sistem append structure için bakım ekranını görüntüler. Bu ekran tablo için bakım ekranına benzer ancak aynısı değildir (Şekil 3).
![]() |
Şekil 2. Append Structure İçin İsim Belirlenmesi |
![]() |
Şekil 3. Tablo İçin Append Structure Bakımı |
Kısa bir açıklama girdikten sonra, COMPENENTS sekmesinde yapının bileşenlerini oluşturun. (Bizim örneğimizde ZZCOURSETITLE adlı alandır) Alan adının başındaki ZZ bir rastlantı değildir: Bir append structure'daki alanlar için müşteri adlandırması her zaman ZZ veya YY ile başlar. Nedeni aslında oldukça basittir. Çünkü, standart tabloların bazı alanları zaten Z ile başlar, ve ABAP ve iletişim programlarında bir append structure'ın alanları Table_Name-FIELD_NAME (yani, standart tablo alanları ve müşteriye özel tablo alanları aynı şekilde adreslenir) ile adreslenmektedir, eğer Append structure'ın müşteriye özel alanları ile standart tablonun alanlarını ayırt edemezseniz çakışmalar oluşabilir. İki tür alan arasında ayırt etmenin tek yolu müşteriye özel alanların isimlerinin ZZ veya YY ile başlamasıdır (veya bir kayıtlı müşteri ad alanı ile).
ZZCOURSETITLE alanı ve ZZCOURSETITLE veri elemanı (data element) oluşturun. Structure'ı kaydedin ve sonra forward navigasyon kullanın (ZCOURSETITLE'a çift tıklayın); sistem data elementi yaratır. Bir sonraki ekranda, structure'lar ile çalışmayı tablo alanları ile çalışmaktan ayıran bir özelliği fark edeceksiniz. Genel olarak, yapılar ilave yapılar veya tablolar içerebilir (ama bu şu anda bizi ilgilendirmez).
Structure'ın bileşenleri bir data element'e refere eden alanlar da olabilir. Bu özel durumda, bir append structure'da izin verilen tek geliştirme tabloda yeni alan oluşturmak, foreign key tanımlamak, veya search help bağlamaktır (Şekil 4). Bu nedenle, tür olarak Data Element'i seçin ve daha sonra data element ve domain'i kaydedin ve aktive edin. Sonra append structure'ı kontrol edin ve etkinleştirin.
![]() |
Şekil 4. Bileşen Türü |
Bir append structure'ın aktivasyonu, aynı zamanda, karşılık gelen tabloyu aktive eder. Append structure'ın alanları veritabanında tabloya ilave edilir (appended). Tablo aktive edildiğinde, tablonun tüm append structure'ları aranır ve structure'ların alanları veritabanında tabloya eklenir.
Yaptığınız işlemin başarısını ABAP Dictionary'de, tablolar için bakım ekranında FIELDS sekmesinde kontrol edebilirsiniz. Son satırda, FIELD sütunü .Append içerir ve Veri Elemanı (Data Element) sütunu append'in adını içerir, ZAZMEMBER02 (Şekil 5).
![]() |
Şekil 5. Append Yapısı İle Tablo Örneği |
Structure'a ulaşmak ve girdilerini görüntülemek için forward navigation (ZAZMEMBER02'ye çift tıklayın) kullanın. Bakım ekranına dönmek için Geri (Back) düğmesini kullanın.
YORUM