CRM 2016 - MS CRM Grid Toplam Kayıt Sayısı (Total record count in MS CRM grid)

MS CRM üzerinde default olarak 5000 den fazla kayıt olan entitilerde crm üzerindeki viewlerde toplam kayıt sayısı yerine 5000+ değerini görürsünüz.



Eğer toplam sayıyı görmek istiyorsak database üzerinde güncelleme işlemleri yapmamız gerekir.

Not :  Bu işlemleri yapmadan önce databasei yedeklemenizi öneririm.

1- SQL Management Studio üzerinde MSCRM_Config database ini açalım.

select * from DeploymentProperties
where ColumnName ='TotalRecordCountLimit'

2- Yukarıdaki sorguyu çalıştırdığımızda IntColumn değerine bakalım. Bu değer default olarak 5000 dir.

3- 5000 den fazla kayıt sayısı görmek için IntColumn değerini -1 olarak güncelleyelim.

Update DeploymentProperties
 Set IntColumn=-1
 Where ColumnName = 'TotalRecordCountLimit'

4- IIS e reset atalım.

5- CRM i açtığımızda toplam kayıt sayısını görelim.




CRM - Xrm Snippets Microsoft Dynamics CRM


Dynamics CRM üzerinde geliştirme yapıyorsan muhakkak Javascript kod yazımına ihtiyaç duyarız ve  javascript kod yazmak için XRM frameworku kullanılır . Bu frameworkun kodlarını hatırlamak biraz zordur .
 Geçenlerde Codeplex üzerinde yayınlanan snippetlerde birşeyle karşılaştım.  Dynamics CRM üzerinde javascript yazılımını çok kolaylaştırılmış. Bazı kelimeler ile Visual Studio üzerinde ilgili kod bloklarını hazır halde getirir.

XRM Snippets i indirmek için tıklayınız.

XRM Snippets kütüphanesini kullanmak için aşağıdaki adımları takip edin.

Download butonuna tıklayarak XRM Snippetsi bilgisayarımıza indirelim.



İndirdiğimiz XrmSnippets.zip dosyasını dışarı çıkaralım.



Visual Studio yu açalım. Tools menusunden Code Snippets Manager ı seçelim.


Açılan Code Snippets Manager penceresinden Add butonuna basalım ve XRMSnippets klasorumuzu seçelim .





Not : Bu kısımda Import diyerekte diğer klasorlerımıze snippetslerimizi import edebiliriz.

Klasorumuzu seçtikten sonra Code Snippets Manager penceresinde XRMSnippets klasorumuzu göreceğiz. Bu kısımda yüklenen snippetsleride göreceksiniz.



OK butonuna basarak snippetlerimizi visual studio muz üzerinde kaydedelim.

Javascript dosyası açalım ve Crm yazarken yuklenen snippetler filtrelenmeye başlayacaktır. Buradan ilgili snippetsi seçelim ve Tab tuşuna basalım.


Örnek 

CRM_Attribute_AddOnChange i seçelim ve tab tuşuna basalım.

Seçim sonrası aşağıdaki kod bloğu ekrana gelir.



CRM - Birden Fazla Kullanıcı ile Login Olma (Multiple Login/Session Manager for Chrome and Firefox )

Bir CRM geliştirici olarak aşağıdaki sebeplerden dolayı aynı tarayıcı üzerinde birden fazla hesap ile login olmak isteriz. Bu işlemi yaparken tarayıcı kapatıp tekrar açmamız yada tekrar tekrar kullanıcı bilgilerinin girilmesi gerekir .

1- Farklı güvenlik rolleri ile test yaparken
2-Birden çok istemci üzerinde calışırken

Aşağıdaki eklentiler ile Chrome ve Firefox ile bu sorunumuzu çözmüş olup daha hızlı işlemlerimizi gerçekleştirebiliriz.

Firefox – Multifox
Chrome – openMultiLogin
Chrome – SessionBox


CRM 2016 - Microsoft Dynamics CRM 'i POP3/SMTP sunucularına bağlama

Microsoft Dynamics CRM (yerinde) uygulamasını Gmail ve Outlook.com için kullanılan POP3/IMAP ve SMTP gibi e-posta sunucuları ile bağlamak için aşağıdaki adımları uygulayabilirsiniz.

  E-posta sunucu profili oluşturma


1-) Ayarlar > E-posta Yapılandırılması diyelim. Gelen ekranda bir profil yaratmak için E-posta Sunucu Profilleri ne tıklayalım.


2-) Gelen ekranda Yeni butonuna basalım . Gelen seçeneklerden email server ımıza göre gerekli olanı seçelim . Biz bu örneğimizde smtp server a göre configure edecegimizden PoP3-SMTP Server ı seçtik.

3 -) Açılan ekranımızda bir exchange e-posta sunucusu profili için aşağıdaki ayrıntıları belirtin.

