Makale Özeti

Axapta İçin MS SQL SERVER Konfigürasyonları

Makale

AXAPTA – 5
Axapta İçin MS SQL SERVER Konfigürasyonları

Disk ayarları:

Axapta, Sql Server disk kapasitesi için çokda farklılıklar göstermemektedir. Tavsiye edilen sadece veri dosyasının otomatik olarak büyümesinin istenmesi ve bu değerin %10 olarak belirlenmesi ve “auto create statistics” ve “auto update statistics” özelliklerinin aktif edilmesidir.

Hafıza ayarları:

Axapta Sql Server’ın işletim sistemi için minumum 64 MB hafıza, tavsiye edilen olarakda 128 MB hafıza ister. Herbir Axapta tavsiye edilen olarak 4 MB hafıza, veritabanının her bir GigaByte’ı için 100 MD hafıza ister. Önceki yazılarda da belirttiğim gibi, Axapta üzerindeki herbir konfigürasyonda kullanıcı sayısının önemi büyüktür. Burda da Sql Server için kullanılacak hafızanın direk kullanıcı sayısı ile önemi vardır. Toplam hafıza hesabı;

128 (veya 64 işletim sistemi için) + 4 * 50 (50 kullanıcılı bir sistemde) + 100 * 2 (2 GigaByte’lık veritabanı için) = 528

Olarak belirlenebilir.

Not: Buradaki işletim sistemi örneği Windows Server 2000 için verilmiştir.

Sunucu performansının daha iyi olması için hafızanın mümkün olduğunda fazla tutulması tavsiye edilir.

VERİTABANI TEMELLERİ

Axapta MS Sql Server veri tabanının tables, indexes, views özelliklerini kullandığı gibi, stored procedures ve trigger gibi gibi özelliklerini kullanmamaktadır. Bu tür işlemleri veritabanı tarafında değilde, Axapta’nın içinde geliştirilebilecek fonksiyonlar olarak bırakmayı tercih etmektedir.

Tablolar içerisinde sistem bilgilerini içeren tablolar olduğu gibi, kullanıcılara yönelik tablolarda bulunmaktadır. Bu tablolar bir hiyerarşi içerisinde bulunur. Axapta üzerinde var olmayan bir tablo, var olan tablo üzerinde alan ekleme gibi işlemleri yapabilirsiniz. Ayrıca kendi ürettiğiniz tablolarada sınırlı ulaşım hakkı, bu tablo içindeki bir alanın kullanıcı tarafından görünmemesi gibi özellikler tanımlayabilirsiniz.

Axapta üzerindeki arayüzden veri tabanı üzerinde yer bir tablo, index yarattığınız zaman bu tablo eğer geçici bir tablo değilse veri tabanı üzerinde senkronizasyon kurularak aktif hale getirilir. Eğer tabloyu veri tabanında aktif hale getirmek istemezseniz bazı özellikleri güncelleyerek bunu sağlayabilirsiniz.

Bir tablo yaratma ve yukarıda bahsettiğimiz gibi özellikleri (ve diğerlerinin) nasıl kullanabileceğimizi görelim:

AOT (Application Object Tree) üzerinde, sağ tuş NewTable seçilerek yeni bir tablo yaratılabilir. Tablo üzerindeyken niteliklerine ulaştığınızda tablo üzerinde verebileceğiniz özellikleri görebilirsiniz. Her tablo yaratıldığında, RecId ve DataAreaId isimli iki alan varsayılan olan tabloya eklenir. RecId tablo üzerindeki her bir kayıda tekrarsız olarak atanacak olan numeric bilgiyi içerir. Axapta üzerinde birden fazla şirket açılarak sistem kurulabilir. Uygulamadaki her açılan şirket için ayrı bir veritabanı oluşturulmaz. Tüm şirketler için uygulamada tanımlanmış tablolar, alanlar, formlar,... aynıdır. Tabikide istenirse bazı tablolar için şirket bazlı gösterim yapılabilir. Örneğin SalesTable(Satış siparişleri tablosu) tablosunda, eğer üç şirket tanımlı ise üçününde bilgileri tutulur. Bu bilgileri şirket bazlı olarak ayıracak alan DataAreaId alanıdır. DataAreaId alanına şirket tanımlarında şirketlere verilecek olan 3 karakter kod aktarılır. RecId ve DataAreaId alanları sistem tarafından otomatik olarak güncellenir. Kod aracılığı ile siz bir kayıt ekleseniz bile, Axapta bu alanları otomatik olarak günceller. Tablolar üzerinde tanımlayabileceğiniz bazı nitelikleri inceleyelim:

