Orhan AKDOĞAN > Scripts

Dynamics CRM 2011 Grid içerisinden Lync Çağrısı başlatmak

CRM 2011 de Grid içerisinden Lync Çağrısı başlatmak için;
Eğer sisteminizde Lync kurulu ve Browser AddOn ları Enabled ise Sayfa üzerindeki Telefon Numarası yazan metinlerin hemen sağında Lync Çağrısı başlatmak için kullanılan ikon belirir.Fakat bunun bir şartı daha var! Numaranın Lync in tanıyacağı formatta olması.
Lync için doğru format;
– CRM 2011 de Telefon Numarasının “+” karakteri ile başlaması ve boşluksuz rakam ile devam etmesi.
– CRM 2011 de Numara içerisinde en az 1 boşluk veya “-“, ya da telefon numarasının 2 nokta ile ayrılması.

Örnek : +90.538.9410000

 

Benzer Konu:
Dynamics CRM 2011 Form üzerinden Lync Çağrısı yapmak

Dynamics CRM 2011 Form üzerinden Lync Çağrısı yapmak

Dynamics CRM 2011 de Form üzerinde telefon bilgisi içeren bir alanda çift tıklayarak Lync Çağrısı yapabilmek için
Formun OnLoad event ‘ında aşağıdaki functiona telefon alanını parametre geçmeniz yeterlidir.

function LyncCall(TelFieldName) 
{
    var TelField = document.getElementById(TelFieldName); 
    TelField.style.textDecoration = "underline";
    TelField.style.color = "blue";
    TelField.ondblclick = function () { if (TelField.value != null && TelField.value != "") { window.open("tel:" + TelField.value); } };
 }
Benzer Konu :
Dynamics CRM 2011 Grid içerisinden Lync Çağrısı başlatmak

CRM 2011 – Form üzerine Buton eklemek

Microsoft Dynamics CRM 2011 de form üzerine buton eklemek için aşağıdaki JS function ı kullanabilirsiniz.

Aşağıda iki Java Script function bulunuyor. İlki butona tıklandığında çağrılacak olan function. Diğeri ise form üzerine eklediğimiz bir field i Butona dönüştüren function dır.

Buton ‘un Form üzerindeki görüntüsü:

//Functionı çağırmak için kullanacağımız parametre bloğu
'new_FieldName', 'Anket Doldur','100px',ButtonClickFunction,'Button Label'

 

//Buton clickde çağırcağımız function
function ButtonClickFunction()
{
  alert();
}

 

//Form üzerindeki herhangi bir field'ı Butona dönüştürür.
function ConvertToButton(fieldname, buttontext, buttonwidth,clickevent, title)
 {
  if (document.getElementById(fieldname) == null)
 {   return;  }
  functiontocall=clickevent;
  crmForm.all[fieldname].DataValue = buttontext;
  crmForm.all[fieldname].readOnly = true;
  crmForm.all[fieldname].style.borderRight="#3366cc 1px solid";
  crmForm.all[fieldname].style.paddingRight="5px";
  crmForm.all[fieldname].style.borderTop="#3366cc 1px solid";
  crmForm.all[fieldname].style.paddingLeft="5px";
  crmForm.all[fieldname].style.fontSize="11px";
  crmForm.all[fieldname].style.backgroundImage="url(/_imgs/btn_rest.gif)";
  crmForm.all[fieldname].style.borderLeft="#3366cc 1px solid";
  crmForm.all[fieldname].style.width=buttonwidth;
  crmForm.all[fieldname].style.cursor="hand";
  crmForm.all[fieldname].style.lineHeight="18px";
  crmForm.all[fieldname].style.borderBottom="#3366cc 1px solid";
  crmForm.all[fieldname].style.backgroundRepeat="repeat-x";
  crmForm.all[fieldname].style.fontFamily="Tahoma";
  crmForm.all[fieldname].style.height="20px";
  crmForm.all[fieldname].style.backgroundColor="#cee7ff";
  crmForm.all[fieldname].style.textAlign="center";
  crmForm.all[fieldname].style.overflow="hidden";
  crmForm.all[fieldname].attachEvent("onmousedown",push_button);
  crmForm.all[fieldname].attachEvent("onmouseup",release_button);
  crmForm.all[fieldname].attachEvent("onclick",functiontocall);
  crmForm.all[fieldname].style.lineHeight="14px";
  crmForm.all[fieldname+'_c'].style.visibility = 'hidden';
  crmForm.all[fieldname].title=title;
  window.focus();
   function push_button(){
   window.event.srcElement.style.borderWidth="2px";
   window.event.srcElement.style.borderStyle="groove ridge ridge groove";
   window.event.srcElement.style.borderColor="#3366cc #4080f0 #4080f0 #3366cc";
  }
  function release_button(){
   window.event.srcElement.style.border="1px solid #3366cc";
  }
 }

