8 Eylül 2014 Pazartesi

Tablo(Tables) Nedir? Nasıl Oluşturulur?

Tables(Tablo)

Axaptanın temel yapı taşlarından biridir. Ax üzerinde dataların(verilerin) tutulduğu yapılardır. Axapta üzerinde tablolar sadece AOT üzerinden oluşturulabilir. Direk olarak veri tabanı üzerinden yapılacak işlemler Dynamics Ax açısından olumsuz sonuçlar doğurabilir hatta uygulamanın tamamen çökmesine neden olabilir.


Yeni bir tablo oluşturmak için;
  • Geliştirme ortamından AOT yapısını açın (CTRL + D)
  • Data Dictionary içerisinde Tables(Tablolar) kısmını bulun.
  • Tables kısmında Sağ tuş New Tables (Yeni Tablo) seçin
  • Name kısmına tablonuzun ismini ismini giriyoruz.
  • Label kısmına tablonuzun açıklamasını girin.
  • Tablonuzun Field kısmına Extenden Data Type(EDT) kısmından ihtiyacımız olan alanları sürükleyip bırakıyoruz.(Diğer bir yöntem ise de Field kısmına New Field diyerek istenilen veri türünü seçip daha sonra özellikler kısmından Extended kısmına istediğiniz EDT tipini girebilirsiniz.)
  • Daha sonra Tablonuzu kaydederek tablo oluşturma işlemini tamamlayın.
Tablonuzu oluşturduktan sonra tablonuzu iyileştirmek adına birkaç işlem daha yapmak gerekir.
İlk olarak veri bütünlüğü açısından tablonuzdaki alanlarda mutlaka EDT tanımlamanız gerekmektedir.
Oluşturulan tablonuz için mutlaka tablonuzda bir unique(tekil, benzersiz) bir index oluşturmak gerekir(index oluşturma kısmına ileriki konularda detaylı değineceğiz). Eğer tutacağınız veri ile unique index oluşturamıyorsanız, CreateRecIdIndex’i Yes yapın. Ve bu index’i PrimaryIndex alanında seçin.
Tablonuzun CacheLookup özelliğini NotInTTS seçin. Bu pek çok durum için yeterli bir seçenektir.

TitleField’ları mutlaka seçin. Bunlar formda görüntülenmektedir. (TitleField :Seçilen alanlar Formların başlığında gösterilir. Lookuplarda kullanılır. Ayrıca yardım metni olarak görüntülenir)

Örnek Ekran : 



Yeni oluşturduğunuz tablonuzun mutlaka sizden sonra kullanılacağını düşünerek find, validate vs.. methodları yazmak için özen gösterilmelidir.

Örnek Find methodu : 
static ETGBankBranchTable findRecId(RecId    _recId, boolean  _forUpdate = false)
{
    ETGBankBranchTable ETGBankBranchTable;
    ;
    if (_recId)
    {
        ETGBankBranchTable.selectForUpdate(_forUpdate);
        select firstonly ETGBankBranchTable
            where ETGBankBranchTable.RecId == _recId;
    }
    return ETGBankBranchTable;
}

Hiç yorum yok:

Yorum Gönder