Dynamics 365 Server 9.0 Onpremise

Dynamics 365 Server version 9.0 available for download


Dynamics 365 v9.0 online  birçok özellikle beraber çıkmıştı ama onpremise versiyonu yoktu. Nihayet onpremise versiyonu da çıktı. Microsoft üzerinden makinanıza indirebilir kurabilirsiniz.

Not:
Microsoft Yükleme Merkezi'nde şu anda karşıdan yüklenebilir. 90 günlük deneme anahtarı kullanılabilir veya ticari bir lisans anahtarınız varsa bunu istediğiniz zaman (kurulum sırasında veya 90 günlük deneme süresi içinde) girebilirsiniz. Bu sürüm, önceki sürümde olduğu gibi Raporlama uzantılarını içerir. Ayrıca desteklenen işletim sistemlerinin farkında olun. Sistem gereksinimi için Windows Server 2016 gereklidir.

Buradan indirebilirsiniz

90 Günlük Deneme Anahtarı : KKNV2-4YYK8-D8HWD-GDRMW-29YTW


Dynamics 365 - Uygulama Kullanıcısı ( Application User )

Dynamics 365 in yeniliklerinden biriside Uygulama Kullanıcısıdır.  Kullanıcı adı ve parola ile erişimden ziyade bir Hizmet Hesabı tarzı kullanıcı kullanarak giğer sistemlere bağlanması anlamına gelir.

Bunun etkilerinden biri , Kullanıcı kaydındaki Uygulama Kullanıcısı formudur . Eğer varsayılan olarak bu formu görüyorsanız  ve standart kullanıcı formunu goruntulemek istiyorsanız yapmanız gereken Kullanıcı formunu seçmek olacaktır.





Bu formu kullanıcı kaydına kaydetmeye çalışırsanız, bu zorunlu bir alan olduğundan 'Uygulama Kimliği için bir değer vermelisiniz' hatasını alacaksınız.

Çok Kaynaklı sunucu hakkında, Uygulama Kaynağı tarafından kullanılan sunucu uygulaması kullanıcı entegrasyon senaryolarına ilişkin daha fazla bilgi edinmek isterseniz, aşağıdaki makaleye göz atın.

https://msdn.microsoft.com/en-us/library/mt790170.aspx

Dynamics 365 v9.0 - Başvuru Paneli (Reference Panel Section)


Dynamics 365'in en son güncellemesi, UI bölümü ile ilgili birçok yeni özellik getirdi. Dynamics 365 V9.0'daki yeni özelliklerin bazılarını keşfederken, Referans Paneli olan ilginç bir ekleme bulduk.

Bu makalemde, Dynamics 365 V9.0'daki Referans Paneli Bölümünü göreceğiz.

Genellikle forma hızlı görünüm yerleştirdiğimizde  üzerine ekstra bir boşluk alanı ekleriz.
Birçoğumuz, formdaki diğer denetimlerle birlikte hızlı görünümü hizalamak için sorun yaşamış olabiliriz.

Ayrıca, alt ızgaraları (subgrid) hızlı bir görünümle birlikte yerleştirmenin basit bir işlem olduğunu düşünsek bile,  yine de tasarım yaparken uğaşırız.

Şimdi, form tasarımını referans paneli kullanarak nasıl daha iyi hale getirebileceğimizi ve bu sorunları Dynamics 365 V9.0'da nasıl aşabileceğimizi görelim.

Dynamics 365 V9.0'da form düzenleyiciyi açtıktan sonra, aşağıda gösterildiği gibi EKLE sekmesi altındaki “Başvuru Paneli” (Reference Panel) seçeneğini göreceksiniz.



Alanları Referans paneli bölümüne ekleyemiyoruz. Sadece Alt Izgaralar ve Hızlı Görüntüleme formları eklememize izin veriyor.


Her bir form için yalnızca bir Referans Paneli bölümü ekleyebiliriz.



Referans Paneli bölümü eklendiğinde, birden fazla alt ızgara veya hızlı görünüm formu ekleyebiliriz. Bu, web üzerinde ve Birleşik Arayüzde de önceden görülebilir bir görünüm verir.


Web'de, referans paneli formu eklendikten sonra aşağıdaki ekran görüntüsünde gösterildiği gibi görünecektir.


Birleşik Arayüzde, referans paneli formu eklendikten sonra ekran görüntüsünde gösterildiği gibi görünecektir.



