Dynamics 365 Finance and Operations Etiket(Label) Dosyası Nasıl Oluşturulur?

Bu yazıda Dynamics 365 Finance and Operations için yeni bir etiket dosyası nasıl oluşturulur anlatmaya çalışacağım. Etiketler sistemin çoklu dile destek verebilmesini sağlayan yapıdır. Bizde yaptığımız geliştirmelerde yeni etiketlere ihtiyaç duyarız. Bunun için genelde proje başlangıcında bir etiket dosyası oluşturulur ve tüm yazılımcılar bu dosyayı kullanırlar.

Örnek bir Etiket dosyası oluşturalım. Yeni bir nesne ekleme formunu açıyoruz. Label File seçip Add diyoruz. Bu bize bir sihirbaz ara yüzü açacak. Bunun açılması biraz uzun sürebiliyor.

Resim-1

Read more

Dynamics 365 Finance and Operations Canlıya Geliştirme Nasıl Alınır?

Bu yazıda Dynamics 365 Finance and Operations Production ortamına geliştirme nasıl taşınır anlatacağım. Önceki yazılarımda Azure DevOps kullanarak Build işlemini ve oluşan paketin Asset library nasıl yüklendiğini anlatmıştım. Canlıya alım için teste alınmış bir Software deployable package tespit edip Release Candidate olarak işaretlemek gerekiyor. Ben örnek olarak bir kayıt seçtim.

Resim-1

Read more

Dynamics 365 Finance and Operations Ara Yüz Özellikleri?

Bu yazıda Dynamics 365 Finance and Operations ara yüzlerinin özelliklerinden bahsedeceğim. Öncelikle ara yüzde yapılan bu işlemler kullanıcı seviyesindedir. Diğer kullanıcıları etkilemez.

Herhangi bir nesneye sağ tıkladığınızda form ismi ve nesnenin ismini görebilirsiniz. Bu bilgilerle geliştirme ortamından aradığınız nesneyi daha kolay bulabilirsiniz.

Resim-1

Read more

Dynamics 365 Finance and Operations Query Store Kullanımı?

Bu yazıda Dynamics 365 Finance and Operations geliştirme ortamlarında Query Store nasıl kullanılır anlatmaya çalışacağım. Query Store özellikle sorgular performans çalışmalarında kullanılır. Sorguların, Query plan’ların ve çalışma zamanı istatistiklerinin geçmişini saklar. Bu sayede Query plan değişikliği nedeniyle ortaya çıkan sorunları kolay bir şekilde fark edebiliriz. Ayrıca belli planları force edebiliriz. Bu özellik açık olarak gelmiyor öncelikle takip etmek istediğiniz db de bu özelliği açmalısınız. Biz bir geliştirme ortamında bu ayarları yapacağız çünkü canlı ortamda SQL erişimiz yok.

Managment Studio’yu açıyoruz.

Resim-1

Read more

Dynamics 365 Finance and Operations Trace Parser Nedir ve Nasıl Kullanılır?

Bu yazıda Dynamics 365 Finance and Operations uygulamasında performans sorunlarının tespiti için çok kullanışlı bir araç olan Trace Parser’dan bahsedeceğim. Bir performans sorunun tespiti genelde zor bir işlemdir. Birçok sebep olabilir. Tecrübenize göre baktığınızda temel sorunları tespit edebilirsiniz ama karmaşık form ve sınıflarda tespit gerçekten çok zaman alabilir. Trace almak ve analizi yapmak işi çok kolaylaştırıyor. Dynamics 365 Finance and Operations uygulamasında gömülü olarak Trace alma özelliği mevcut. Alınan bu Trace dosyasını Trace Parser kullanarak analiz ediyoruz.  Bir örnekle açıklamaya çalışacağım.  Mesela satış siparişleri detay formunun açılması çok uzun sürüyor diye şikâyet aldım ve burayı incelemek ve sorunu tespit etmek istiyorum.

Trace alarak işe başlayalım. Soru işareti ikonundan Trace diyorum.

Resim-1

Read more

Toplu iş Geçmişi Nasıl Temizlenir?

Bu yazıda Dynamics 365 Finance and Operations toplu iş geçmişini(Batch job history) periyodik olarak nasıl silebileceğinizi anlatacağım. Bunun için standartta olan bir temizle toplu işini kullanacağım.

Modules > System Administration > Periodic tasks > Batch job history clean-up (custom) yolunu kullanarak sınıfı çalıştırıyoruz.

Resim-1

Read more

SysOperation Framework İle Toplu İş Nasıl Oluşturulur?

Bu yazıda SysOperation kullanarak Dynamics 365 Finance and Operations için yeni bir toplu iş (Batch Job) nasıl oluşturulur anlatmaya çalışacağım.  SysOperation RunBaseBatch’in daha gelişmiş hali diyebiliriz. Birçok farklı kullanımı var. Bu örnekte normal toplu iş olarak kullanımını anlatacağım. Yapısına gelecek olursak SysOperation MVC (Model–View–Controller) design pattern’ı kullanır. Bu yapının temel sınıfları şunlardır:

Service: Servis sınıfı SysOperationServiceBase sınıfından türetilir. İşlemin yapıldığı sınıftır. Kodlarımız bu sınıfta olmalı.

Data Contract: Özellikleri (attributes) tanımladığımız model sınıfıdır. Diyalogdan veri almak için DataContractAttribute attribute kullanılır.

Controller: Kontrol sınıfı SysOperationServiceController sınıfından türetilir. Toplu işle ilgili bilgileri tutar. Diyalog ve progress bar gibi.

UI Builder: UI Builder sınıfı SysOperationAutomaticUIBuilder sınıfından türetilir ve diyaloglara daha gelişmiş ara yüzler sağlamak için kullanılır.

Bu örnekte ilk 3 sınıfı kullanarak RunBaseBatch ile yaptığımız örneğin aynısı yapacağım. Öncelikle yeni bir proje oluşturuyorum.

Resim-1

Read more

RunBaseBatch Framework İle Toplu İş Nasıl Oluşturulur?

Bu yazıda Dynamics 365 Finance and Operations için yeni bir toplu iş (Batch Job) nasıl oluşturulur anlatmaya çalışacağım. RunBaseBatch kullanarak bir örnek oluşturacağım. İleriki yazılarımda SysOperation ile de örnekler vereceğim. Toplu iş nedir ona bakalım. Bir işi farklı sunucuda ve belli zamanda istersek tekrarlayan şekilde çalıştırmaya yarayan bir alt yapı diyebiliriz. En basit örneği vereyim. Merkez bankası her gün kurları belli saatte açıklıyor. Sizin bu değerleri alıp sisteme kaydetmeniz gerekiyor. Bunun için bir sınıf yazdınız ve bu sınıf servise bağlanıyor ve değerleri alıyor. Ancak bunun her gün aynı saatte tetiklenmesi lazım. İşte burada toplu iş devreye giriyor ve size bu ayarları yapma imkânı veriyor.

Bu örnekte çok basit bir sınıf oluşturup çalıştıracağız. Öncelikle yeni bir proje oluşturuyorum.

Resim-1

Read more

Dynamics 365 Finance and Operations Segregation of Duties Nedir?

Dynamics 365 Finance and Operations Segregation of Duties Nedir?

Segregation of Duties görev ayrılığı olarak çevriliyor. Şöyle izah etmeye çalışayım. İki kritik görevi(Duty) aynı kişide toplanmasın istiyorsunuz örneğin fatura işleme ve ödeme çıkma gibi iki görevin aynı kişide olmaması gerekiyor. Binlerce kişinin çalıştığı bir firmadasınız ve bunu takip etmek belli bir aşamada mümkün olmuyor işte tam burada SoD devreye giriyor. Duty üzerinden yaptığınız bir tanım size bu tip durumlar için uyarı veriyor ve kontrol etme imkânı sağlıyor.

Önceki yazılarda kullandığımız güvenlik nesnelerini kullanarak bir örnek yapalım. Security Configuration formunu açıyoruz.

Resim-1

Segregation of duties sekmesinden Segregation of duties rules butonuna tıklıyoruz. Bu form direk menüde de var. Resim-9’da görebilirsiniz.

Resim-2

Açılan formda henüz kayıt yok New ile bir tane kayıt oluşturalım.

Resim-3

Bir isim veriyoruz ve iki tane Duty seçmemiz gerekiyor. Ben örnek iki Duty seçtim. Dikkat ettiğim tek konu bu iki Duty hangi rolde kullanılıyor biliyorum. Örneği gösterebilmek için ihtiyacım olacak. Tabi siz iş ihtiyacına göre bu tanımı yapacaksınız.

Resim-4

Kaydettikten sonra test kullanıcıma geliyor. Şu anda olan rolden dolayı FD Müşteri listeleme görevi ekli. Yeni bir rol ekleyip Customer Invoicing içeren bir rol seçiyorum. Ekle dediğimde bir çakışma oluştuğu uyarısı geliyor. Eğer Yes dersem benim için bir çözüm kaydı oluşturacak.

Resim-5

Oluşan kayıtta bu işlemin bilgileri var. Allow Assigment ile atamayı kabul edebilirim.

Resim-6

Kabul edersem aslında kuralı ezmiş oluyoruz bu yüzden bir açıklama soruyor. Girdikten sonra rolü eklemiş olduk. İstersek engelleyebilirdik.

Resim-7

Yeni bir SoD oluşturduğunuzda bu kurala uymayan durumlar var mı diye kontrol edebilirsiniz. Benim kurala uymayan bir durum var ama ona bir ezme kaydı oluşturduk bu yüzden burada gelemdi.

