Form’larda Process Indicator ile ekranı kitlemek

Dynamics 365 üzerindeki favori özelliklerimden bir tanesidir kendileri. Eğer bazı işlemleri yapmak için JavaScript ile başka servislerle veri alışverişi içindeyseniz servislerin geç cevap vermeleri nedeniyle formun donduğunu ve kullanıcıların buna ne kadar sinir olduğunu söylememe gerek yok herhalde.

İşte bu durumda kullanıcıya mesaj vermek adına kullanabileceğimiz bir özellik var; showProgressIndicator.

Bu arkadaşı JS kodunuzun içinde örnekte verildiği gibi çağırdığınızda ekranı işlem bitene kadar kitleyecek. Böylece kullanıcı işlemin hala devam ettiğini anlayacak ve bekleyecektir. (Umarım)

var CrmSaturday = CrmSaturday || {};
CrmSaturday.Account = {
    onItemChange: function (executionContext) {
        //Demo showProgressIndicator D365 V9 
        var progress = 0;
        var counter = 5;
        var formContext = executionContext.getFormContext();
        var runCheckAttributeValue = formContext.getAttribute("mwns_check").getValue();
        if (runCheckAttributeValue && runCheckAttributeValue === true) {
            setTimeout(OpetationToDo, 1000);
        }

        function OpetationToDo() {

            if (progress < counter) {
                var currentProgress = progress / counter * 100;
                Xrm.Utility.showProgressIndicator("Running Check... " + currentProgress + "%");
                progress++;
                setTimeout(OpetationToDo, 1000);
            }
            else
                Xrm.Utility.closeProgressIndicator();

        }
    }
}

Tabii yukarıdaki örnek bir servise bağlanmıyor sadece 100’e kadar sayıyor sizin ilgili bölümü kendi işinize uygun olarak değiştirmeniz gerekiyor.

Form'larda Process Indicator ile ekranı kitlemek
Form’larda Process Indicator ile ekranı kitlemek