Dynamics CRM Javascript - String Karakter Büyük Harf (CRM Text Field ToUppercase)

Aşağıdaki javascript metotlarını kullanarak girilen kelimenin sadece ilk harfini veya tamamını büyük harfe çevirebilirsiniz. Bu metotları text alanın onchange kısmında çağırmanız gereklidir.
CRM de alanın onchange ini tanımlarken parametreler ile alanın adını göndermeniz yeterlidir.


function FirstCharacterToUpperCase(fieldName) {
    try {
        var name = GetValue(fieldName);

        if (name != null) {

            var dizi = name.split(" ");
            var sonHal = "";

            for (i = 0; i < dizi.length; i++) {
                var text = dizi[i];
                if (text != null && text.length != 0) {
                    var ilkKarakter = text.substring(0, 1);
                    var devami = text.substring(1, text.length);

                    if (i != 0) {
                        sonHal += " " + ToUpperCaseStr(ilkKarakter) + devami.toLowerCase();
                    }
                    else {
                        sonHal += (ilkKarakter == "i" ? "İ" : ToUpperCaseStr(ilkKarakter)) + devami.toLowerCase();
                    }
                }
            }

            SetValue(fieldName, sonHal);
        }
    }
    catch (e) {
        CommonAlert("An error occured in FirstCharacterToUpperCase Function.\nError: " + e.message);
    }
}

function FullToUpperCase(fieldName) {
    try {
        var name = GetValue(fieldName);

        if (name != null && name.length != 0) {
            var sonHal = "";

            for (var i = 0; i < name.length; i++) {
                sonHal += (name[i] == "i" ? "İ" : name[i].toUpperCase());
            }

            SetValue(fieldName, sonHal);
        }
    }
    catch (e) {
        CommonAlert("An error occured in FullToUpperCase Function.\nError: " + e.message);
    }
}


function GetValue(field) {
    var attribute = GetAttribute(field);
    if (attribute != null) {
        return attribute.getValue();
    }
    return null;
}

function SetValue(field, value) {
    var attribute = GetAttribute(field);
    if (attribute != null) {
        return attribute.setValue(value);
    }
    return null;
}

Dynamics 365 SQL - Global Optionset Sorgu

SQL 'de Global OptionSet değerlerini almak için aşağıdaki sorguyu kullanın.


SELECT OS.NAME, L.LABEL, AV.VALUE
FROM AttributePicklistValueAsIfPublishedLogicalView as AV
JOIN OptionSetAsIfPublishedLogicalView  as OS ON AV.OptionSetId= OS.OptionSetId
JOIN LocalizedLabelAsIfPublishedLogicalView as L ON L.ObjectId = AV.AttributePicklistValueId
WHERE OS.ISGLOBAL = 1 AND OS.IsCustomOptionSet = 1
AND L.OBJECTCOLUMNNAME = 'DISPLAYNAME'
AND OS.NAME ='<Provide Global OptionSet Schema Name>'

Dynamics 365 - Hızlı Kampanyalar a Gelişmiş Bul Üzerinden Ulaşma

Hızlı Kampanyalar, doğrudan Gelişmiş Arama'dan bulamadığımız bir etkinliktir.

Kampanya Etkinliği kayıtlarını almak için Gelişmiş Bul'da aşağıdaki ölçütleri kullanın.


Dynamics 365 - QuickFindQueryRecordLimit exceeded

Varlıklar üzerinde text olarak arama yapıldıgında asagıdakı ekran görüntüsündekı hatayı alıyorsak çözüm için aşağıdaki yöntemi deneyelim.

Kullanıcı text ile arama yaptığında sonuç olarak 10.000 den daha fazla kayıt geri donuyorsa ilgili hatayı verir .

Hızlı Bulma Arama için CRM 'deki bu sınırlama nedeniyle, CRM Platformu bu sorunu atmaktadır.


Çözüm 

Ayarlar - Yönetim - Sistem Ayarları ile Sistem Ayarları sayfası açılır.

Genel tabının altından Hızlı Bulma ' yı ayarla alanından Hızlı Bul kayıt sınırlarını etkinleştir seçeneğini Hayır olarak seçelim ve daha sonra Tamam butonuna tıklayalım.


Artık gerekli metni herhangi bir sorun olmadan arayabilirsiniz.

Dynamics 365 - Createdon ve Overriddencreatedon

CRM servslerini kullanarak veri aktarma işlemlerinde CreatedOn alanına değer veremeyiz. 