Ad            : Profil için anlamli bir ad belirtin.
Açıklama :  E-posta sunucu profilinin amacı hakkında kısa bir açıklama yazın.
Gelen Sunucu Konumu : Gelen sunucu konumunu girelim.
Giden Sunucu Konumu : Giden sunucu konumunu girelim.
Kimlik Bilgileri kısmında aşağıdaki seçeneklerden uygun olanı seçelim.


-Bir Kullanıcı ya da Kuyruk Tarafından Belirtilen Kimlik Bilgileri.

Bu seçeneği belirtirseniz bir kullanıcının veya kuyruğun posta kutusu kaydında belirtilen kimlik bilgileri ilgili kullanıcı veya kuyruk için e-posta gönderme veya almak üzere kullanılır.
-E-posta Sunucusu Profilinde Belirtilen Kimlik Bilgileri  
 Bu seçeneği belirtirseniz, bu profil ile ilişkilendirilen tüm kullanıcılar ve kuyrukların posta kutuları için e-posta gönderme ve alma amacıyla e-posta sunucusu profilinde belirtilen kimlik bilgileri kullanılır. Kimlik bilgilerinin, profille ilişkili posta kutularında kimliğe bürünme veya temsilci izinlerine sahip olması gerekir. Bu seçenek e-posta sunucusunda, profil ile ilişkilendirilmiş posta kutuları için Exchange üzerindeki kimliğe bürünme haklarını yapılandırma gibi yapılandırma gerektirir.
-Windows Tümleşik Kimlik Doğrulaması
 Bu seçenek yalnızca Exchange ve SMTP e-posta sunucusu türleri için geçerlidir. Bu seçeneği belirtirseniz, Microsoft Dynamics CRM Asenkron Servis'in yapılandırıldığı kimlik bilgileri kullanılır.
-Kimlik Bilgileri Olmadan (Anonim)
Exchange ile çalışıldığında geçerli bir ayar değildir.
Giden için aynı ayarları kullan : Gelen ve giden bağlantıları için aynı kimlik bilgisi ayarlarını kullanmak istiyorsanız Evet'i seçin.
4 -) Kaydet diyerek işlemlerimizi kaydedelim.

Varsayılan e-posta işleme ve eşitlemeyi yapılandırma 


Sunucu tarafı eşitlemesini varsayılan yapılandırma yöntemi olarak ayarlayın. Ayarlar > E-posta Yapılandırması > E-posta Yapılandırma Ayarları'na tıklayın.

 İşlem ve eşitleme alanlarını aşağıdaki gibi ayarlayın:

Sunucu Profili: Yukarıdaki bölümde oluşturduğunuz profil.
Gelen E-posta: Sunucu Tarafı Eşitlemesi veya E-posta Yönlendiricisi
Giden E-posta: Sunucu Tarafı Eşitlemesi veya E-posta Yönlendiricisi
Randevular, İlgili Kişiler ve Görevler: Outlook için Microsoft Dynamics CRM

Not: Sunucu Tarafı Eşitlemesi veya E-posta Yönlendiricisi POP3-SMTP profili için desteklenmez.

 Onaylanmayan kullanıcı ve kuyruklar için e-posta işlemesi öğesini varsayılan değerlerde (işaretlenmiş) bırakırsanız, E-posta Onayla altında kullanıcı posta kutuları için e-postaları ve kuyrukları onaylamanız gerekir.

Posta Kutusu Yapılandırma (Mailbox)


Varsayılan profili kullanmak üzere posta kutuları ayarlamak için, önce Sunucu Profili'ni ve e-posta, randevular, kişiler ve görevler için teslim yöntemini ayarlamanız gerekir.

Posta kutusuna yönelik teslim yöntemini ayarlamak için, yönetici izinleri dışında, Posta Kutusu varlığı üzerinde Okuma ve Yazma ayrıcalıklarınız da olmalıdır.

Aşağıdaki yöntemlerden birine tıklayın:


Posta kutularını varsayılan profile ayarlama

Ayarlar > E-posta Yapılandırması > Posta kutuları'na gidin.

Etkin Posta Kutuları'nı seçin.

Oluşturduğunuz POP3-SMTP profili ile ilişkilendirmek istediğiniz tüm posta kutularını seçin, Varsayılan E-posta Ayarlarını Uygula'ya tıklayın, ayarları doğrulayın ve ardından Tamam'a tıklayın.



Varsayılan olarak, Tamam'a tıkladığınızda posta kutusu yapılandırma test edilir ve posta kutuları etkinleştirilir.


Profili ve teslim yöntemlerini ayarlamak için posta kutularını düzenleme


1-)Ayarlar > E-posta Yapılandırması > Posta kutuları'na gidin.

2-)Etkin Posta Kutuları'na tıklayın.

3-)Yapılandırmak istediğiniz posta kutularını seçin ve ardından Düzenle'ye tıklayın.

