Bu yazıda Azure üzerinde deploy ettiğimiz bir sanal makineye SSH ile nasıl bağlanırız göstereceğim. Başlayalım.

Azure’a deploy edilen makinenin Public IP adresini öğrenelim.


Eğer windows server üzerinde PHP kullanmak isterseniz bunun 2 yolu var. En basit yol IIS’in kendi sitesinden önceden hazırlanmış paketleri indirip kurmak. Fakat burada önceden hazırlanmış paketlerin PHP sürümleri eski ve ara versiyonlar bulunmuyor. Bu yazıda en güncel PHP sürümünü indirip, gerekli ayarları yapıp, kullanıma hazır hale getirilmesinden bahsedeceğim. Ardından farklı sürümleri nasıl beraber kullanabileceğinizi göstereceğim. Başlayalım.

Bu adreste windows için hazırlanmış php sürümleri bulunmakta. Non Thread Safe ve x64 olan son versiyonu zip olarak indirin. (Sunucunuzun mimarisine göre x86 da seçebilirsiniz)


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…

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 bu yazımda 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 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…


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…


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.

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