Resim-8

Oluşan kayıtları Resim-9’daki menüden takip edebilirsiniz.

Resim-9

Bu yazıda Segregation of Duties nedir kısaca anlatmaya çalıştım. Çok güzel bir özellik olmakla birlikte hala çok eksiği var. Örneğin sadece Duty ile çalışıyor ama Role atan direk Privilege’lar için bir çözüm yok. Role eklerken soruyor ama sonrasında değişen görev içeriklerini kontrol eden bir mekanizması yok. Kullanmak mümkün özellikle Duty haricinde yetki tanımı yapmaz Duty’lerinizi doğru bir mantıkta oluşturursanız çok kolay kullanabilirsiniz. Bu özelliğe hala yatırım yapılmaya devam ediliyor kısa sürede çok daha gelişmiş bir hala geleceğini düşünüyorum.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Segregation of Duties, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Dynamics 365 Finance and Operations Alt Seviye Form Nesnelerine Yetki Nasıl Verilir?

Bu yazıda Dynamics 365 Finance and Operation uygulamasında herhangi bir nesneye nasıl yetki tanımı yapılır anlatmaya çalışacağım. Bunu çok kullanmanızı tavsiye etmiyorum. Ne kadar çok ayrıntıya girerseniz güvenliği yönetmek o kadar zor olacaktır. Ancak tabi bazı durumlarda bu ihtiyaç olacaktır. Bu durumlarda gördüğüm bir yanlışta bunu güvenlik altyapısıyla değil de kodla çözmek oluyor. Kesinlikle güvenlikle ilgili işler için kod yazmayın ilk etapta hızlı çözümmüş gibi görünür ama ilerde çok baş ağrısı olur. Desteği ve sonra gelen taleplerin karşılanması çok zorlaşır. Bu yazıda önceki yazılarımda kullandığım proje ile devam edeceğim. Bir test kullanıcısına Müşteriler formu yetkisi vermiştik. Artık formu açıp verilerini görebiliyor. Varsayalım Customer group alanı bu kullanıcıda görünmesin istendi. Bunu nasıl yapabiliriz görelim.

Resim-1

Yeni bir Privilege ekliyorum.

Resim-2

Privilage altında Form Control Permissions kısmı sağ tıklayıp New Form diyoruz.

Resim-3

Name kısmından CustTable formunu seçiyoruz.

Resim-4

CustTable’a sağ tıklayarak yeni nesne oluştur diyoruz ve yetki vermek istediğimiz nesnenin adını yazıyoruz. Grant asıl işi yapan yer No Access ile bu Privilege’e sahip olanların bu nesneyi görmemelerini sağlıyoruz. Burada lookup ta çıkmayabilir önemli değil direk ismi yazabilirsiniz. Bu tanımlar yeterli olmayacak yetki tanımı yapacağımız nesnenin bir özelliğini değiştirmemiz gerekiyor.

Resim-5

Bu değişikliği yapabilmek için nu aşamada formumuz için bir extension oluşturmamız gerekiyor.

Resim-6

Oluşturduğumuz Extension’ı açıyoruz. Yetki vermek istediğimiz nesneyi bulup özelliklerinden NeedPermission’ı Manuel’e çekiyoruz. Yani bu nesnenin yetkisini biz yöneteceğiz demiş oluyoruz. Extension’ı ilk adım olarak yapmak daha mantıklı aslında.

Resim-7

Sonrasında önceki yazılarımızda kullandığımız Duty’e Privilege’i ekliyoruz.

Resim-8

Projemizi kaydedip derliyoruz ve sadece projemiz için DB senkronizasyonunu çalıştırıyoruz. Bundan sonra test kullanıcımızla giriş yapıp Müşteriler formunu açtığımızda Customer Group alanının görünmediğini göreceksiniz.

Resim-9

Bu yazıda alt seviye bir nesneye nasıl yetki verilir anlatmaya çalıştım. Çok basit halledilebiliyor ama çok fazla alt seviye yetki tanımı yaparsanız işin içinden çıkmak çok zor oluyor mümkün olduğunca giriş noktasından yetki vermeye çalışın.

Selamlar.

www.fatihdemirci.net

TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Security, Microsoft Dynamics 365, MsDyn365FO, MsDyn365CE, MsDyn365, Dynamics 365 Insights Power BI, Power Automate, Power Apss, Power Virtual Agents, Dynamics 365 nedir, Dynamics 365 ERP, Dynamics 365 CRM

Page 2 of 3612345102030...Last »

Türkiye'nin en doğru, dolu dolu ve hatasız anlatımları ile teknik yazılarına, makalelerine, video'larına, seminerlerine, forum sayfasına ve sektörün önde gelenlerine ulaşabileceğiniz teknik topluluğu, MSHOWTO