Bu bölümde alan (field), veri öğesi (data element) ve domain gözden geçirilecek ve bu nesnelerin nasıl yaratıldığı incelenecektir. Örnek ...
Bu bölümde alan (field), veri öğesi (data element) ve domain gözden geçirilecek ve bu nesnelerin nasıl yaratıldığı incelenecektir. Örnek olarak oturum açma ekranında girilen istemci (client) numarasını saklyan bir alan (field) ile başlayalım. Tablolar gibi nesneler veritabanında istemciden bağımsız şekilde ve merkezi olarak depolanır. Bu tip nesnelere birden fazla istemci tarafından erişilebilir. Doğru veri kaydını tanımlamak için doğru istemciyi kullanmak oldukça yararlıdır.
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.
Veri Öğesinin Yaratılması
Yaratacağımız ilk alan CLIENT isimli bir anahtar alandır. Veri öğesi (data element) olarak, mevcut MANDT öğesini kullanın. Bu girişleri yaptıktan sonra Kaydet veya Ctrl+S tuşuna basınız. Sonrasında ilk satırın gri sütunlarına dikkat ediniz (Şekil 1).
![]() |
Şekil 1. Mevcut Bir Veri Öğesi İle Tablo Alanı Yaratılması |
MANDT veri öğresi zaten mevcut ve aktif olduğundan, tüm özellikleri ve ilgili domainler otomatik olarak devralınır. Bizim örneğimiz için bu özellikler; veri tipi, uzunluk, ondalık basamak sayısı ve kısa açıklamadır. Bu tablo alanında daha fazla bir iş yapmanıza gerek yoktur.
Yeni bir veri öğesi (data element) ve yeni bir domain oluşturmak istediğinizde işlem biraz daha karmaşıklaşır. Ama unutmayın ki, tekerleği yeniden icat etmek zorunda değilsiniz. Mantıklı bir alternatif mevcut nesneleri (veri öğeleri ve domain’ler) kullanmaktır.
Tablonun ikinci alanı 1 ve 99.999 arasında tekil bir numara olan üye numarasıdır. Alan adı olarak MNUMBER giriniz. Veri elemanları ile çalışırken müşteri adlandırma kurallarını dikkate almanız gerektiğinden, bu sınırlar dahilinde istediğiniz herhangi bir isim -örneğin ZMNUMBER- seçebilirsiniz. Girişleri yapın ve sonra alanı bir anahtar alan olarak tanımlayıp çalışmanızı kaydedin.
Data element (ZMNUMBER) henüz tanımlı olmadığından, data element'ten sonraki gri alanlar şu anda doldurulmaz. Bir data element yarattığınızda ABAP Workbench'e gitmeden bu data elemetin özelliklerini belirtmek isterseniz ilgili data element üzerine çift tıklayın. Sizi ilgilendiren nesneye çift tıkladığınızda (bu örnekte ZMNUMBER data element'i), sistem bir veri öğesi oluşturmak isteyip istemediğinizi sorar (Şekil 2). YES seçeneğinin tıklanması söz konusu veri öğesinin bakımının yapılacağı pencereyi açar (Şekil 3).
![]() |
Şekil 2. Veri Öğesinin Yaratılması |
![]() |
Şekil 3. Veri Öğesinin Bakımı |
- [message]
- Veri Tipi
- Data Type sekmesinde ilgili domainin adını giriniz. Veri öğeleri ve domainlerin farklı tip nesneler olduğunu unutmayın. Yeni domain için yeni bir ad seçebilir veya data element için kullanılan aynı adı tekrarlayabilirsiniz.Ancak, müşteri adlandırma kurallarını da göz önünde bulundurmanız gerekir. Domain’ler sistemin doğru nesneyi tanımlamasını kolaylaştırır. Bu örnekte basitlik ve bütünlük sağlamak için, domain de ZMNUMBER olarak adlandırılacaktır. Domain adını girin ve data elementi kaydedin.
Yeni nesne için yine bir kısa açıklama girin. (Açıklama olarak "Data Element for Member Number" yazın) Data element kendi başına ayrı bir nesne olduğu için, sistem bu nesnenin taşınabilir olup olmadığını bilmek isteyecektir. Tekrar bir package adı girmelisiniz, ancak bu ilk örnek için taşıma yapmayacağınızdan, data elementi local object olarak kaydedin (Şekil 4).
![]() |
Şekil 4. Veri Öğesinin Kaydedilmesi |
FIELD LABEL sekmesinde, daha sonra programlar ve listelerde çıktı olacak tanımlamaları belirtin. Daha sonraki programlarının ekran şablonlarında tablo alanını (field) kısa, orta veya uzun metni ile gösterebilirsiniz. Başlık alanına girilen metin ise listelerde sütun başlığı olarka kullanılır. Burada metinleri girin ve FIELD LABEL sekmesinin ilgili alanlarını aşağıdaki şekilde gösterildiği gibi doldurun. Girişlerinizi kaydettikten sonra, sistem metinlerin uzunluğunu hesaplar ve uzunluk alanını (length) doldurur. Böylece bir veri öğesi oluşturmak için gerekli minimum işlemleri yaptınız.
![]() |
Şekil 5. Alan Etiketlerinin Bakımı |
- [message]
- Dokümantasyon
- Geliştiriciler ve kullanıcılar genellikle diğer geliştiriciler tarafından sağlanan programların zayıf dokümantasyonuna sinirlenir. Biz data element'imiz için açıklayıcı bir metin oluşturmak istiyoruz. Böylece eğer, daha sonra, alanın oluşturulma sebebini bilmeyen birisi (alan ismi sezgisel olsa bile) olursa, bu kişi bir açıklamaya ve giriş için yardım metnine erişebilir.
Tüm belgeler ve metinler oturum açma dilinde muhafaza edilir, bizim örneğimizde bu İngilizce'dir. Gerektiğinde, metinler ve belgeler ayrı bir araç ile hedef dile çevrilmektedir.
Başka bir SAP aracı olan, SAPscript Editör ekranını görüntülemek için DOCUMENTATION tuşuna tıklayın (Şekil 5). SAP yazılım dünyasında, SAPscript aracı formları tasarlamak için kullanılır; kendi editörü ve komutları vardır. SAPscript Editör hakkında daha fazla ayrıntı konumuzun kapsamı dışındadır, bu yüzden sadece Definition'a tıklayınız ve yardım metni olarak aşağıdaki şekildeki gibi “Please insert the number of the member (valid from 1 to 99999)” giriniz (Şekil 6). Girişlerinizi kaydedin ve veri öğesi bakım ekranına dönmek için (F3) tuşuna basın.
![]() |
Şekil 6. Yardım Metninin Bakımı |
Domain Yaratılması
Dictionary: Change Data Element ekranın Data Type sekmesinde domain adını girdiniz. Şimdi data element ile ilgili ilk çalışmalarımızı tamamlamış olarak, domain yaratmaya odaklanabilirsiniz. Domain yaratmak için domain adı (ZMNUMBER) üzerine çift tıklamanız yeterlidir.
Sistem bir domain yaratmak isteyip istemediğinizi sorar. YES'i tıklatırsanız, domain için bakım ekranı görüntülenir (Şekil 7). Fakat domain ile ilgili sekmelere bakmadan önce, kısa bir açıklama girmeniz gerekir: "Domain for Member Number"
![]() |
Şekil 7. Domain Bakımı |
DEFINITION sekmesinde, ilk olarak domain'in veri türünü belirtmeniz gerekir. Gerçek dünyada, alanın tüm özellikleri hakkında kararlar tablo tasarlandığı zaman alınmış ve belgelenmiştir. Ancak bilgi için, F4 tuşuna basabilir ve sözlükte bulunan veri türlerini ve özelliklerini görebilirsiniz. Bu örnek için, veri tipi olarak NUMC seçiniz -sayısal karakter dizisi- ve çıktı uzunluğu olarak 5 giriniz. Domain'i local object olarak kaydediniz.
Veri öğesi ile ilgili yazmış olduğumuz dokümana uygun olarak, geçerli değerler aralığını sınırlamak yararlı olabilir. Domain bakım ekranında bu amaç için aşağıdaki şekilde görebileceğiniz Value Range sekmesi bulunur (Şekil 8).
![]() |
Şekil 8. Domain İçin Değer Aralığının Tanımlanması |
Temel olarak, 3 farklı sınırlama türü desteklenir. Burada herhangi bir giriş yapılırsa, sistem yalnızca burada tanımlanan değerleri geçerli olarak kabul eder ve diğer tüm girdileri reddeder. Ancak sistemin nasıl tepki vereceğinin veri türüne bağlı olduğu unutulmamalıdır. Sabit değerler (tekil değerler ve aralıklar) tüm veri türleri için girilemez. Ekranlarındaki giriş kontrolleri de veri türüne bağlıdır:
- Tekil Değerler (Single Values)
Eğer tekil değerler belirtmek isterseniz, geçerli her bir değeri listeye girmeniz ve açıklamanız gerekir. Domain'de izin verilen girdilerin sayısı nispeten küçük olduğunda mantıklı bir sınırlama türüdür.
- Aralıklar (Intervals)
Eğer domain için geçerli aralıkları belirtmek isterseniz, aralıktaki en küçük ve en büyük değerler belirtilir. Aralığının her iki ucundaki değerler de dahil olmak üzere, bu iki değer arasındaki tüm değerler geçerlidir. Bir domain için birden çok aralık belirlenebilir.
- Değer Tablosu (Value Table)
Tabodaki alan için giriş kontrollerinde çok miktarda veri olduğunda, bir değer tablosu ile çalışmanızı öneririz. Unutmayın ki, sadece VALUE TABLE alanını doldurmak kontrol sağlamaz; bunun için tablo alanında bir foreign key implementasyonu gerekir.
YORUM