workbench etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
workbench etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

28 Haziran 2011 Salı

SAP Geliştirme (Workbench) Ortamları - 3

Veri Öğeleri (Data Elements):

Veri öğeleri SAP için temel bir veri tipidir. Program yazarken, tablo veya yapı oluştururken veriler tanımlarız. Bu verileri tanımlama esnasında tam sayı, karakter gibi bir veri türüne bağlamak isteriz. SAP'de bu görevi çoğunlukla veri öğeleri üstlenir.

Veri öğeleri tanımlarken ismi, tanımı ve alan isimleri veririz. Veri türü ve uzunluğu "Domain" ya da ABAP dilinin tanıdığı ön tanımlı temel veri türü ile belirleriz. Ayrıca bu tanımlanan veri öğesine "Arama yardımı" da istersek verebiliriz. Eğer yine istenirse bu veri türünün ne işe yaradığı, nerede kullanıldığı gibi bilgileri dokümantasyon bölümüne girebiliriz.Veri öğesi için girilen bütün metinlere çeviri yapmak da mümkündür.

Tablo - Veri öğesi - Domain ilişkisi


Tablo Tipi:

Tablo tipi bir yapı verilerek oluşturulan ABAP sözlük tablo tipidir. Kodlama içinde de dahili tablo tanımlama için kullanılır.

Tablonun görevine göre erişim tipi seçilir. Erişim tipleri; standart, sıralı, hash, index ya da belirsiz olarak seçebiliriz.

En son olarak anahtar alanlar tanımlanır ve tablo tipimiz hazır olur.

Tip grubu:

Aynı zamanda tip havuzu da denir. Burada tanımlanacak tipler kod olarak yazılır ve program yazarken bu havuz kullanılır. Tip havuzunu birçok programda da kullanılır. Böylece kod tasarrufu sağlanmış olur.

Etki Alanı (Domain) :

Domainlerin veri öğelerine atanan veri tipleri olduğunu yukarıda görmüştük. Domainler tek başlarına veri tanımlaması için kullanılamazlar. Ancak bir veri öğesine bağlanabilirler. Domainler ise temel ABAP veri tipleri üzerine kurulur. Burada bu domaine atanacak verinin alabileceği değerleri sınırlandırabiliriz. 2 yöntem vardır. Birincisi sabit değer vermektir. İkincisi ise anahtar alanı bu domaine atanmış bir veri öğesi olan bir tablo vermektir. Böylece bu domaine atanmış bir veri öğesinin alabileceği değer tablodaki değerler ile sınırlandırılmış olur.

Örnek bir Domain - Veri Öğesi - Tablo ataması:

Bu örnekte alanların veri tipi ve uzunluğu daima uyumludur.

Arama Yardımı (Search Help):

Arama yardımı R/3 sisteminin standart fonksiyonlarındandır. F4 tuşu bu amaç için kullanılır. Böylece kullanıcı, F4 bastığı alanın alabileceği değerleri bir liste halinde görür.

2 tür arama yardımı vardır: Temel arama yardımı, kollectif arama yardımı. Kollektif arama yardımı, temel arama yardımlarından oluşur. Temel arama yardımı tablo ve o tablonun alanları üzerinde kurulur. Bu şekilde istenen değerleri arama yardımında görürüz.

Örnek: İkincil anahtarlar sayesinde arama yardımı şeması.

Kilit nesneleri (Lock Objects):

R/3 sisteminde bütün kullanıcılar aynı işleme aynı anda ulaşabilir. Bazen bu durum çakışmalara neden olur. Hangi işlemin geçerli olması gerektiğini sistem tayin edemez. Bu yüzden kilit nesneleri kullanılır. Böylece bir kullanıcı bir veri tabanına erişim sağlarken bir başka kullanıcı o veri tabanına erişmek isterse bu kilit nesnesi ile karşılaşır ve hata alır. Sonuç olarak veri kaybı yaşanmaz.

Kilit nesnesini oluşturduktan sonra sistem iki tane fonksiyon üretir. Bu fonksiyonlar kilitlemeyi ve kilidi kaldırmayı sağlarlar.

31 Mayıs 2011 Salı

SAP Geliştirme (Workbench) Ortamları - 2

SAP Sisteminde Veri Tabanları:

Daha önce de bahsettiğimiz gibi R/3 sisteminde 3 sunucu sistemi vardır. 1.si sunum 2.si derleyici ve 3.sü ise veri tabanı sunucusudur. Oluşturulan her tablo SAP sisteminin kullandığı veri tabanı yönetim sisteminde de oluşturulur.

SE11 işlem kodu SAP tablosu oluşturmak için kullanılır. Bunun haricinde bu işlem kodunda; birleştirilmiş tablolar (View), yapılar (Structure), veri öğeleri, tablo tipleri, tip havuzları, alan adları, arama yardımları ve kilit nesneleri oluşturulur. Bunlara ABAP sözlük nesneleri denir.

