Dynamics 365 F&O – Union Query ile View Oluşturmak

dynamics 365 f&o union query & view

Dynamics 365 F&O’da 2 veya daha fazla tablodan gelen verileri birleştirip, alt alta göstermek istediğimiz durumlarda genellikle temp tabloları kullanırız. Fakat alternatif bir yol daha var. Eğer birleştirmek istediğimiz veri detaylı hesaplamalara ihtiyaç duymuyor ise T-SQL’den bildiğimiz union operatörünü AOT Query’lerinde de kullanabiliyoruz. Union query kullanan bir view oluşturup sorgu çekmek, temp tablo doldurup göstermeye oranla çok daha performanslı ve basittir.

Union Query Yaratmak

  • AOT’den query oluşturulur. QueryType özelliği Union olarak seçilir.
  • Data Sources kısmına birleştirmek istediğimiz tabloları ekleyelim. Tablo haricinde başka viewlar yada data entity de ekleyebilirsiniz.
  • Eklediğimiz datasource’ların UnionType parametresini Union yada UnionAll olarak seçelim. Farkı için buraya bakabilirsiniz.
  • Ardından eklediğimiz datasource’ların Dynamics Fields özelliğini No yapalım.
  • Datasource’ların fields bölümüne kullanmak istediğimiz kolonları tek tek ekleyelim. Ekleme sırası önemlidir. Burada alt alta göstereceğimiz alanların tipleri birbiri ile uyumlu olmalıdır. A tablosundaki string alan B tablosundaki string alan ile eşleşmeli. Farklı veri tiplerindeki alanları sistem kabul etmeyecektir.

View Yaratmak

  • AOT’den view oluşturulur. Özelliklerinden yeni oluşturduğumuz query seçilir.
  • Birleştirdiğimiz datasource’lar view’ın metadata kısmında ayrı ayrı gözükür.
  • En üstteki datasource’un alanlarını view’ın fields kısmına sürüklemeniz yeterli. View’a eklediğimiz alanların datasource kısmında yazan değerin önemi yok. Query union olduğu için çalıştırdığımız zaman, datasource’ların tamamını birleştirip doğru şekilde gösterecektir.

Bazı Notlar

  • Eğer bazı kolonlarda AOT Query’nin join’i ile çözemeyeceğiniz karmaşıklıkta veriler getirmeniz gerekiyor ise computed column ekleyerek istediğiniz alanları getirebilirsiniz.
  • Birden fazla view birbirine union ile bağlanabilir, bu sebeple view’ların computed column tipindeki alanlarını da union sorgusunda birleştirebilirsiniz.
  • Eğer birbirinden farklı enumlara sahip 2 alanı birleştirmek isterseniz build sırasında izin verir. Çünkü enum alanlar SQL seviyesinde integer alanlardır. Fakat form veya ssrs raporunda yanlış gözükecektir.
    • Bu sebeple farklı enumlar için string etiketlerini birleştirmeniz daha doğru olur. Bunun içinde enum’ların string etiketlerini bir tabloya yazmanız ve join ile query’ye dahil etmeniz gerekir.
    • Bu işlemi şuradaki yazıma bakarak yapabilirsiniz. Dynamics AX 2012 içinde buraya bakabilirsiniz.

Son Olarak

Tüm yapılacaklar bu kadardı.

D365 F&O ile ilgili diğer yazılarıma şuradan, Dynamics AX yazılarıma da buradan bakabilirsiniz.

Hoşçakalın.

Yazıyı Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir