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 bakabilirsiniz.
  • Ardından eklediğimiz…

Data Entity’e LedgerDimension yada DefaultDimension tipinde bir alan eklediğiniz zaman build sırasında aşağıdaki hata ile karşılaşırsınız.

The 'DefaultDimension' entity field must have the Access Modifier property set to Private or Internal.

D365 F&O standartta dimension alanlarının Data Entity üzerinden sistem dışına (Public olarak) yayınlanmasına izin vermiyor. Hata da dediği gibi alanın AccessModifier özelliğini Private yada Internal yaparsanız build hatasını aşarsınız fakat sadece D365 F&O içindeki kullanımlarda bu alanlara erişebilirsiniz. Örneğin Power BI üzerinden Data Entity’e eriştiğinizde dimension alanlarını göremessiniz.

Çözüm

Öncelikle eklediğiniz alanın AccessModifier özelliğini Private yapalım.

Dimension’ın DisplayValue değerini göstermek için dimension türüne göre aşağıdaki işlemleri yapmanız gerekiyor. …


Daha önce Dynamics AX 2012 de enum etiketlerine SQL üzerinden nasıl ulaşabileceğimizden bahsetmiştim. Bu yazıda aynı işlemi D365 F&O’da nasıl yaparız onu anlatacağım. Yapacağımız bu işlem ile enum’ın değerlerini ve etiketlerini bir tabloya yazacağız. Böylece SQL sorgularında enum etiketlerini çağırabileceğiz. Bu sayede:

  • Data entity’lerde enum’ın etiketini sabit bir dil kodunda dönebiliriz.
  • Union query kullanan view’larınız varsa birbirinden farklı enumların olduğu alanları normalde birleştiremessiniz. Fakat enum’ın string etiketlerini union ile tek kolonda birleştirip gösterebiliriz.

D365 F&O da standart olarak gelen SRSAnalysisEnums isimli bir tablo bulunuyor. Bu tabloda bazı sistem enum’larının etiketleri mevcut. Fakat içinde her enum yok. …


D365 F&O da DataEntity oluşturmak istediğinizde sihirbaz size bazen “ The natural key for the table TableName was not found “ diyerek hata verebilir.


Bir D365 F&O projesine başladığınız zaman, size teslim edilen devbox’lar ile debug yapmanız mümkün fakat doğru ayarlar yapılı gelmediği için bazı kısıtlamalar mevcut. Sadece aktif solution içinde, kendi yazdığınız kodu debuglayabilirsiniz. D365 F&O’nun kodlarına koyduğunuz breakpointler çalışmaz.

Bu yazıda bahsedeceğim adımları yaptıktan sonra hem kendi hemde D365 F&O’nun kodlarını debug ile izleyebilirsiniz.

Gerekli Ayarların Yapımı

Adım 1

Visual Studio’da Tools > Options’u seçin. Açılan ekranda, resimde gösterdiğim parametreyi işaretleyin.


AX 2012'den D365 F&O’a geçiş ile birlikte önceki sürümlerde kullandığımız OverLayering yöntemi devre dışı kaldı. Artık geliştirme yapmak istersek yeni gelen ’ün bize sağladığı araçları kullanmamız gerekiyor. Bu yazıda Dynamics 365 Finance and Operations ile yeni tanıştığımız class extension ve chain of command kavramlarından bahsedeceğim. Ayrıca bu konu bağlantılı, event kullanımını anlattığım yazıma ulaşabilirsiniz.

Class Extension Kullanımı

Örnek Senaryo

Örneğin TrvExpTable üzerinde validateSubmit isminde bir method var. Bu method, TrvExpTable kaydını workflow’a gönderirken çalışıyor. Bu method true dönüş yaparsa kaydı workflow’a gönderebiliyorsunuz. Sizden de bu method’a ek bir kontrol yazmanız isteniyor. Burada class extension yöntemini kullanarak, method’un dönüşüne müdahale edebilirsiniz.

