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
Yeni bir sınıf ekliyoruz.
Resim-2
İlk sınıfımız kontrol sınıfı. Henüz servis sınıfını oluşturmadık ama ismini tespit edip yazdım.
Resim-3
Şimdi servis sınıfını oluşturalım.
Resim-4
Aşağıdaki kodu yazıyorum. Aslında burada Contract sınıfına ihtiyacım var. Hemen onu oluşturalım.
Resim-5
Contract sınıfını oluşturuyorum. Genelde bu sınıfı ilk oluşturmak gerekir. Ama tasarımınız netse hangisinden başladığınız önemli değil. Zaten her seferinde bu kodları tekrar tekrar yazmayacaksınız bir şablondan kullanacaksınız.
Resim-6
Burada iki değişken almak istiyorum ve buna göre sınıfımı düzenliyorum.
Resim-7
MenuItem oluşturuyorum.
Resim-8
MenuItem’a kontrol sınıfımı bağlıyorum.
Resim-9
Bu şamadan sonra derleme yapma gerekiyor. Sadece projeyi derlemek yetmiyor. Bu yüzden Build models diyoruz.
Resim-10
Açılan ekrandan Select all deyip. Build başlatıyoruz.
Resim-11
Build tamamlandıktan sonra MenuItem’mımızı başlangıç nesnesi olarak işaretleyip projemizi çalıştırıyoruz. Sınıfımız çalıştı. Aynı RunBaseBatch’te olduğu gibi direk çalıştırabiliriz.
Resim-12
İstersek toplu işe ekleyebiliriz. Ben toplu işe ekleyip tek sefer çalışacak şekilde ayarladım.
Resim-13
Şimdi Batch Jobs formunu açalım. Kendi toplu işimizi bulup durumuna bakalım. Ended diyor yani çalışmış ve bitmiş. Eğer tekrarlayan bir iş olsaydı bekliyor durumunda olurdu. Toplu iş ne yapmış doğru çalışmış mı kontrol etmek için Batch job History’ye tıklıyorum.
Resim-14
İşin ayrıntılarından Log diyorum ve toplu işin çıktısını gösteriyor. Sorunsuz çalışmış.
Resim-15
Bu yazıda SysOperation kullanarak yeni bir toplu iş nasıl oluşturulur anlatmaya çalıştım. SysOperation çok geniş bir konu farklı açılardan ele almaya devam edeceğim. Özellikle Parallel processing performans açısından çok işe yarıyor. Bir örnekte nasıl kullanılır anlatacağım.
Selamlar.
www.fatihdemirci.net
TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Batch Jobs, SysOperation, 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