Çözümleri sistemimize import ederken genellikle sistem yavaşlar ve bu süre içerisinde bir işlem yapamayız. Ms Crm 2013 ile artık asenkron olarak çözümlerimizi import edebiliyoruz. Ne yazikki şuan sadece kod tarafında bu işlem mümkün. Crm arayüzünden yaptığımız import işlemi senkron olarak devam etmekte.
Öncelikle ExecuteAsyncRequest isimli asenkron olan process’ i kullanacağız. ExecuteAsync request’imizi Organization Service kullanarak gönderip mesajımızın asenkron bir iş olarak işleme koyulmasını sağlıyoruz. Gönderdiğimiz asenkron işin idsini elde ettiğimiz zaman çözümümüzün başarıyla veya başarısız olarak import edildiğini anlıyoruz.
Örnek:
ExecuteAsyncRequest request = new ExecuteAsyncRequest { Request = new ImportSolutionRequest { //sıkıştırılmış çözümümüzün dosya yolunu veriyoruz CustomizationFile = File.ReadAllBytes(solutionFilePath), PublishWorkflows = true, //yönetilmeyen çözümümüzün var olan çözümün üzerine yazılması için yetki veriyoruz OverwriteUnmanagedCustomizations = true, } };
ExecuteAsyncResponse response = (ExecuteAsyncResponse)_service.Execute(request);
Burada aşağıdaki gibi asenkron işimizin id sini alıyoruz.
Veya sistem işlerinden oluşturulan job’ u bulup çözümümüzün başarılı bir şekilde import edilip edilmediğine bakabiliriz. Asenkron olarak çözümlerimizi aldığımız zaman sistemimiz kitlenmez ve kullanıcıların sürekli timeout almasını engellemiş oluruz.
Kaynak{:}{:en}Çözümleri sistemimize import ederken genellikle sistem yavaşlar ve bu süre içerisinde bir işlem yapamayız. Ms Crm 2013 ile artık asenkron olarak çözümlerimizi import edebiliyoruz. Ne yazikki şuan sadece kod tarafında bu işlem mümkün. Crm arayüzünden yaptığımız import işlemi senkron olarak devam etmekte.
Öncelikle ExecuteAsyncRequest isimli asenkron olan process’ i kullanacağız. ExecuteAsync request’imizi Organization Service kullanarak gönderip mesajımızın asenkron bir iş olarak işleme koyulmasını sağlıyoruz. Gönderdiğimiz asenkron işin idsini elde ettiğimiz zaman çözümümüzün başarıyla veya başarısız olarak import edildiğini anlıyoruz.
Örnek:
ExecuteAsyncRequest request = new ExecuteAsyncRequest { Request = new ImportSolutionRequest { //sıkıştırılmış çözümümüzün dosya yolunu veriyoruz CustomizationFile = File.ReadAllBytes(solutionFilePath), PublishWorkflows = true, //yönetilmeyen çözümümüzün var olan çözümün üzerine yazılması için yetki veriyoruz OverwriteUnmanagedCustomizations = true, } };