Adımlar

TrvExpTable_Extension isminde yeni…


Bu yazıda Dynamics 365 Finance and Operations da yeni tanıştığımız ve ’ün bir parçası olan event kavramından bahseceğim. Hem tablo-form gibi çeşitli objelerin üzerinde gördüğümüz event’lerden hem de methodlar için kullanılan pre-post event ‘lere değineceğiz.

1. Event Nedir ?

Adından da anlaşılabileceği gibi çeşitli durumlarda tetiklenen yer tutuculardır. Örneğin bir tabloya kayıt eklendiğinde OnInserted event’i tetiklenir. Kayıt silindiğinde OnDeleted çalışır. Siz ihtiyacınıza uygun olanı seçip, kullanabilirsiniz. Neredeyse her event standartta var olan ve override ederek kullandığımız sistem methodlarına karşılık gelir. Örneğin insert methodunun super öncesi için OnInserting, super sonrası için OnInserted event’i bulunur.

Kullanımı

D365 F&O içinde tablo-form gibi çeşitli objelerde Events isminde bir…


Bu yazıda Dynamics 365 Finance and Operations da yer alan lookup’lardan bahsedeceğim. Bu yazıyı yeni başlayan arkadaşları düşünerek hazırladım. Fakat D365 F&O’a yeni geçen AX 2012 geliştiricilerine de faydalı olacaktır.

Lookup Nedir ?

Bir alana tıkladığınızda açılan küçük form’a lookup denmekte.


Merhaba. Daha önce yazdığım AX 2012 için çeşitli boyut işlemlerinin nasıl yapıldığından bahsetmiştim. Dynamics 365 F&O ile birlikte boyut güncelleme işlemleri için eskiden kullandığımız bazı sınıflar (AxdDimensionUtil) artık yok.

Bende kolları sıvadım ve Dynamics 365 ile yeni gelen boyut sınıflarını tespit ettim. DefaultDimension’ları tek satırda kolayca okuyup güncellemeye yardımcı olacak, çeşitli kontrolleri otomatik yapacak yardımcı bir sınıf hazırladım.

Kaynak kodlarına yazının sonundan erişebilirsiniz.

Kullanım

DefaultDimension içindeki bir boyutu okuma

GvnDimensionHelper::getDimensionValue(defDim, #CostCenter);

DefaultDimension’ı sıfırdan yaratmak

GvnDimensionHelper::updateDefaultDimension(0, #CostCenter, "015");

Mevcut bir DefaultDimension içindeki boyut değerini güncelleme

GvnDimensionHelper::updateDefaultDimension(defDim, #CostCenter, "015");

Parametreler

targetDimValueMustEmpty: Bu parametre true ise güncellenmek istenen boyut değerinin boş olup olmadığı…


Eğer sizde benim gibi gününüzün çoğunu RDP ile bağlanarak geçiren biri iseniz, bağlanılacak sunucu sayısı arttıkça işler çığrından çıkmaya başlar. Çok sayıda sunucu bilgisini Windows’un içinde standart olarak gelen Remote Desktop Manager (mstsc.exe) ile yönetmek mümkün değildir.

Bu yazıyı özellikle çevremde RDP bağlantıyı çok sık kullandığı halde, sunucu bilgilerini alt alta not defterine kaydeden insanları gördüğüm için hazırlamak zorunda hissettim. Onlar IP’leri, kullanıcı adı-şifreleri tek tek her kopyalayıp yapıştırdıkça benim için parçalandı :)

mRemoteNG ile artık bu zulme dur diyorum.

Nedir ?

bağlanmak istediğiniz sunucuların ip, port, kullanıcı adı ve şifre bilgilerini organize şekilde tutabilmenize yarayan bir program.

  • Bilgileri…

Güven Şahin

Dynamics 365-AX & Software Developer —

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store