Bu aktarma işlemlerimde aşağıdaki yöntemleri kullanırız.

-- C# kod kullanılarak CRM içerinde veri oluşturma
-- CRM Veri Yönetimi kullanılarak txt/csv/xml dosyaları ile 

Bu yöntemlerde createdon tarihine değer veremezsiniz ve bu alan otomatik olarak kayıdın oluşturulduğu tarihi alır .

 Veri aktarımı yapılacağı zaman  gereksinimlerden biri de  CRM'deki kayıt oluşturma tarihinin eski sistemdeki kayıt oluşturma tarihiyle aynı olmasıdır..

Bunu CRM dekı baska bir alanda tutmak yerine sadece create için kullanılan OverrideCreatedOn  alanında tutacağız.  Bu durumda CRM tarafı OverrideCreatedOn alanını kullanacaktır .

Örnek Kod:

Entity account = new Entity("account");
account.Attributes["overriddencreatedon"] = new DateTime(2012, 2, 22);
account.Attributes["name"]=overriddencreatedon;

crmService.Create(item);

SQL Görünümü





Dynamics 365 - Durum Açıklaması Alanının Değerini Verme veya Güncelleme (How to update or set custom values for status code in CRM 2011/CRM 2013/CRM 2015 and CRM 2016 from UI)

CRM üzerindekı alan bilgileirnden statuscode alanı için değer değişimi yapamazsınız  . Bunun için customization.xml yöntemini kullanarak  alanların değerlerini verebilirz veya güncelleyebiliriz.



Öncelikle , kullanacağımız yöntem Microsoft tarafından desteklenmediği için (unsupported) işlemlerimize başlamadan önce yedek almamız gerekir. Aksi bir durumda yedekten geri yükleme yapabilelim.

Öncelikler hangi varlık üzerinde çalışacaksak ; o kayıt için bir çözüm oluşturalım ve alanlar kısmından statuscode değerini seçelim. Oluşturduğumuz bu çözümü dışarıya aktaralım.





Ben burada teklif varlığı için Lost , Canceled ve Revised alanlarını ekleyeceğim . Normalde CRM in default alanı olmasına rağmen bir müşterimizde kaldırılmıştı . Var olan value sunu kullanmak için bu yöntemi kullandık.



Aşağıdaki ekran görüntüsünde görüldüğü üzere Closed durumu için Lost , Canceled ve Revised durum açıklamaları alanımızın değerlerinde bulunmuyor.



Dışarıya aktarılan dosya .zip uzantılı olduğundan bu dosyayı dışarı çıkaralım.



Klasör içerisindeki customization.xml adlı dosyayı herhangi bir XML editörde açalım . Ben burada Visual Studio yu kullanacağım.



Daha sonra Entities tagı altından Entity kısmına gelerek hangi varlık için çalışma yapacaksak o alanı bulalım.Varlığımıza ait bilgilerin olduğu kısmı bulduysak ; attibutes tagının altından statuscode olan yeri bulalım.



Daha sonra aşağıdaki ekran görüntüsündekı gibi seçenekler bilgilerinin yer aldığı kısmı açalım.


Aşağıdaki ekran görüntüsündekı gibi seçeneklerimizin bilgilerini girelim.



Not : Burada hangi Durum için Durum Açıklaması gireceksek bunu state olan kısımda belirtmeliyiz.

Burada value değerini kendimiz verebiliyoruz.CRM üzerinden bu alan açsaydık bu değerleri değiştiremiyoruz veya istediğimiz bir value değeri veremiyoruz.

Değerlerimizi girdikten sonra xml dosyamızı kaydedelim ve programımızı kapatalım.

Bir sonraki adımda geriye dosyalarımıı yükleyeceğimiz için dışarıya çıkarttığımız dosyaları tekrar zip dosyası haline getirmeliyiz.




CRM import yoluyla çözümümüzü CRM e geri yükleyelim.

Yapılan işlemler sonucunda hata alınmazsa işlemimiz başarılı bir şekilde gerçekleşti demektir. Gidip CRM üzerinden kontrol edelim.

Aşağıdaki ekran görüntsünde görüldüğü gibi alanlarımızı başarılı bir şekilde ekledik.




Dynamics CRM in keyfini çıkarın.