CRM 2011 – “Two Options” Field için Null değer ataması yapmak

Dynamics CRM 2011 de 2 seçenekli bir alan kullanmak istediğinizde varsayılan olarak bu iki değerden birini atamak durumunda kalırsınız.

“Two Options” kullanımında her şartda bir değer seçili olacağından Requirement Levels kulanımıda anlamsız kalacaktır.

Kullanıcılar bu alanın girişini önemsemez, varsayılan bırakabilir buda bu alandaki verilerde tutarsızlık nedeni olabilir.

“Two Options” için Requirement Levels kulanımını anlamlı kılmak ve varsayılan değer atamak zorunda kalmamak için için Javascript ile varsayılan değeri null olarak atayabiliriz.

Two Options veya Radio Button Alanlara varsayılan olarak Null değer atama:

 function setTwoOptionNull(twoOption) {
     var isCreateForm = Xrm.Page.ui.getFormType() == 1;
     var twoOptionField = Xrm.Page.getAttribute(twoOption);
     if (isCreateForm) {
         twoOptionField.setValue(null);
         twoOptionField.setSubmitMode("always");
     }
 }

 

CRM 2011 – Herhangi bir alana değer atamak

CRM 2011 de herhangi bir alana varsayılan değer atamak için aşağıdaki js yi kullanabilirsiniz.
Lookup ve Tarih tiplerin istisna olduğunu, farklı yollar izlendiğini baştan belirteyim.
Lookup için CRM 2011 – Set Lookup Value , Tarih için ise CRM 2011 – Tarih alanı varsayılan olan Bugün yapmak başlıklı yazıları okuyabilirsiniz.

.Js Library içeriği:

function DefaultDeger(fieldName, value)
{
          var CRM_FORM_TYPE_CREATE = "1";
          if (crmForm.FormType==CRM_FORM_TYPE_CREATE)
                {
                   Xrm.Page.getAttribute(fieldName).setValue(value)
                   Xrm.Page.getAttribute(fieldName).setSubmitMode("always");
                }
 }

Örnek Event Handler Seçeneklerimiz ise;
Form
Onload
DefaultDeger
‘new_Ilce’, 100000002

Aşağıda Tablo da tüm tipler için örnek atamalar var:

Field Type Parameters Örnek Value
Single Line of Text ‘fieldname’, ‘value’ Default Text
Option Set ‘fieldname’, value 100000002
Two Options “fieldname”, value true/false -OR- 1/0
Whole Number ‘fieldname’, value 1000
Floating Point Number ‘fieldname’, value 1000
Decimal Number ‘fieldname’, value 1000
Currency ‘fieldname’, value 1000
Multiple Lines of Text ‘fieldname’, ‘value’ Örnek \nDeğer
(‘\n’ enter işlevi görüyor)
Date and Time Farklı yöntem -> CRM 2011 – Tarih alanı varsayılan olan Bugün yapmak
Lookup Farklı yöntem -> CRM 2011 – Set Lookup Value

 

CRM 2011 – Set Lookup Value

Lookup bir alanın değerini yalnızca yeni kayıt onload ında set etmek isterseniz.

.Js Library içeriği:

function SetLookupValue(fieldName, id, name, entityType)
{
if(fieldName != null)
{
var CRM_FORM_TYPE_CREATE = "1";
if (crmForm.FormType==CRM_FORM_TYPE_CREATE)
{

var lookupValue = new Array();
lookupValue[0] = new Object();
lookupValue[0].id = id;
lookupValue[0].name = name;
lookupValue[0].entityType = entityType;
Xrm.Page.getAttribute(fieldName).setValue(lookupValue);
}
}
}

Örnek Event Handler Seçeneklerimiz ise;
Form
Onload
SetLookupValue
‘new_sehirid’, ‘c2735100-72e1-e011-aac7-00155d050c0f’, ‘İzmir’, ‘new_Il’

 

 

CRM 2011 : Toggle Visibility

CRM 2011 de bir nesne’nin değerine göre farklı bir nesne nin görünürlüğünü değiştirmek önemli bir ihtiyaç olabiliyor.
Aşağıda bunun için yazılmış işleri kolaylaştıran bir library bulunuyor.

Daha detaylı şekilde ifade edecek olursak bu library ile
Optionset veya checkbox durumuna göre,
Herhangi bir kontrol ,Section,Tab veya Navigation ‘ın görünürlüğünü değiştirebilirsiniz.

//Form Onload'a Eklenecek olan funtion.
function Toogle()
{
//Tip(control,section,tab,navigtion):Bölüm ; OptionSet Adı; Bölüm Nesnesinin Adı
registerToggle('section', 'new_optionset', 'account information','ornek deger');
//veya aşağıdaki gibi olabilirdi.
//Tip:Bölüm ; Checkbox Adı; Bölüm Nesnesinin Adı
//4.parametre boş ise 1 kabul edilir.
//registerToggle('section', 'new_checkbox', 'account information');

}

