Dynamics Ax’ ta Jobs
Merhaba
Jobslar tek başına çalışabilen kod parçaçıklarıdır. Genelde biz axcılar joblarda kod testlerini ve veri güncellemelerini yaparız. Jobları uygulamanın içinde pek kullanmayız. Doğrusuda budur. Eğer uygulamada kullanılacak bir işse sınıf yazmak daha mantıklı olacaktır.
Joblar genelde açıldıktan sonra çalıştır denilerek kullanılır. AOT den jobın üzerine gelip Aç derseniz job çalışacaktır. Bu bazen tehlikeli olabilir. Örneğin bir seferlik veri güncellemesi yapması gerekn bir job yazdınız. Başka birisi joba sağ tıklayıp Aç dediğinde tekrar çalışacak ve verinizi bozacaktır. Bu durum için yapılması gereken işiniz bittikten sonra job içindeki update yapan kodlarınızı yorum satırı halıne getirmektir. Jobın kodunu görmek için üzerine çıft tıklamak veye sağ tıklayıp düzenle demek gerekir.
Eğer istersek jobları kod içinden de çalıştırabiliriz.
Örneğin mesaj veren aşağıdaki gibi bir job olsun ve bunu koddan çağırıp mesajı görelim;
static void CalledFromCodeJob(Args _args) { ; info("Ben koddan çağırıldım"); }
static void RunJobsFromCode(Args _args) { #AOT // job yolu için makro kullanıyoruz ; // Hello adında bir job var mı bakıyoruz if(TreeNode::findNode(strfmt(#JobPath,"CalledFromCodeJob"))) { TreeNode::findNode(strfmt(#JobPath, "CalledFromCodeJob")).AOTrun(); } }
Job’ların üzerinde bir özellik olsaydı ve bu özellik active iken sadece job’lar çalışabilseydi, böylece job’lardaki yanlışlıkla aç yapıldığında çalışması engellenmiş olurdu. Hem de toplu olarak tüm job’lar bir kerede pasif yapılabilirdi.