Archive for Kasım 26th, 2020

X++ :23- Extension ile Standart Bir Forma Alan eklemek.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart bir tabloya eklenen alanların nasıl forma eklenebileceğini anlatmaya çalışacağım.

Bir önceki yazımda smmActivities’e bir alan eklemiştik. Şimdi AOT üzerinden Formları açıyoruz. Sonrasında smmActivities formuna sağ tıklayıp Create extension’a tıklıyoruz.

Resim-1

Projemde Extension oluştu. Adını değiştirebilirim ama benim için şu anada adı uygun. Çift tıklayıp açıyorum.

Resim-2

Açılan Extension formu içinden veri kaynağına baktığımda bir önceki yazımda eklediğim alan otomatik geldi.  Sürükleyip tasarımda uygun bir yere bırakıyorum.

Resim-3

Artık hazırız. Projeyi Build edip çalıştırabiliriz.

Resim-4

Bu yazıda Extension ile standart bir tabloya eklenen yeni bir alanın formda nasıl gösterilebileceğini anlattım. Sonraki yazılarımda Extension ile kod yazmak ile ilgili örnekler yapacağım.

Selamlar.

www.fatihdemirci.net

TAGs: Extension, X++, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

X++ :22- Extension ile Standart Bir Tabloya Alan eklemek.

Bu yazıda Visual Studio üzerinden Extension mantığıyla standart tablolara alan nasıl eklenir anlatmaya çalışacağım.

Öncelikle bu yazılarda Youtube videolarımda oluşturduğum Activity Managment projesini kullanacağım. Bu projede kullanmak üzere aktivitelerimi smmActivities tablosuna bağlamak için bir alan açıp bunu kullanacağız. smmActivities CaseManagment paketinden eğer yoksa öncelikle kendi paketinize eklemiz gerekiyor. Sonrasında sağ tıkladığınızda Create extension’a tıklıyoruz.

Resim-1

Projemde Extension oluştu. Adını değiştirebilirim ama benim için şu anada adı uygun. Çift tıklayıp açıyorum.

Resim-2

Açılan Extension içinden Fields2a sağ tıklayıp yeni bir alan oluşturuyorum.

Resim-3

Alanın özelliklerini belirleyip kaydediyorum.

Resim-4

Projemi eşitliyorum. Eğer hata yoksa tabloya alanı eklemiş oldu.

Resim-5

Bu yazıda Extension ile standart bir tabloya yeni bir alan nasıl eklenir anlatmaya çalıştım. Burada Extension isimlendirmesine dikkat etmek lazım. Birden çok geliştirme yapan varsa özellikle isimlendirme çok önemli oluyor. Bu şekilde alanı ekledikten sonra kodda tablonun standart bir alanı gibi kullanabilirsiniz. Sonraki yazılarımda Extension ile forma alanı eklemek ve kod düzenlemek ile ilgili örnekler yapacağım.

Selamlar.

www.fatihdemirci.net

TAGs: Extension, X++, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365

Ax2012’den Dynamics 365 Kod Yükseltmesi Nasıl Yapılır? –3

Bu yazıda Ax2012’den Dynamics 365 Finance and Operations’a nasıl kod güncellemesi yapıyoruz anlatmaya devam edeceğim. İkinci yazıda ModelStore’u yüklemiş ve raporların ve Azure DevOps projesinin oluşturulmasını sağlamıştık. Bu yazıda oluşan kodlara inceleyeceğiz ve VisualStudio’da neler yapmak gerekiyor anlatmaya çalışacağım.

Oluşturduğumuz Azure DevOps projesinde 2 klasör oluşuyor. Aslında ikisinin altında yanı kodlar var. Sırayla inceleyelim.

Resim-1

Trunk altında AplicationSuite’yi açınca sizin Ax2012 olan modellerinizin her biri için klasörler göreceksiniz. Her bir klasör altında Delte klasörü var ve bu klasördeki nesnelerde çakışmalar olduğu için elle düzeltilmesi gerekiyor. Asıl güncelleme eforunun harcanacağı yerler buralar olacak. Bunu dışında kalan nesnelerde sorun yok demektir. Bunları kendi oluşturduğumuz pakete dosya sisteminden kopyalamalısınız.

Resim-2

Visual Studio Source Control Explorer açıp Azure devops projenize bağlanın. Burada sıfır bir development makinesi deploy etmek daha faydalı olacaktır ama şart değil. Ben elimde olan bir makineden bağlandım. Tüm kodları buradan da görebilirsiniz.

Resim-3

Örneğin burada Delta altın çakışma olan nesnelerden bazıları var. Tek tek elden geçmesi lazım. Eğer bir metot eklendiyse bunların Extension mantığına çekilip Delta altından bu nesnenin silinmesi gerekiyor. Eğer kod arasına girilmişse durum biraz daha karışık inceleyip neler yapılması gerektiğine karar verilmesi gerekecek. Bunların ayrıntısına ileriki yazılarımda değineceğim.

Resim-4

Kodları indirmek için bir klasör oluşturup bağlantısını kuruyorum. Bu sayede kendi makineme kodları indirmiş olacağım ve Xml üzerinden kopyalama ve upgrade işlemlerine başlayabilirim.

Resim-5

Bu şamdan sonra Paket yapıma karar verip ona göre paketlerimi oluşturmalıyım. Ax2012 de bulunan model yapımı korumak istersem her model için bir paket oluşturmak bir seçenek olabilir. Burada aklınızda bulunsun çok fazla pakete bölerseniz ve birbirlerine bağımlılıkları varsa bunların sürekli referans hataları alacaksınız. Temel mantık şu olmalı ben bu paketi tek başına alıp bir ortama veya başka bir yere yüklemem gerekir değiniz de bölmek doğru bir yaklaşım olur. Paketleri karar verip modelinizi oluşturduktan sonra Main altındaki upgrade edilmiş bütün Xml leri kendi paketinize kopyalayın. Deltaları kopyalamayın onları tek tek nasıl çözeceğinize ayrıca değineceğim.

Böyle çakışmaları çözmek için hazır hale gelmiş olduk. Eğer birden çok yazılımcı çalışacaksa iş bölümü yapmak lazım. Örneğin Nesneler paylaşılabilir. Enum, EDT, Class ve Table gibi veya modelleri ayırdıysanız model model paylaşabilirsiniz. Burada aynı nesne için iki yazılımcının efor harcamaması için koordine olmak şart.

Bu yazıda çakışmaları çözmeden önceki son aşamaya gelene kadar neler yapılmalı anlatmaya çalıştım. Tabi burada anlattıklarım benim tecrübelerim farklı ekipler farklı yaklaşımları benimseyebilir. İleriki yazarlarımda nene tiplerine göre çakışmalar nasıl çözülür anlatmaya çalışacağım.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Ax2012 Code Upgrade, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365