Tablolar:

Tabloların çeşitli görevleri vardır. Ana veri tutmak, işlemsel veri tutmak gibi... Alanlar verilmeden önce görev belirlenir. Tablolar her üst birimde farklı veriler tutar ama istenilirse üst birim bağımsız, yani bütün üst birimlerde ortak olan verilerden oluşan tablo da yapılabilir. Bunu MANDT parametresi belirler çünkü MANDT üst birim bilgisini tutar.

Alanlar verilirken önce anahtar alanlar verilir. Böylece veri tabanındaki tekillik şartı sağlanmış olur. Anahtar alansız bir tablo olamaz. Dolayısıyla hangi alan grubunun bu veri tabanında tekilleşeceğini önceden karar vermek gerekir. Veriler bu tabloda tutulmaya başladıktan sonra anahtar alanlarda değişiklik yapılamaz. Bu yüzden anahtar alanlara müdahale etmek istenildiğinde önce tablonun boş olduğundan emin olmak gerekir. Doğal olarak bu da veri kaybına yol açar.

Alanlar veri öğeleri ile beraber verilir. Veri öğelerinden bir sonraki makalemizde daha detaylı bahsedeceğiz. Veri öğesi vererek o alanın hangi veri tipinde ve ne kadar uzunlukta olacağı tayin edilir. İstenilirse o alanın alacağı değerler de sınırlandırılır. Bu işlem kontrol tablosu (Check Table) sayesinde olur. Bu şekilde ikincil anahtarlar (foreign key) ile başka tablolar bağlanmış olur. Aynı zamanda yine istenilirse alanın alabileceği değerleri gösteren arama yardımı da verilir.

Tabloları oluşturmadan önce, tabloların ne kadar veri tutacağını belirlemek gerekiyor. SAP buna göre sunucuda yer açıyor. Burada verilen değer herhangi bir sınır teşkil etmez şöyle ki eğer veri sayısı ön görülen veri sayısından fazla olursa SAP ona göre yeri genişletebiliyor.

Ana veri tabloları için bakım ekranları oluşturulur. Böylece verilere müdahale edilir (eklenir, değiştirilir, silinir). Genel itibari ile bu bakım ekranı oluşturulduktan sonra SM30 işlem kodu ile tablo ismi verilerek bakım gerçekleştirilir. SM30 genel bir işlem kodu olduğu ve her tablonun bakımının yapılmaması gerektiği için yetkilendirme aşamasında SM30 kullanma yetkisi genelde kısıtlandırılır. Alternatif olarak tabloya özel bir işlem kodu oluşturulur ve kullanıcının tablo ismi vermeksizin bu tabloya müdahale etmesi sağlanır. Bu işlemlerin SAP'de nasıl yapıldığını daha sonra göreceğiz.

SE16 işlem kodu ile verileri görebiliriz ama her zaman müdahale edemeyiz. Müdahale edebilmek için tablo oluştururken gerekli izinleri vermek gerekiyor.

Birleşik Tablolar (Views):

Adından da anlaşılacağı gibi birden fazla tablonun ortak alanları sayesinde birleşmesinden oluşmaktadır. Birleşme esnasında veri filitrelemesi de yapılabilir. Birleşen her tablonun bütün alanlarının gösterilmesine de gerek yoktur. İhtiyaç duyulan alanlar viewlarda gözükür.

Bakım, arama yardımı gibi çeşitli amaçlar için kullanılır. Genel itibari ile ABAP programlarında daha kolay veri çekebilmek için kullanılır. Tablolardaki gibi SE16 ile veriler gösterilir, SM30 ile verilere müdahale edilir.

Yapılar (Structures):

Tablolar ve viewlar aslında bütün veri tabanı yönetim sistemlerinde mevcuttur. Ama yapılar SAP için özel bir kavramdır. Birçok yerde kullanılmaktadır. Yapılar veri tutmaz ama aynı tablo ve viewlardaki gibi alanlar, veri öğeleri ile beraber girilir. Bu şekilde ABAP programında kullanılan herhangi bir dahili tablonun veri tipi olarak bir yapı verilebilir. Aynı şekilde birden fazla tabloda ortak alanlar mevcut ise, bu alanlar bir yapıda toplanır ve bu tablolara dahil edilir. Böyle olduğu zaman ortak alanlara müdahale edildiğinde veya alan eklenip çıkarılmak istenildiğinde yapı üzerinden işlem yapılır ve bu tablolara otomatik işlenmiş olur.

SAP ve SAP olmayan sistemler arasındaki entegrasyon yapıları için de bu yapılar kullanılır.

Bir sonraki konumuzda diğer sözlük nesnelerinden bahsedeceğiz.