Makale Özeti

Bu yazımda ise ms crm 4.0 özelleştirme olayını anlatacağım, kendi içinde ; ana ekranın, sol alt köşesinde bulunan Settings (ayarlar)bölümünden, customazition(özelleştirmeler) ekranı ile gerçekleştiriliyor.

Makale

CUSTOMIZATION

Dynamics CRM tek satır kod yazmadan özeleştirebileceğimizi daha önceki yazımda yazmıştım( buradan bakabilirisiniz). Bu yazımda ise ms crm 4.0 özelleştirme olayını anlatacağım, kendi içinde ; ana ekranın, sol alt köşesinde bulunan Settings (ayarlar)bölümünden, customazition(özelleştirmeler) ekranı ile gerçekleştiriliyor.


Özelleştirilecek tüm varlıklara, “Customize Entities” sekmesinden ulaşıyoruz. Bunu açtıktan sonra özelleştirme yapacağımız varlığı seçip, özelleştirmeye başlayabiliriz. Karşımıza gelen varlık ekranında; yine sol tarafta, aşağıdaki bölüm belirecektir. Daha sonra

 Account entity’sini (Firma varlığı) seçiyorum.




Burdan “Form and Views” sekmesiyle form ve görünümleri özelleştirebiliriz. “Attributes” sekmesiyle form üzerinde bulunan attributeleri düzenleyebilir veya yenilerini oluşturabiliriz. Diğer sekmelerle ise, üzerinde çalıştığımız varlığın ilişkilerini düzenleyebilir,yenilerini oluşturabiliriz. Varlığın içeriğini düzeltmek için “Form and Views” sekmesini tıklayalım.



Görmüş olduğunuz bu ekran form ekranıdır.Müşterinin tüm bilgilerinin kaydolduğu yerdir.Bilgilere kolay ulaşmayı sağlamak ve karışıklığı önlemek için bilgiler “ General,Details,Administration,Notes” gibi farklı tablar altındaki farklı başlıklar altında düzenlenir. Bu ekran üzerinden yeni tablar oluşturabiliriz.Yerlerini kullanım kolaylığına göre sıralayabiliriz.Forma arka planda mevcut olan alanlardan yeni alanlar ekleyebiliriz.Kullanılmayacak alanları silebiliriz.Bu işlemlerin hepsini sağ taraf da bulunan Common Task bölümünü kullanarak gerçekleştirebiliriz.


Common Task bölümü

Bu alandaki yeşil oklar tabların ve attiributelerin yerlerini değiştirmeye yarar Add a Tab : Yeni bir tab oluşturup onu forma ekleyebiliriz. Add a Section:Yeni başlıklar oluşturup daha kullanışlı bir form için onları kullanabiliriz. Add Fields:Mevcutta var olan veya oluşturulmuş yeni attiributler ekleyebiliriz.Burda istediğimiz alanı tab ve section daki gibi drekt oluşturamayız.




Yeni bir attribute(özellik) oluşturma işlemi:Üzerinde çalıştığımız varlığa istediğimiz alanları buradan ekliye bilir ve varolan bazı özellikleri buradan değiştirebiliriz. ilk ekranında,”Form and Views “sekmesinin altında ki Attiribute sekmesinden gerçekleşir.
Attirubute ekranında “New” sekmesiyle yeni bir attiribute ekranı açılır.
Bu yeni attiribute ekranında “Display Name,Name” e istenilen ad girilir. Requirement Level:Açtığımız attiributenin zorunlu alan, olup olmamasını burdan seçiyoruz.
Searchable: Burda açtığımız attiributenin aranabilirliğini şeçmeye yarar.Aranabilirliğe Evet dediğimizde ,yapılan aramalarda bu attiribute ulaşabiliriz. Type:Bu alanda oluşturduğumuz attiribute girilecek değerin cinsi belirlenir.
nvarchar:Düz yazı biçimidir.Type de bu seçildiğinde ,Fortmat alanında düz yazınızın formatı istenir. Maksimum uzunluğu belirlenir.IME Mode durumu belirtiriz.

Type alanında ki picklistten nvarchar gibi farklı değerler de seçebiliriz.tabi bu type da nvarchar yazarken format picklistinde beliren özelliklerinden,gerekli olan seçilebilinir. Son iş olarak kayıt edip kapatabiliriz.



Ve daha sonra add Fields(Alan ekleme) özeliğine tıklayıp özelleştirmiş olduğumuz veya var olan bir özelliği ekleyebiliriz.


Bu ekranda istediğimiz alanları seçtikten sonra ok diyoruz ve istediğimiz alanları ekliyoruz. Gerekli yerleri ekledikten sonra publish edip kapatıyoruz.

Javascript Kodlarıyla crm form larında küçük özelleştirmeler yapacağımızı yukarıda kısaca bahsetmiştim. Şimdi ise form içerisine nasıl JavaScript yazabiliriz, basit örneklerle anlatacağım. Öncelikle Ms crm 4.0 ayarlar (settings) kısmına tıklayarak özelleştirmek istediğim varlığı seçiyorum. Daha sonra özelleştir(customization) linkine tıklıyorum ve özelleştirmek istediğimi varlığı(entity) seçiyorum . son olarak altaki resimde gördüğünüz gibi form özelliğine tıklıyorum ve özelleştirmek istediğim formu getiriyorum.


 

