Dynamics 365 - İş Süreci Akışları için Güvenlik Rollerini Yapılandırma

(Configuring Security Roles for Business Process Flows)


Bazen belirli kullanıcıların Dynamics CRM 'de belirli İş Süreci Akışını görmesini veya kullanmasını kısıtlamanız gerekebilecek durumlar olabilir. Bu işlem eski versiyonlarda oldukça basit bir süreçti ama Dynamics 365 te bu işlem için konulan buton ile bu işlemler yapılamıyor.

İş süreci akışımızı seçmeye başlıyoruz. Ayarlar> Özelleştirmeler> Sistemi Özelleştir> İşlemler.



Formun üst kısmındaki "Güvenlik Rollerini Etkinleştir" adı verilen düğmeyi göreceksiniz  ama işin zor kısmı geliyor! Dynamics 365'de bu butona tıkladığınızda aşağıdaki gibi bir sayfa geliyor.



 Seçilen rolleri onaylamak için herhangi bir düğmemiz yok, bu yüzden çoğunlukla X'e basıyoruz, sonunda iş süreci akışındaki değişiklikleri kaydet ve Tüm Özelleştirmeleri Yayınla gibi  hiçbir şey bulunmuyor.
Bunun yanısıra X düğmesine bastığımızda sistemdeki güvenlik rolünü siliyor!

Aslında Güvenlik rollerini Etkinleştir butonuna bastığımızda aşağıdaki ekran görüntüsündeki gibi bir pencere açılmalı ve burada rolleri seçtikten sonra Tamam butonuna tıklamamız lazım.



Dynamicss 365 te bu ekrana aşağıdaki gibi ulaşabiliriz

Bu ekrana ulaşacak linki kendimiz üretmemiz gerekiyor. Bunun için iş süreci akışımızın sistemdeki guid degerine ihtiyacımız olacak. Bu degeri de en basit olarak iş akışı süreci formunun lnkinden alabbiliriz.


https://xxxxx.crm4.dynamics.com/tools/dialogs/RoleAssignment.aspx?dType=1&oid=%7b<bu alana iş akışının guid degeri gelecek>%7d

Örnek Link

https://gkhnmnts.crm4.dynamics.com/tools/dialogs/RoleAssignment.aspx?dType=1&oid=%7b9F1EFD63-8660-4D80-B8CE-600CC40C6FF0%7d

Daha sonra oluşturduğumuz bu linki tarayıcımızda açtığımızda iş süreci akışı için güvenlik rolü seçebileceğimiz sayfa açılacaktır.


Açılan sayfa üzerinde oluşturduğumuz iş akışı sürecini hangi roller için etkinleştireceğimizi seçip Tamam butonuna tıklıyoruz.

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