Image for post
Image for post

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.

Image for post
Image for post

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.

Image for post
Image for post

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 extensibility framework’ü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 buradan 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…

Image for post
Image for post

Bu yazıda Dynamics 365 Finance and Operations da yeni tanıştığımız ve extensibility framework’ü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…

Image for post
Image for post

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.

Image for post
Image for post

Merhaba. Daha önce yazdığım bu yazıda 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ığı…

Image for post
Image for post

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 ?

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

  • Bilgileri…

Image for post
Image for post

Bu yazıyı Android veya iOS uygulama geliştirmeye yeni başlayan arkadaşları düşünerek hazırladım. İlk defa mobil uygulama geliştiren ve yayınlamak isteyen arkadaşlar için bazı faydalı olabilecek tavsiyelerde bulunacağım. İşinize yarayabilecek araçlar, programlar ve servisler tanıtacağım.

Yazı neyi nasıl yapacağınızdan çok size yol gösterici nitelikte. Buradan yola çıkarak araştırıp kullanmak size kalıyor. Başlayalım.

Reklam Ekleyerek Gelir Elde Etmek

Image for post
Image for post

Daha önce Firefox için şöyle bir yazı yazmıştım. Hem meraktan hem de işim gereği pek çok tarayıcıyı beraber kullanıyorum. Bu yazıda uzun zamandır kullanmış olduğum Chrome uzantılarından bahsedeğim.

Bu uzantı/eklentilerin bir çoğu Opera başta olmak üzere belli başlı Chromium temelli diğer tarayıcılarda da çalışmaktadır. Buyrun başlayalım.

1. uBlock Origin

Çoğu kişi reklam engelleyici kullanıyordur. uBlock Origin de onlardan biri. Ben açık kaynak olması ve AdBlock Plus‘a göre daha iyi performans göstermesi sebebiyle tercih ediyorum.

Eğer filtreleri gerekli şekilde düzenlerseniz sadece reklam değil pishing, malware, javascript üzerinden gizlice mining yapan siteleri de engelliyor. Aynı zamanda sitedeki hareketlerinizi takip eden scriptleri de engelletebilirsiniz.

Image for post
Image for post

2 yıl önce bu yazıda kullandığım online araçlardan bahsetmiştim. O günden beri kullandığım araçlar gittikçe çeşitlendi, yenileri eklendi. Artık bu yazının devamını yazma vakti geldi. Geliştirme yaparken sık sık ihtiyacınız olabilecek 8 adet siteden bahsedeceğim. Buyrun başlayalım:

1. Text Compare

Geliştirme sırasında 2 metin yada kod arasındaki farkları görmek isteyebilirsiniz. Eğer Git, SVN vb bir sürüm kontrol yazılımı ile çalışıyorsanız bunu yapmak çok kolay. Bunun haricinde Notepad++’a yükleyeceğiniz Compare eklentisi ile yada WinMerge ile de bu işi yapabilirsiniz.

Ama tüm bunlara erişiminiz yoksa, RDP ile bağlandığınız bir ortamda hızlıca bakmanızın gerektiği bir durumda Text Compare‘i kullanabilirsiniz.

Güven Şahin

Dynamics 365-AX & Software Developer — guvensahin.com

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