Şimdi ise normal özelleştirme standartların biraz dışına çıkarak normalde desteklenmeyen fakat developerların ve kullanıcıların ihtiyaçları doğrultusunda kullanıcılar için esnek özellikleri ve ekranları hazırlayabiliriz. Özellikle bu ekranları hazırlarken komplike kod blokları yazmaya gerek kalmadan işimizi javascript kodlarıyla halledebileceğimizi göreceğiz. Form üzerinde üç farklı olay(event) için JavaScript yazabiliriz bu olaylar onLoad(yüklendiğinde),onSave(kaydedildiğinde),onChange(değiştiğinde). Öncelikle bu olayları birlikte inceleyelim ve daha sonra form içinde nerelere kod yazacağımızı göreceğiz.

onLoad: Form açıldığında çalışacak olan JavaScript Kodunu bu olaya yazarız. onSave: Form kaydedildiğinde çalışacak olan JavaScript Kodunu bu olaya yazarız. onLoad ve onSave için Form Properties butonuna tıklanarak açılan ekrandan seçili event için Edit denir.

Önce onLoad için penceremizi açalım ve ilk örneğimize başlayalım. İlk örneğimiz sayfa ilk yüklendiğinde crm formunda ok/cansel şeklinde Message Box’lar oluşturmak olsun.



var cevap = window.confirm("işleme devam etmek için tamam(OK) basın,işlemi iptal etmek için iptale(Cansel) basın.");
if (cevap) {
//kullanıcı tamama basarsa kodu burada işleyecektir.
} else {
//kullanıcı iptale basarsa kodu burada işleyecektir.
}

Bu ekranda olay etkindir seçeneğini işaretlemediğimiz zaman yazdığımız scriptleri çalıştırmayacaktır bu yüzden bu seçeneği unutmamalıyız. Daha sonra Form Properties penceresini de kapatalım. Üst menüden Preview>Create Form seçeneği ile form test penceresini açarak test edelim.

Bu örneği formun onSave olayı içinde uygulaya biliriz. onChange: alanlar (Field) üzerinde işlem yapıldığında çalışacak olan JavaScript Kodunu bu olaya yazarız. onChange için alan (Field) üzerine çift tıklanır.

Açılan pencerede Events tabında Edit ‘e tıklarız. onChange için ilk örneğimize başlayalım bu örneğimiz telefon(mask) formatı olsun. Yeni başlayanlar için biraz uzun bir örnek olabilir fakat bazı projelerde kullandığım için sizlerle paylaşmak istedim. Ayrıca mevcut alanlar ve sonradan eklenen (custom) alanlarıda nasıl kullanacağımızı gelecek dersde göreceğiz.

 

var objField = crmForm.all.telephone1;//telefon alanımızın alan ismini objfield değişkenine atıyorum
var sText=objField;
try {
if (objField.DataValue == null)//telefon alanımın text’i yani içindeki değer boş ise geri dönüyorum
return true;
var str = objField.DataValue;
// bosluklari kaldir str = str.replace(/ /g, "");
// eger ilk karakter + ise geri kalanlar için numerik kontrolü yap
if (str.charAt(0) == '+') {
if (!IsNumeric(str.substr(1)))
{ // Hata alert("Please use only numeric charecters at this field.");
objField.DataValue ="";
return false;
}
str = str.substr(0, 1) +' ' + str.substr(1, 2) + '( ' + str.substr(3, 3) + ') ' + str.substr(6, 3) + ' ' + str.substr(9, 2) + ' ' + str.substr(11, 2);
}
else {
// bosluklar silindikten sonra numerik kontrolü yap
if (!IsNumeric(str.substr(1))) {
// Hata
//alert("Please use only numeric charecters at this field.");
objField.DataValue ="";
return false;
}
else {
// 10 veya 11 karakterse uygun formata sok
if (str.length == 10 || (str.length == 11 && str.charAt(0) == '0')) {
// Formata sok
if (str.length == 10) {
str = "0" + str;
}
str = str.substr(0, 1) + '( ' + str.substr(1, 3) + ') ' + str.substr(4, 3) + ' ' + str.substr(7, 2) + ' ' + str.substr(9, 2);
}
else // 10 veya 11 karakter degilse hata mesaji ver
{
// Hata alert("Please for domestic phone numbers use only '0 212 444 05 35' or '212 444 05 35' format at this field. for Overseas phone numbers put a '+' sign at the beginnig of Number.");
objField.DataValue ="";
return false;
}
}
} objField.DataValue = str;
}
catch (err) {
txt = "(initialize) There was an error on this function.\n\n";
txt += "Click OK to continue.\n\n";
alert(txt);
}
function IsNumeric(sText)
{
var ValidChars = "0123456789";
var Char;
for (i = 0; i < sText.length; i++) {
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1) {
txt = " Please enter only numeric charecters at this field. \n\n";
txt += "Click OK to continue.\n\n";
objField.DataValue ="";
alert(txt);
return false;
}
}
return true;
}
Üst menüden Preview>Create Form seçeneği ile form test penceresini açarak test edelim.

Son olarak save and close tuşuna basıp kaydedip kapatıktan sonra form’un üst tarafında bulunan publish buttonuna basarak özelleştirmiş olduğumuz özellikleri yayımlarız. Crm form larında javascript le ilgili örnek kodlar yazmaya diğer makalelerimde devam edeceğim görüşmek dileğiyle....

 

 Ercan Top | CRM Software Developer

 ercan.top@crmakademi.net

 +90 534 335 6873