CRM 2016 - Form Düzenini Değiştirme (Changing the Form Layout in Dynamics CRM)

Dynamics CRM le çalıştığınız zamanlarda bulunduğunuz ortama göre formu tam ekran yaptığınız zaman fomun sağ tarafında boş bir alanın göründüğü sorunuyla kaşılaşmış olabilirsiniz.

Bu sorunu çözmek için Form Özelliklerinden formun Maximum Genişliğini değiştirmeye ihtiyacınız olacaktır.Benim karşılaştığım sorunda Maximum Genişiği 2300 pixel yaparak sorun giderilmiş oldu.

Ayarlar  -  Özelleştirmeler - Sistem Özelikleri
Varlıkları Genişletelim (Sol Panelden) - Varlığımızı Bulup Genişletelim - Form
Formu Aç -  Form Özelliklerine Tıkla





Kısa Yol : Açılan form üzerinde Form Editor e tıklayalım.


Açılan ekrandan Görüntü tabını seçelim.Maximum Genişlik alanına değerimizi yazalım.OK butonuna tıklayarak işlemimizi kaydedelim.



CRM 2011 - Equipment Oluşturma (Create Equipment)


C# Code
                     
                            #region Create TesisEkipman
                            Equipment equipment = new Equipment();
                            equipment.Name ="New Created Equipment";
                            equipment.Description ="Item description";
                            equipment.CalendarId = new EntityReference("calendar", "guidvalue") ;
                            equipment.DisplayInServiceViews =true;
                            equipment.EMailAddress = "gkhnmnts@hotmail.com";
                            equipment.IsDisabled = false;
                            equipment.SiteId =new EntityReference("site", "guidvalue") ;
                            equipment.Skills =" item.Skills";
                            equipment.TimeZoneCode = 1;
                           equipment.BusinessUnitId = new EntityReference("businessunit", "guidvalue") ;

                            crmService.Create(equipment);
                            #endregion

Örnek :

 string fetchBU = @"<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'>
                                  <entity name='businessunit'>
                                    <attribute name='name' />
                                    <attribute name='address1_telephone1' />
                                    <attribute name='websiteurl' />
                                    <attribute name='parentbusinessunitid' />
                                    <attribute name='businessunitid' />
                                    <order attribute='name' descending='false' />
                                  </entity>
                                </fetch>";

EntityCollection resultequipments = crmServiceDev.RetrieveMultiple(new FetchExpression(fetchBU));

            if (resultequipments.Entities.Count > 0)
            {
                Guid BuId;
                BuId = (Guid)resultequipments.Entities[0]["businessunitid"];
                Entity equipment = new Entity("equipment");
                equipment["name"] = "test";
                equipment["businessunitid"] = new EntityReference("businessunit",BuId);
                equipment["timezonecode"] = 1;
                crmServiceDev.Create(equipment);
                Console.WriteLine("Facility successfully created");

            }

CRM 2015 - Hızlı Form Ekranı (Quick Create Form)

Hızlı Form Ekranı (Quick Create Form)

Microsoft Dynamics CRM Online 2015 Update 1 ve daha sonraki versiyonları desteklemektedir.

Xrm.Utility namespace içerisinde openQuickCreate metodu ile kullanılır.

Metodun kullanım şekli ve alacağı parametreleri gösteren liste aşağıdadır.


Hızlı bir şekilde kayıt oluşturmak için kullanabileceğiiz bu ekran sayesinde dafault değerler veya mapping ile veri göndererek yenı bir kayıt açılması sağlanır.

Aşağıdaki script function ile kullanılır.

Örnek javascript kod account formunda çağrıldığında yeni bir hızlı kayıt girişi ekranı açılır ve default olarak Ad alanı setlenir. Save butonu tıklanarak yeni kayıt girilir.


function openQuickCreate() {
    try {
        var thisAccount = {
            entityType: "account",
            id: Xrm.Page.data.entity.getId()
        };
        var callback = function (obj) {
            console.log("Created new " + obj.savedEntityReference.entityType + " named '" + obj.savedEntityReference.name + "' with id:" + obj.savedEntityReference.id);
        }
        var setName = { name: "Child account of " + Xrm.Page.getAttribute("name").getValue() };
        Xrm.Utility.openQuickCreate("account", thisAccount, setName).then(callback, function (error) {
            console.log(error.message);
        });
    }
    catch (e) {
        alert(e.message);
    }
}

Function çağrıldığındaki ekran görüntüsü

Daha fazla bilgi için tıklayınız.

Teklif Entitisi Üzerinde ParaBirimi Alanı Değiştirildiğinde Alınan "Entity type not defined" Hatası

 ( Error "Entity type not defined" on changing Currency Fields in Quote entity)


