Skip links

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;

[sourcecode language=”csharp”]
static void CalledFromCodeJob(Args _args)
{
;
info(“Ben koddan çağırıldım”);
}
[/sourcecode]

Bu jobı başka bir jobtan çalıştıralım
[sourcecode language=”csharp”]
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();
}
}
[/sourcecode]
Ayrıca joblar MenuItem yapılabilir.  Bu sayede MenuItem ın bize sağladığı bütün imkanları kullanabiliriz.
Selamlar.

Opinions

  1. Post comment

    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.

    Permalink

Join the Discussion