Dynamics 365 - Hızlı Oluştur Formu Tarayıcıda Açılamama

Quick Create Form not working in Chrome




Tarayıcı olarak Google Chrome kullanıyorsak , hızlı oluştur formu  bazen takılıyor ve formdaki alanlar görünmeyebiliyor. Aslında form yükleniyor ama sayfanın yüksekliği 0 olarak set edildiğinden formdaki alanlar görünmüyor.



Uygun bir düzeltme yayımlanana kadar bu sorunu çözmek için 2 yaklaşımım var, ancak ikisi de desteklenen bir değişiklik olmayacak.

Her iki çözüm de, DOM'yi değiştirmek ve iFrame'in yüksekliğini ayarlamak için aynı JavaScript'i kullanır.

Yöntemlerden biri ,aşağıdaki script metodunu hızlı oluştur formunun onload ında çağırmaktır.Bu şekilde açılan frame in yüksekliğini verebiliyoruz.

function chromeQuickCreateFix() {

    var isChrome = true;
    var chrome = navigator.userAgent.indexOf('Chrome') > -1;
    var explorer = navigator.userAgent.indexOf('MSIE') > -1;
    var firefox = navigator.userAgent.indexOf('Firefox') > -1;
    var safari = navigator.userAgent.indexOf("Safari") > -1;
    var camino = navigator.userAgent.indexOf("Camino") > -1;
    var opera = navigator.userAgent.toLowerCase().indexOf("op") > -1;
    if ((chrome) && (safari)) safari = false;
    if ((chrome) && (opera)) isChrome = false;

    if (isChrome) {
        if (window.top.document.getElementsByClassName("mscrm-globalqc-iframe")[0].style.height == "0px") {
            window.top.document.getElementsByClassName("mscrm-globalqc-iframe")[0].style.height = "300px";
        }
    }
}

Dynamics 365 Javascript - Arama Alanına Filtre Ekleme (Add Pre-Search Filters For Lookup)

Çoğu zaman, doğada dinamik olan bazı diğer değer / koşullara dayanarak arama için arama sonuçlarını filtrelememiz gereken bir durumla karşı karşıyayız.

Örneğin, bir fırsat üzerinde "Birincil Satış Temsilcisi"  adında arama alanı olsun . Daha sonra bu alanda yalnızca Satış Ekibinin bir parçası olarak bulunan üyeleri göstermek için “Birincil Satış Temsilcisi” aramasına filtre ekleyebiliriz.

CRM 2013 ile birlikte gelen bu özellik sayesinde  bu filtreler OnLoad () olayında javascript web kaynağına dinamik olarak eklenebilir.

Bu özelik sayesinde birden fazla varlık seçilen alanlar için aşağıdaki gibi filtreleme eklenebilir.

Örneğin , Randevu formunda Katılımcıların girildiği alanda sadece İlgili Kişi kayıtlarının gelmesin istiyorsak aşağıdaki gibi alana filtreleme ekleyebiliriz.









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>'