4)Birden Çok Kaydı Değiştir formunda, Eşitleme Yöntemi altında, Sunucu Profili'ni daha önce oluşturduğunuz POP3-SMTP profiline ayarlayın.


5)Gelen ve GidenE-posta'yı Sunucu Tarafı Eşitlemesi veya E-posta Yönlendiricisi olarak ayarlayın.

6-)Randevular, Kişiler ve Görevler'i Sunucu Tarafı Eşitlemesi olarak ayarlayın.

Not :Kullanıcılarınız masaüstü bilgisayarlarında en çok Outlook için Dynamics CRM kullanıyorlarsa Microsoft Dynamics CRM for Outlook daha iyi bir seçenek olabilir.

7-)Değiştir 'e tıklayın.

E-posta onaylama


Bir kullanıcının posta kutusunun e-posta işlemlerini yapabilmesi için o posta kutusunu veya kuyruğu onaylamanız gerekir.

Ayarlar > E-posta Yapılandırması > Posta kutuları'na gidin.

Etkin Posta Kutuları'na tıklayın.

Onaylamak istediğiniz posta kutularını seçin ve ardından E-posta Onayla 'ya tıklayın.
Butonu ribbonda göremiyorsanız ... alanına tıklatın (ok ile gösterilmiş) .



OK seçeneğini tıklatın.

Posta kutularının yapılandırmasını sınama


Ayarlar > E-posta Yapılandırması > Posta kutuları'na gidin.

Etkin Posta Kutuları'na tıklayın.

Sınamak istediğiniz posta kutularını seçin ve ardından Posta Kutularını Sına ve Etkinleştir'e tıklayın.


Bu, seçili posta kutularının gelen ve giden e-posta yapılandırmasını sınar ve bunları e-posta işleme için etkinleştirir. Bir posta kutusunda bir hata ortaya çıkarsa, posta kutusu ve profil sahibinin Uyarılar duvarında bir uyarı gösterilir. Microsoft Dynamics CRM, hatanın doğasına bağlı olarak e-postayı bir süre sonra yeniden işlemeyi dener veya posta kutusunu e-posta işleme için devre dışı bırakır.

E-posta yapılandırması sınamasının sonucu, posta kutusu kaydının Gelen E-posta Durumu, Giden E-posta Durumu ve Randevular, İlgili kişiler ve Görevlerin Durumu alanlarında görüntülenir. Bir posta kutusunun yapılandırması başarıyla tamamlandığında ayrıca bir de uyarı üretilir. Posta kutusu sahibi için bu uyarı görünür.

Not : Bir posta kutusunun kişilerini, randevularını ve görevlerini eşitleyemiyorsanız, Exchange farklı bir kuruluş ile eşitlenmek için ayarlanmış olsa bile, yalnızca bu CRM Kuruluşundaki öğeleri Exchange ile eşitle onay kutusunu seçmeniz önerilir.

E-posta sunucusu profiliyle ilişkilendirilmiş tüm posta kutularının e-posta yapılandırmasını sınama


Ayarlar > E-posta Yapılandırması > E-posta Sunucusu Profilleri öğesine gidin.

Oluşturduğunuz profilini seçin ve ardından Posta Kutularını Sına ve Etkinleştir'e tıklayın.



E-posta yapılandırmasını sınarken, bir zaman uyumsuz iş arka planda çalışır. Testin tamamlanması birkaç dakika sürebilir. Microsoft Dynamics CRM, POP3-SMTP profili ile ilişkili tüm posta kutularının e-posta yapılandırmasını sınar. Randevuları, görevleri ve kişileri eşitlemek üzere sunucu tarafı eşitlemesi için yapılandırılmış posta kutularında da ayrıca bunların düzgün yapılandırılıp yapılandırılmadığını denetler.

CRM 2016 - Aktivite Filtreleme (Filter for Activities in Dynamics CRM Social Pane Works)



Filtreleme özelliği ile  aktivitelerimizi gördüğümüz ekranda belli aktivite tiplerini göre filtreleme yapabiliyoruz . 
Bu özellik Social Pane Aktivite alanında bir buton sayesinde kullanılır.
Kullanıcılar bu butona basarak seçtiği seçime göre aktivitelerini filtrelerler . Bu seçenekler Tüm Varlıklar , Görev , Randevu , Telefon Görüşmesi ve E postalar dır.

Aşağıdaki ekran görüntüsünde Aktiviteler tabı altında tüm aktiviteleri görebiliyoruz.



Bir sonraki adımda tab üzerindeki filtreleme butonuna basalım ve açılan pencereden filtreleyebileceğimiz aktivite tiplerini görelim.

Ben bu adımda Görev leri seçip  , tab altında sadece Görev varlıklarınının gelmesini sağladım. Sizlr diğer seçeneklere göre  filtreleme yapabilirsiniz.


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);