MS CRM 2015 ve MS CRM 2016 Teklif formu üzerinde currency onchange de "Entity type not defined" hatasını alıyorsak Form onload a aşağıdaki gibi script satırlarını ekleyerek problemi çözebiliriz.


 Mscrm.QuoteMainSystemLibraryWebResource.onTransactionCurrencyChange = function () {
            !Mscrm.InternalUtilities.JSTypes.isNull(Xrm.Page.ui.controls.get("pricelevelid")) && Xrm.Page.data.entity.attributes.get("pricelevelid").setValue(null);
            Xrm.Utility.alertDialog(Xrm.Internal.getResourceString("LOCID_CURRENCY_CHANGE_ALERT"), null)
        };

CRM 2011 - Timeout Hatası (Unhandled Exception: System.TimeoutException)


Hata

System.TimeoutException: İstek kanalı, yanıt beklerken 00:02:00 sonra zaman aşımına uğradı. Request çağrısına geçirilen zaman aşımı değerini artırın ya da Binding üstündeki SendTimeout değerini artırın. Bu işlem için ayrılan süre daha uzun bir zaman aşımı değerinin bir bölümü olabilir. ---> System.TimeoutException: 'http://xxxx/xxCRM/xrmservices/2011/Organization.svc' öğesine HTTP tarafından yapılan istek, ayrılan zaman aşımı süresini (00:02:00) aştı. Bu işlem için ayrılan süre daha uzun bir zaman aşımı değerinin bir bölümü olabilir. ---> System.Net.WebException: İşlem zaman aşımına uğradı
-


Serviceproxy nin defaulttakı timeout değeri 2 dakikadır. Bu zamandan sonraki sürelerde timeout hatası verilecektir. Bunu crm le connection kurduğumuz yerde serviceproxy değeri üzerinde değiştirebiliriz.

  ClientCredentials credentials = new ClientCredentials();
                credentials.Windows.ClientCredential = new System.Net.NetworkCredential(_settingFactory.GetUserName, _settingFactory.GetPassword, _settingFactory.GetDomainName);
                //credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
                Uri organizationUri = new Uri(_settingFactory.GetOrganizationSvc);
                OrganizationServiceProxy orgService11 = new OrganizationServiceProxy(organizationUri, null, credentials, null);
                orgService11.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());

                //This line is required to enable Early Bound Types
                orgService11.EnableProxyTypes();
                orgService11.Authenticate();
                orgService11.Timeout = new TimeSpan(0, 15, 0); // extends timeout to 15 minutes
                return (IOrganizationService)orgService11;

MS CRM - Custom Code Validation Tool

Custom Code Validation Tool sayesinde  ,  javascript dosyalarımızın tüm tarayıcılar için uyumlu olup olmadığını kolayca tespit edebiliriz. Çoğunlukla yeni bir CRM versiyonuna geçişlerde bu toolu kullanırız.

Custom Code Validation Tool unu crm e solution olarak yukleyip üzerinde basit tıklamalarla desteklenmeyen scriptlere ulasabiliriz.


MS CRM 2011 için buradan indiriniz.
MS CRM 2013 için buradan indiriniz.

İşlemlerimizi gerçekleştirmek için ;

İndirdiğimiz dosyayı çift tıklayarak bilgisayarımızda bir yere çıkaralım.

Çıkardığımız klasöreki zip dosyasını CRM e import edelim . (Settings - Solutions - Import)

Import işlemi tamamlandıktan sonra Publish yapalım ve import penceresini kapatalım.

Daha sonra Settings - Solutions altından Custom Code Validation Tool u çift tıklayarak açalım.

Gelen pencereden hangi versiyonu kullanacaksak seçelim.

Seçim işleminden sonra crm içerisindeki var olan script dosyaları yüklenir.

Hangi script kütüphanesinde işlem yapacaksak seçeriz ve kırmızı satırlar bize bu script satırının CRM tarafından desteklenmediğini bize bildirir.








CRM 2016 - Kullanıcı Girişlerini Loglamak

CRM üzerinde kimin hangi tarihte crm e bağlandığını loglayabilirsiniz. Bu işlemleri CRM in içerisinde bulunan bir özelliği açmakla yapabilirsiniz. Bu değer default olarak kapalı durumdadır.Bu özelliği aşağıdaki şekilde açalım.

Not : Bu özellik CRM 2016 da gelen yeniliklerden biri değildir. CRM 2011 den itibaren CRM içerisinde mevcuttur.

Ayarlar altından Yönetim menüsüne gidelim.


Sistem Ayarları nı açalım.


Denetim tabı altından Denetim Ayarları kısmından Denetim Kullanıcı Erişimi seçeneğini aktif hale getirelim.

Artık Denetim menüsünden Denetim Özet Görünümü alanından hangi kullanıcının ne zaman sisteme bağlandığını görebilirsiniz.


Denetim Özet Görünümü nü açalım.



Aşağıdaki ekran görüntüsünde olduğu gibi kullanıcı girişlerini görebilirsiniz.