Name: Tablonun ismi bu nitelikden belirtilir. Eğer tablo ismi olarak uzun bir isim verirseniz, Axapta içerisindeki AOT’de tablo adı verdiğiniz gibi görünür ancak SQL Server’a baktığınızda farklı bir isim göreceksiniz. Bu durumda ve diğer isimlendirmelerdeki SQL ile farklılık gösteren bölümler ileride anlatılacaktır.

Label: Tablonun görüntüleme işlemleri sırasında görünecek tanımı.

Temporary: Bir tablo fiziksel olarak değil, geçici olarak kullanılması içinde yaratılabilir. Eğer geçici bir tablo yaratmak istiyorsanız, bu özelliği Yes olarak belirtmeniz gerekecektir. Bu tür tabloların kullanımı sonraki bir yazıda anlatılacaktır.

Systemtable: Bu özellik Yes olarak belirlenirse, bu tablo Axapta tarafından sistem tablosu olarak kabul edilir.

SecurityKey: Axapta üzerinde kayıt bazında, tablo bazında,... gibi güvenlik seviyeleri belirlenebilir. Bu tablonun hangi güvenlik seviyesinde olacağı bu alan aracılığı ile belirlenir. Eğer bu özellik güncellenmezse, yapılan tablo herkes tarafından görüntülenebilir.

MaxAccessMode: Tablonun hangi amaçlar ile kullanılabileceğine buradan karar verilebilir. Varsayılan olarak Delete özelliği verilmektedir. Yani bu tablo üzerinde görüntüleme, kayıt ekleme, güncelleme, silme gibi tüm işlemler yapılabilir demektir. Diğer seviyeler:

         NoAccess      : Bu tabloya hiçbir şekilde erişilemez.

         View             : Sadece tablo içeriği görüntülenebilir.

Edit              : Görüntüleme ve kayıt güncelleme yapılabilir.

Add              : Görüntüleme, kayıt güncelleme ve kayıt ekleme yapılabilir.

CacheLookUp: Tablolar üzerinde ön bellekleme yapılabilir. Bu özellik ile ön bellek seviyelerini tanımlayabiliriz. Bu konu ön bellekleme başlığı altında ayrı bir yazı olarak incelenecektir.

CreateRecIdIndex: Axapta tarafından otomatik olarak tanımlaman RecId alanına göre index tanımı yapılmak istendiğinde bu nitelik Yes olarak güncellenmelidir. Varsayılan olarak No gelir.

SaveDataPerCompany: Makalenin öncesinde her bilgi şirket koduna göre otomatik olarak kaydedilir ve bu sahada Axapta tarafından her yaratılan tabloda otomatik olarak açılır demiştik. Ancak istenirse bu özellik kaldırılabilir. Varsayılan olarak Yes gelen özelliği No olarak değiştirseniz DataAreaId alanını tablo üzerinde yaratmaz ve her şirketten tablo içerisindeki bilgiler görünebilir – kullanılabilir duruma gelir. DataAreaId alanını kullanırsanız hangi şirket üzerinde aktifseniz girilen bilgiler o şirkete ait olur ve şirket değişimi yapınca girilen bilgiler görünmez.

Tablo üzerinde bazı özellikler güncellenirse, sahalar ve bilgiler sistem tarafından otomatik olarak güncellenir. Bu özelliklerin varsayılan değerleri No olarak belirtilmiştir. Yes olarak değiştirerek bu bilgilerin tutulmasını sağlayabilirsiniz.