Library: Visibility.js

function registerToggle(t, attr, c, v) {
    if (typeof (v) === "undefined" || v === null) {
        var v = 1;
    }
    var ctrl = Xrm.Page.ui.controls.get(attr);
    var a = ctrl.getAttribute();
    var el = document.getElementById(attr);

    // Build Toggle Function
    var f = "var ef=function() { " +
              "var a = Xrm.Page.data.entity.attributes.get(attr); " +
              "a.setValue(!a.getValue()); " +
              "setVisibility('" + t + "','" + attr + "','" + c + "'," + v + ");" +
              " };";

    eval(f);

    // Attach to click event
    el.attachEvent('onclick', ef, false);

    // Set visibility
    setVisibility(t, attr, c, v);
}

function setVisibility(t, attr, c, v) {
    switch (t.toLowerCase().charAt(0)) {
        //tab
        case 't': setTabVisibility(attr, c, v);
            break;
        //section
        case 's': setSectionVisibility(attr, c, v);
            break;
        //control
        case 'c': setControlVisibility(attr, c, v);
            break;
        //navigation
        case 'n': setNavigationVisibility(attr, c, v);
            break;
    }
}

function setNavigationVisibility(attributename, navitemname, value) {
    var attribute = Xrm.Page.data.entity.attributes.get(attributename);
    var navitem = Xrm.Page.ui.navigation.items.get(navitemname);
    if (navitem === null)
    {
        return;
    }
    navitem.setVisible(attribute.getValue() == value);
}

function setTabVisibility(attributename, tabname, value) {
    var attribute = Xrm.Page.data.entity.attributes.get(attributename);
    var tab = Xrm.Page.ui.tabs.get(tabname);
    if (tab === null)
    {
        return;
    }
    tab.setVisible(attribute.getValue() == value);
}

function setSectionVisibility(attributename, sectionname, value) {
    var attribute = Xrm.Page.data.entity.attributes.get(attributename);
    var tabs = Xrm.Page.ui.tabs.get();
    for(var i in tabs) {
        var tab = tabs[i];
        var section = tab.sections.get(sectionname);
        if (section !== null) {
            section.setVisible(attribute.getValue() == value);
            return;
        }
    }
}

function setControlVisibility(attributename, controlname, value) {
    var attribute = Xrm.Page.data.entity.attributes.get(attributename);
    var control = Xrm.Page.ui.controls.get(controlname);
    if (control === null)
    {
        return;
    }
    control.setVisible(attribute.getValue() == value);
}

CRM 2011 – Sık kulanılan Javascript kodları

CRM 2011 için bazı faydalı JS Kodları:

//CRM field deki değeri almak:
var varMyValue = Xrm.Page.getAttribute("new_CRMField").getValue() ;

//CRM field e değer set etmek:
Xrm.Page.getAttribute("new_CRMField").setValue('Yeni Değer');

//Tab/Section Gizlemek - Göstermek:
Xrm.Page.ui.tabs.get(5).setVisible(false);
Xrm.Page.ui.tabs.get(5).setVisible(true);

//Bir CRM Field 'ın onchange event ını çağırmak:
Xrm.Page.getAttribute("new_CRMField").fireOnChange();

//Option Sets in seçili değerini almak:
Xrm.Page.getAttribute("new_CRMField").getSelectedOption().text;

//Requirement Level set etmek:
Xrm.Page.getAttribute("new_CRMField").setRequiredLevel("none");
Xrm.Page.getAttribute("new_CRMField").setRequiredLevel("required");
Xrm.Page.getAttribute("new_CRMField").setRequiredLevel("recommended");

//Alanı focus kılmak:
Xrm.Page.getControl("new_CRMField").setFocus(true);

//Kaydet eventını durdurmak:
event.returnValue = false;

//Kullanıcının Güvenlik Rolü GUID değerlerini dizi olarak döndürür.
Xrm.Page.context.getUserRoles()

//Tab veya Section Gizleme/Gösterme:
function setVisibleTabSection(tabname, sectionname, show) {
var tab = Xrm.Page.ui.tabs.get(tabname);
if (tab != null) {
if (sectionname == null)
tab.setVisible(show);
else {
var section = tab.sections.get(sectionname);
if (section != null) {
section.setVisible(show);
if (show)
tab.setVisible(show);
}
}
}
}

//Option'a göre bir alanı gizlemek veya göstermek:
function FieldVisible()
{
var Option = Xrm.Page.getAttribute("new_CRMField").getSelectedOption().text;
if (Option == "Option_xyz")
{
Xrm.Page.getControl("new_CRMField").setVisible(true);
}
else
{
Xrm.Page.getControl("new_CRMField").setVisible(false);
}
}