Archive for Nisan 3rd, 2013

Dynamics Ax 2012′de ana tablo yapısındaki değişiklikler

Merhaba

Dynamics ax 2012 ile birlikte alışık olduğumuz bir çok teknolojide değişiklikler oldu. Bunlardan en temel olanlarından biride PrimaryKey yapısı. Eski versiyon eğitimlerinde sürekli söylediğim bir cümle vardı. “Ax akıllı kod kullanmak için performanstan ödüne vererek ana tablolarda string keyler kullanır.” bu cümle ax 2012 için geçerli değil. Hem akıllı kod kullanmak hemde key’i int yapmak artık mümkün. Tablolar için yeni bir Integer key oluşturmaya gerek yok. Bildiğiniz gibi her tabloda RecId alanımız mevcut. Bizim ilk eskiden beri öğrendiğimiz “her bir tablonun bir tane integer key alanı olur ve diğer tablolarla ilişkileri bu alan sayesinde kurulur” ifadesi ax içinde artık geçerli. Eski versiyonlarda olan string key hala yapabiliyoruz. Bunu başka bir yazımda anlatacağım. Bu yazımda RecId ile nasıl ana tablo yapılır bir örnekle anlatmaya çalışacağım. Adım adım ilerleyelim.

  1. Bir kitap tablomuz olsun. Birde kitap satış tablosu olsun.  FDBookTable içine BookName adında string bir alan açalım. Bu alan için bir indeks oluşturalım ve aşağıda görünen tanımları yapalım.
  2. FDBookTable genel yapısı için bu tanımları yapalım.
  3. BookNameIdx indeksini oluşturalım ve tanımları yapalım.
  4. FDBookTable özelliklerinde key tanımlarını yapalımPrimaryIndex ve ClusterIndex surrogateKey olmalı. SurrogateKey RecId index demek aslında.
  5. Int64 tipinde bir EDT oluşturalım.
  6. EDT özelliklerinde referans tablo olarak kitap tablomuzu seçiyoruz ve Table References kısmında da RecId ile referans tanımı yapıyoruz.
  7. Bu işlemlerden sonra ana tablo yapabilmek başka tablolarla ilişki kurmak için ihtiyacımız olan tanımları yapmış olduk. Bu aşamada FDBookLine isminde bir tablo oluşturup FDBookTableRecId EDT sini sürükleyip Fields kısmına bıraktığınızda sizden FDBookTable ile ilişki kurmak için bir onay sorusu çıkacaktır. Onay vermelisiniz. Aşağıdaki resimde görünen tanımları otomatik yapmış olacak. Eğer sorun olursa elle de oluşturabilirsiniz.
  8. Bir form yapalım ve veri kaynağına FDBookLine tablosunu ekleyelim. Tasarım kısmına bir Grid oluşturup veri kaynağında FDBookTableRecId alanını sürükletip Grid üzerine bırakalım. Otomatik olarak ReferanceGroup oluşmalı ve sizin BookNameIdx indeksinde eklediğiniz sütunları otomatik oluşmalıdır. Eğer oluşmuyorsa bir bu kısma kadar olan adımlarda bir eksiklik yapmışsınız demektir.
  9. Formu açmadan önce Kitap tablosunu açıp bir kaç kitap tanımı yapalım.
  10. Artık kitap satış formu açıp giriş yapabilirim. Gördüğünüz gibi Lookup ta kitap isimlerini görüyorum ve ona göre süzme işlemleri yapabiliyorum. Seçtikten sonrada Grid ekranında kitap isimlerini görüyorum ve Grid üzerinde de süzme yapabiliyorum isim üzerinden. en güzel tarafı ise FDBookLine tablosuna gidip baktığınızda kitap isimlerin yerinde Kitap tablosunun RecId’sini göreceksiniz. Bunu sağlayan bir kaç yapı var öncelikle Veri kaynağında Referance Data Sources kısmı bide Referance Group kısmı. Bu iki kısımda çok ayrıntı var ilerde bunlara da değineceğim.
  11. Benim fikrim bu teknolojiyle birlikte ana tablo tanımlarını RecId üzerinden yapmak lazım. Eski yapılan geliştirmeleri hemen değiştirmeye gerek yok ancak performans sıkıntısı olan kısımlarda değiştirmek lazım.

    Projeyi indirmek için tıklayın.

    Selamlar.