ModifiedDate: Kayıt üzerinde en son değişiklik tarihi.

ModifiedTime: Kayıt üzerinde en son değişiklik saati.

ModifiedBy: Kayıt üzerinde en son değişikliği yapan kullanıcı kodu.

CreatedDate: Kayıdın ilk yaratıldığı tarih.

CreatedTime: Kayıdın ilk yaratıldığı saat.

CreatedBy: Kayıdın ilk yaratıldığı kullanıcı kodu.

CreatedBy: Tabloyu oluşturan kullanıcı kodu.

Tablolar üzerindeki bazı nitelikler sistem tarafından otomatik olarak tanımlanır. Ve özellikler değiştirilemez.

CreationDate: Tablonun oluşturulduğu tarih.

CreatedTime: Tablonun oluşturulduğu saat.

ChangedBy: Tabloyu en son değiştiren kullanıcı kodu.

ChangedDate: Tablonun en son değiştirildiği tarih.

ChangedTime: Tablonun en son değiştirildiği saat.

LockedBy: Tabloyu kilitleyen kullanıcı kodu.

Yeni oluşturulan Tablo’nun sağ tarafındaki + işaretine bastığınız zaman tablonun özelliklerini görebilirsiniz. Fields, Field Groups, Indexes, Relations, DeleteActions, Methods gibi özellikleri yer almaktadır.

Fields

Tablo üzerinde oluşturulacak alanlar burada tanımlanır. Önceki makalelerde, Axapta üzerindeki tiplerden bahsetmiştim. Bu tipler altında saha tanımı yapabilirsiniz. Field’lar üzerinde verilebilecek önemli bazı nitelikler:

         Visible: Varsayılan olarak Yes gelir. Ancak No olarak değiştirirseniz Tablo içeriğine bakıldığında bu saha görünmez. Uygulamanıza bağlı olarak kullanıcıya göstermek istemediğiniz ve kullanmak zorunda olduğunuz bir saha olursa bu özelliği kullanabilirsiniz.

         ExtendDataTypes: Axapta üzerinde ExtendDataType olarak daha önce tanımlanmış bir tipin adını burada belirtirseniz, bu tipin tüm özellikleri miras alır. Örneğin Müşteri Kodu gibi bir saha tüm tablolarda aynıdır. Bunu bir kere tip olarak tanımlayarak, kullanılacak her tablodaki sahaya extend data type olarak belirtirseniz kolaylık ve bütünlük sağlamış olursunuz.

Field Groups

Bu bölüm AutoReport ve AutoLookup olarak ikiye ayrılır. Tablo üzerinde yarattığınız (istediğiniz kadar) sahaları AutoReport’a sürükleyip bırakırsanız otomatik rapor yapılmak istendiğinde bu tablo seçilirse tanımladığınız sahalar grup içinde görünür ve teker teker sahaları seçmekten kurtulursunuz. Aynı işlemi AutoLookup içerisinde gerçekleştirirseniz, bu tabloya başka bir ortamdan bakılmak istendiğinde tanımladığınız sahaların bilgileri görünür.

Indexes

Tablo üzerinde belirttiğiniz saha / sahalara index’leme yapılması sağlanır.

Relations

Tablonun başka tablolar ile arasındaki ilişki olduğu tanımı buradan yapılabilir.

DeleteActions

Silme işlemlerinde buradaki tanımlar tetiklenir. Bu özellik başka bir yazıda incelenecektir.

Methods

Tablolar üzerinde çalışacak metotlar tanımlabilir. Burada üzerinde yazma yöntemi ile tanımlanabilecek metotlar yazılabileceği gibi, kendinize özel metotlarda yazabilirsiniz. Üzerine yazılabilecek metot olarak, silme – kayıt ekleme – güncelleme gibi anları tetikleyebilirsiniz.

Yeliz Korkmaz, MVP

yelizkorkmaz@tnn.net