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
Projeden sonra sınıfa ihtiyaç var ama sıfırdan oluşturmayacağız olan örneklerden Tutorial_RunBaseBatch sınıfını çoğaltıyoruz.
Resim-2
Çoğalttığımız sınıfa bir isim verelim. Burada dikkat etmeniz gereken birkaç konu var. Öncelikle sınıfın yapısını değiştirmeyin bu hali ile sorunsuz çalışıyor. Eğer diyaloga ihtiyacınız yoksa onları boşaltabilirsiniz. RunBaseBatch’ten türetmek elzem. Mutlaka Pack Unpack kullanmalısınız. Pack Unpack kısaca nedir derseniz parametrelerinizin sistemde saklanmasını sağlar diyebilirim. Çok geniş bir konu bir yazıda sadece buna değinmek lazım.
Resim-3
Sınıfı çoğaltınca birkaç yerde eski sınıfın adı kalıyor. Bunları düzeltmek lazım. Main metodunu bu hale getirdim.
Resim-4
Aynı şekilde construct metodunu bu şekilde değiştirdim.
Resim-5
Run metodu asıl işin yapıldığı yer. Bu örnek sınıfta bir diyalog açılıyor tarih ve müşteri kodu istiyor. Ben de run metodunda bu diyalogdan gelen değerleri ekrana yazdırıyorum.
Resim-6
Sınıfı çalıştırmak için yeni bir MenuItem oluşturuyorum. Object ve ObjectType seçiyorum.
Resim-7
MenuItem’ı başlangıç noktası olarak işaretliyorum.
Resim-8
Projemi çalıştırdığımda diyalog ekranı açılıyor. Tarih girip bir müşteri seçiyorum. Batch processing no diyorum. Bu haliyle Ok dediğimde sınıf direk çalışacak.
Resim-9
Sınıf çalıştı ve çıktıyı ekrana verdi.
Resim-10
Şimdi Yes olduğunda nasıl oluyor bakalım. Tabi bu kısım biz sınıfımızı RunBaseBatch sınıfından türettiğimiz için geliyor. Önemli olan birkaç alanı tanımladıktan sonra Recurrence’a tıklıyorum.
Resim-11
Burada bu işin hangi sıklıkta ve ne zaman çalışacağını belirleyebilirim. İstersem her 10 dakikada bir çalışır hale getirebilirim ama benim için bir kere çalışması yeterli o yüzden böyle bırakıyorum.
Resim-12
Ok ile ekranları kapattığımda sınıf çalışmadı onu yerine kuyruğa eklendi mesajını gösterdi.
Resim-13
Şimdi Batch Jobs formunu açalım.
Resim-14
Kendi toplu işimizi bulup durumuna bakalım. Ended diyor yani çalışmış ve bitmiş. Eğer tekrarlayan bir iş olsaydı bekliyor durumunda olurdu. Switch to enhanced form ile gelişmiş formu açıyorum.
Resim-15
Bu formda daha çok ayrıntı var. Hepsinden bahsetmeyeceğim ama bizim toplu iş ne yapmış doğru çalışmış mı kontrol etmek için Batch job History’ye tıklıyorum.
Resim-16
Açılan ekrandan Log’a tıkladığımda seçtiğim tarih ve müşteri bilgisinin ekrana çıktığını gördüm. Yani sınıfım çalışmış. Eğer hata olsaydı buradan kontrol edebilirdim.
Resim-17
Bu yazıda RunBaseBatch kullanarak yeni bir toplu iş nasıl oluşturulur anlatmaya çalıştım. Toplu iş çok geniş bir konu farklı açılardan ele almaya devam edeceğim.
Selamlar.
www.fatihdemirci.net
TAGs: Microsoft Life Cycle Services, LCS, Azure, Azure DevOps, Batch Jobs, RunBaseBatch, 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