Anahtar Olmayan Alanların Genişletilmesi Müşteriye özgü saydam bir tabloyu anahtar olmayan alanlar ile genişletmek için, yeni bir tablo...
Anahtar Olmayan Alanların Genişletilmesi
Müşteriye özgü saydam bir tabloyu anahtar olmayan alanlar ile genişletmek için, yeni bir tablo yarattığınızda yaptıklarınıza çok benzer şekilde çalışacaksınız. Yeni alan adları atayacak, yeni veri elemanları ve domain'ler yaratacak veya mevcut veri elemanları veya domainleri yeniden atayacaksını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.
- [message]
- Etkinleştirme Sırasını Dikkate Alın
- Nesneleri etkinleştirdiğinizde, etkinleştirme sırasını dikkate alın. Bir tabloyu etkinleştirmek için, atıfta bulunulan tüm veri öğelerini etkinleştirmeniz gerekir. Bir veri öğesini etkinleştirmek için, atıfta bulunulan domain'ler etkinleştirilmelidir. Bu yüzden tüm nesnelerde tutarsızlık olup olmadığını kontrol etmeli ve ancak ondan sonra domain, veri öğesi ve tabloları etkinleştirmelisiniz. Prosedürler her nesne için aynıdır ve her tablo alanında tekrarlanmalıdır.
Şimdi birkaç alan ile tabloyu geliştirmeye çalışın. İlk olarak üyenin cinsiyeti için bir alan ekleyin. Alan CHAR tipinde (karakter dizisi) ve 1 uzunluğunda olmalıdır. Alanın amacı cinsiyet anahtarını saklayabilmektir. Tabloda alan bakımı için bir veri elemanı oluşturma ve veri elemanı için bir domain oluşturma, önceki bölümlerde anlatıldığından, sizin için zor olmamalıdır. Herhangi bir sorunuz varsa bölümü tekrar okuyabilirsiniz.
Domain'lerde Sabit Değerlerin Bakımı
Domain'ler yeni bir bakış açısı içerir: Cinsiyet anahtarı için sadece belirli değerlere izin verilmelidir. Gelecek ABAP programları giriş yardımı sunmalı ve sistem tüm diğer girdileri reddetmeli, böylece cinsiyet anahtar alanı sadece kendisi için tanımlanan değerleri içerebilmelidir. Bu gereksinimi karşılamanın bir yolu, domain'de sabit değerleri saklamaktır. Bu, cinsiyet anahtarı gibi az miktarda veri olduğunda, oldukça tipik ve uygulanabilir bir yöntemdir. Tabii ki, çok miktarda veri olduğunda farklı bir yöntemle çalışacaksınız, alternatif bir yaklaşım aşağıda sunulmuştur.
Sabit değerleri domain'de saklamak için, domaini yarattıktan sonra bakım ekranında VALUE RANGE sekmesine gidin ve izin verilen değerleri buraya girin (Şekil 1).
![]() |
Şekil 1. Domain'de Sabit Değerlerin Bakımı |
Erkek (M), kadın (F) ve bilinmeyen (U) için üç cinsiyet anahtarını tekil değerler olarak belirtin. Ayrıca sabit değerleri aralık olarak ta girebileceğinizi unutmayın, ancak bizim örneğimiz için bu seçeneği konuşmamız gerekmez.
Sabit değerlerin bakımını yaptıktan sonraki her şey zaten size tanıdık gelecektir. Domain, veri öğeleri ve tabloları etkinleştirir ve sabit değerlerin etkilerini test edersiniz.
- [message]
- ABAP Dictionary'de Giriş Yardımı Simgesi
- Basit bakım sırasında bile, cinsiyet giriş alanını incelediğinizde artık alanın yanında bir giriş yardım simgesi göreceksiniz (Şekil 2).
![]() |
Şekil 2. Veri Seçimi İçin Giriş Yardımı |
![]() |
Şekil 3. Veri Girişi Yardım Listesi |
Üzerine çift tıklayarak veya satırı vurgulayarak (sadece değerin üzerine tıklayın ve ardından KOPYALA düğmesini tıklayın) istediğiniz değeri seçin. Değer otomatik olarak cinsiyet alanına aktarılır.
- [message]
- Giriş Kontrol
- ABAP Sözlüğünde veri girişi seçeneklerinin basit olması, ek doğrulama yapılmadığı anlamına gelir. Bu sorun değildir, çünkü kullanıcılar ABAP Dictionary'de çalışmaz. Kullanıcılar, örneğin finans ve muhasebe iş uygulamalarında çalışır. Domain'deki sabit değerlerin etkisini tam olarak, ilgili domainlere başvuran tablo alanlarını kullanan programlar ve diyaloglar ile çalışırken fark edeceksiniz.
Giriş kontrolü yalnızca CHAR ve NUMC veri türleri için gerçekleşir. İş uygulamalarındaki ekranlar ile sadece giriş yardım listesimdeki sabit değerlerin girilmesi sağlanır.
Para ve Miktar Alanları İçin Önemli Noktalar
Para ve miktar alanları için bazı önemli noktalara dikkat edin. İlk olarak, ABAP Sözlükteki özel veri türlerinin varlığını göz önünde bulundurun, çünkü bu alanlara tutarları veya miktarları girersiniz. Para alanları için veri türü CURR; miktar alanları için veri türü ise QUAN'dır. Her iki alan da DEC veri türüne (Counter or amount field with comma and sign) karşılık gelir ve maksimum 31 karakterlik alan uzunluğuna sahiptir. Tahmin edebileceğiniz gibi, yalnızca tutar ve miktara ilişkin bilgiler yeterli değildir.
Para için, tutarına karşılık gelen para birimini bilmeniz gerekir. Dünyada 180'nin üzerinde para birimi ve beraberinde onların döviz kurları mevcuttur. Belirli bir tutarın para birimi, finans ve muhasebe departmanları için son derece önemlidir. Bu yüzden, CURR veri türündeki para için miktar alanları, para birimi için CUKY veri tipindeki referans alanına bağlantılı olmalıdır. CUKY veri türündeki alan para miktarı için referans alandır ve sabit 5 karakter uzunluğundadır.
Benzer bir durum miktar alanları için de geçerlidir, ancak miktar alanları ölçü birimine refere eder (litre veya ton gibi) ve ölçü birimleri UNIT (Unit key for QUANN fields) tipinde alanlara girilir. UNIT tipi alanlar da üç karakterlik sabit uzunluğa sahiptir.
Uygulamalı bir örnek olması için, tablomuza ek iki alan girin. Para miktarı için MFEE ve para birimi için MCURRENCY alanlarını kullanın. Her iki alanı ve karşılık gelen veri elemanları ve domain'leri de alan listesine kaydedin (Şekil 4).
Şimdiye kadarki örneklerde kullandığınız alanların aksine, para ve miktar alanları içeren tabloyu basitçe aktive edemezsiniz. ACTIVATE düğmesi ile bunu denerseniz, bir hata mesajı alırsınız (Şekil 5).
Para için, tutarına karşılık gelen para birimini bilmeniz gerekir. Dünyada 180'nin üzerinde para birimi ve beraberinde onların döviz kurları mevcuttur. Belirli bir tutarın para birimi, finans ve muhasebe departmanları için son derece önemlidir. Bu yüzden, CURR veri türündeki para için miktar alanları, para birimi için CUKY veri tipindeki referans alanına bağlantılı olmalıdır. CUKY veri türündeki alan para miktarı için referans alandır ve sabit 5 karakter uzunluğundadır.
Benzer bir durum miktar alanları için de geçerlidir, ancak miktar alanları ölçü birimine refere eder (litre veya ton gibi) ve ölçü birimleri UNIT (Unit key for QUANN fields) tipinde alanlara girilir. UNIT tipi alanlar da üç karakterlik sabit uzunluğa sahiptir.
Uygulamalı bir örnek olması için, tablomuza ek iki alan girin. Para miktarı için MFEE ve para birimi için MCURRENCY alanlarını kullanın. Her iki alanı ve karşılık gelen veri elemanları ve domain'leri de alan listesine kaydedin (Şekil 4).
![]() |
Şekil 4. Para Birimi Olan Tablo Örneği |
![]() |
Şekil 5. Tablonun Etkinleştirilmesi Sırasındaki Hata Mesajı |
![]() |
Şekil 6. Para Birimi Alanı İçin Referans Alanın Bakımı |
Referans alan ve referans tablonun bakımını yaptıktan sonra aktivasyonda artık sorun olmayacaktır. Önceden birkaç kez yaptığınız gibi, ABAP Sözlük bakım ekranından veri girerek tablonun işlevselliğini test edin.
- [message]
- Foreign Key'ler İle Giriş Kontrolü
- Bu aşamada herşeyin tamamen düzgün çalıştığını düşünüyoruz. Şimdiye kadar hiç de fena değil. Henüz herhangi bir giriş kontrolü ayarlanmadığından, istediğiniz herhangi bir para birimi için herhangi bir kısaltma kullanabilirsiniz. Fakat sorumluluk sahibi herhangi bir işadamı, bunun düşüncesinden bile korkar. Sadece gerçek ve geçerli para birimi girdiğinizden emin olmak için, bir foreign key oluşturmak gerekir.
YORUM