CRM Customization - CRM Database inden Javascript İçeriğini Almak

Decrypt default Javascript files in CRM Server

CRM üzerindeki script dosyalarımız CRM database inde WebResource tablosunda bulunur .
Bu tablodaki  javascript dosyalarının içeriği encrypt edilmiş şekilde bulunmaktadır.

Aşağıdaki C# kodu ile script dosyamızın içeriğini alabliriz.

Örneğimizde account formunda bulunan ite_TestLibrary adlı javascript kutuphanesının içeriğini alacağız.




Sorgu sonucu dönen Content kolonunu kopyalayıp aşağıdaki kodda string content değişkenine verelim.

Kodu çalıştırdığımızda scriptContent değişkeninin içeriğine bakalım.



C# Kod
  string content = "ZnVuY3Rpb24gRGVjcnlwdEphdmFzY3JpcHQoKXsKICBhbGVydCgiU3VjY2VlZGVkIik7Cn0=";
            byte[] binaryData = System.Convert.FromBase64String(content);
            string scriptContent = System.Text.Encoding.ASCII.GetString(binaryData);

CRM 2013/ 2015/2016 Javascript - Form Reload

(Reload an entity form in Dynamics CRM 2013/ 2015/2016)

CRM 2013 ten itibaren form save edildiğinde formun tamamı yenilenmez. Daha önceleri formu yenilemek için çoğunlukla window.location.reload(true) yöntemini kullanırdık.

Yeni versiyonlarda Xrm.Page.data.refresh(true|false) ve Xrm.Page.ui.refreshRibbon() yöntemiyle ribbon ve data bölümünü asenkron olarak güncelleyebiliriz.

Tüm formu yeniden yüklemek istediğmizde ise Xrm.Utility.openEntityForm ile işlem yapmamız gerekecektir.

Xrm.Utility.openEntityForm(“account”, Xrm.Page.data.entity.getId());

Örnek;

Crm formundan açtığımız page sonrası formu load işlemine zorlamak istersek aşağıdaki yöntemi kullanabiliriz.


 var win = window.open(url, 'Rapor', features);
            var timer = setInterval(function () {
                if (win.closed) {
                    clearInterval(timer);
                    //window.location.reload(true);

                    // Save the current record to prevent messages about unsaved changes
                    Xrm.Page.data.entity.save();

                    setTimeout(function () {
                        // Call the Open Entity Form method and pass through the current entity name and ID to force CRM to reload the record
                        Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(), Xrm.Page.data.entity.getId());
                    }, 3000);
                }

            }, 1000);