Öncelikle belirtmek isterim ki, bu makalede bahsi geçen konu desteklenmeyen bir geliştirme – özelleştirmedir. İleride Dynamics 365 üzerinde yapılabilecek güncellemeler sonrasında bu geliştirme çalışmayabilir. Dolayısı ile bu özelleştirmeyi kullanıp kullanmamak size kalmış bir şey. Ancak benim ihtiyaç duyduğum bir geliştirme idi. Kendime yapmışken sizlerle de paylaşmak istedim
Malum üzere unified interface kullanmaya başladıktan sonra releated kayıtlara erişmekle ilgili proble yaşıyoruz. İşlem geçmişlerini görmek artık çok zor. Hele ki, eski arayüz tamamen kaldırıldığında büyük problem olacak gibi görünüyor. Bizde müşterimizin bir isteği doğrultusunda bu geliştirmeye ihtiyaç duyduk ve kolları sıvadık. Acaba nasıl gösteririz diye.
Gelişmiş ayarlardan iş akışını bulup geçmişinden bakabilir ama yüzlerce kayıt çıkacak. Belirli bir kayda ait işlem geçmişini filtrelemek vs derken çok zahmetli bir hal aldı. İlk başta tabi olmaz diye ısrar ettik ama talepte ısrar edilince bir hokus pokus yapmak gerekti.
Aşağıda anlattığım yöntem ile, belirli bir kayda ait iş akışlarının geçmişlerini görüntülemek mümkün. Ancak tekrar ediyorum, Dynamics 365 üzerinde gerçekleşecek bir güncelleme sonrası bu yöntem çalışmayabilir.
Şimdi hokus pokus zamanı!
- Adım olarak öncelikle formumuz üzerine IFRAME_Workflows isimli bir iframe ekliyoruz.
- Adım olarak ise, bir adet Javascript dosyası oluşturuyoruz.
İlgili javascript içerisinde kullanacağımız kod bloğu aşağıdaki gibidir.
var WorkflowIframeSetter = function() { function onLoad(executionContext) { var formContext = executionContext.getFormContext(); //Form CreateForm ise işlem yapma if (formContext.ui.getFormType() === 1) { return; } //Varlığa ait ObjectTypeCode bilgisini al (OTC) Xrm.Utility.getEntityMetadata(formContext.data.entity.getEntityName()).then( function(entityMetadata){ var otc = entityMetadata.ObjectTypeCode; var url = "/userdefined/areas.aspx?inlineEdit=1&navItemName=Background%20Processes&oId=" + formContext.data.entity.getId() + "&oType=" + otc + "&pagemode=iframe&rof=true&security=852023&tabSet=areaAsyncOperations"; formContext.getControl("IFRAME_Workflows").setSrc(url); }); } // onLoad function return { onLoad: onLoad }; }();
Resim-1
Ve işte karşınızda Unified Interface kullanan bir form içerisinde ilgili kayda ait workflow geçmişi
Resim-2
Bazen gerçekten olmayacak gibi görünen, ya da çok zor görünen işlemler, çok kolay olabiliyor. Aslına bakarsanız işlem çok basit. Ama tabi bunu yapmayı başarabilmek ve bunu araştırmak, test etmek denemek ve yanılmak ile geçen zaman sıkıcı ve zorlu olsa dahi, sonucu aldığınızdaki mutluluk ve başarı hissi hiçbir şeye değiştirilemez.
Ben uğraştım sizler uğraşmayın
iyi, neşeli ve MSHOWTO’lu günler diliyorum.
Bu konuyla ilgili sorularınızı linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar
TAGs: unified interface, workflow logs, işlem geçmişi, birleşik arayüzde işlem geçmişi, unified interface workflow logs