Dynamics 365 Outlook - Hata "Sayfanın CRM sunucusundan alınması bekleniyor." (Waiting for a page to be retrieved from a CRM server")



Hata

Microsoft Outlook üzerinden Microsoft Dynamics 365 kullanırken  organizasyonun bilgilerinin bulundugu klasörler üzerine gelinildiğinde ; görünüm de hiçbir veri gelmez ve "Sayfanın CRM sunucusundan alınması bekleniyor."  şeklinde bir uyarı verilir . Beklenildiğinde de hiçbir zman veriler gelmez.

Sebep

Microsoft Outlook Ekim 2017 güvenlik güncelleştirmesi sonucunda , uygulama ile ilgili önemli bir güvenlik açığını gidermek üzere outlook dolaşımı devre dışı bırakır ve bu nedenle eklentinin başarısız olmasına neden olur .

Çözüm

Bu hatanın düzeltilmesi için Regedit ten bir key eklemek gerekiyor.




Aşağıdaki kayıt defteri anahtarı, Microsoft Outlook'un yüklü sürümüne bağlıdır


Microsoft Outlook 2016:
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security] "EnableRoamingFolderHomepages"=dword:00000002 Microsoft Outlook 2013: [HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Security] "EnableRoamingFolderHomepages"=dword:00000002 Microsoft Outlook 2010: [HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Outlook\Security] "EnableRoamingFolderHomepages"=dword:00000002



Daha fazla bilgi için ilgili makaleyi inceleyebilirsiniz.

Dynamics 365 Outlook - Unable to initialize the native configuration support external to the web worker process

Unable to initialize the native configuration support external to the web worker process

Dynamics 365 outlook için 2.1 versiyonuna update ederken yukarıdaki hatayı alıyorsanız,

Hatanın çözümü için aşağıdaki adımlar izlenilmelidir.

inetsrv klasoru kontrol edilmelidir. Burada natived.dll var ı yok mu bakınız. 

C:\Windows\System32\inetsrv




Eğer bu klasörde bulamazsanız Denetim Masasından Windows  Özelliklerini Aç veya Kapat a tıklayalım.



Gelen ekrandan aşağıdaki ekran görüntüsündeki gibi özellikleri seçelim ve Tamam diyelim



Dynamics 365 Outlook - The type initializer for 'Microsoft.Crm.LocatorService' threw an exception. Cannot load Counter Name data because an invalid index '' was read from the registry.


“The type initializer for 'Microsoft.Crm.LocatorService' threw an exception.
Cannot load Counter Name data because an invalid index '' was read from the registry.”



Dynamics 365 outlook için 2.1 versiyonuna update ederken yukarıdaki hatayı alıyorsanız,

Hatanın çözümü için aşağıdaki adımlar izlenilmelidir.

1. Komut satırı yönetici modunda açılır.

2. “lodctr /r”  ibaresi yazılır ve enter a basılır.

Entera bastıktan sonra ‘Info: Successfully rebuilt performance counter setting from system backup store’ mesajı verılır.

3. Devre dışı bırakılmış sağlayıcılar olup olmadığını kontrol edin. Bunun için "lodctr /q" yazıp entera basın.

4. Daha sonr uzun bir liste ekrana gelecektir . Buradan CRM Client aktif mi değil mi kontrol edilir . Eğer devre dışı bırakılmış ise "lodctr /e:CRM Client" ibaresini çalıştırın.

5. Bu işlemler sonrasında Dynamics 365 için Outlook güncellemesini yükleyebilirsiniz.

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


Dynamics 365 v9 - Plugin Registration Tool


Dynamics 365 v9 için forumlar incelendiğinde bu versiyon için sdk çıkmadığını göreceksiniz.

No more monolithic SDK download

Bunun için en son çıkarılan sdk üzerinden  plugin registration tool çalıştırıldığında CRM e baglanmadığını göreceksiniz .

Bunun çözümü olarak ;  nuget üzerinden plugin registration tool indirmek gerekiyor. İlgili exe yi aşağıdaki linki kullanarak indirebilirsiniz.

https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool


Visual studio üzerinden indirme yaptığınızda projenizin packages klasörü altında Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool.9.0.0.7 adında klasör geldiğini göreceksiniz. Bu klasör içeriisndeki tools klasörünün içerisinden PluginRegistration adlı exe yi çalıştıalım.



Bunun haricinde Dynamics 365 v9 versiyonu için diğer toollara da aşağıdaki link üzerinden erişebilirsiniz.

https://docs.microsoft.com/en-ca/dynamics365/customer-engagement/developer/download-tools-nuget