Makale Özeti

Microsoft Dynamics CRM için program yazarken bilinmesi gereken en temel şey CRM'in her entity(tablo) üzerinde bulunan ve kullanılmakta olan bir attribute(özellik) sınıf mimarisine sahip olduğudur. Bu makalede örnekleriyle bu konu incelenecektir.

Makale

CRM Attribute Tür Sınıfları

Microsoft Dynamics CRM için program yazarken bilinmesi gereken en temel şey CRM'in her entity(tablo) üzerinde bulunan ve kullanılmakta olan bir attribute(özellik) sınıf mimarisine sahip olduğudur. CRM mimarisini kullanarak program yazmak istediğinizde bunları mutlaka kullanmanız gerekmektedir.  Çoğu kişi kullanım konusunda ilk anda hataya düşmektedir. Nedeni ise standart olarak şöyle bir tanımlama yapmaya çalışmalarıdır;

CrmNumber
number = 5;

Fakat bu yanlış bir tanımlama biçimidir. Doğru olan ise;

CrmNumber number = new CrmNumber();
number.Value = 5;


Yani sınıf türetildikten sonra ".Value" kullanılarak değer ataması yapılmalıdır.
Bu noktada çok sık yapılan başka bir yanlışlığa değinmek istiyorum. CRM üzerinde bir veriyi güncellerken doğal güncellemek istediğiniz kaydın ID'sini yani Guid'ini vermeniz gerekmektedir. Sanıyorum sql ile anlatmak daha anlaşılır olacaktır.

update .. set .. xxx = '{7649FD8B-D4D2-DB11-90C4-000423CA2056}'

tarzında bir güncelleme cümlesini servis ile ifade ederken "Key" attribute'unu kullanmamız gerekmektedir.
 
lead _lead = new lead();
......
arada istediğimiz attribute'a yeni değerini atıyoruz.
......
_lead.leadid = new Key();
_lead.leadid.Value = new Guid("{7649FD8B-D4D2-DB11-90C4-000423CA2056}");
.....
Artık Update hangi kayıdı update edeceğini biliyor.
.....
MyService.Update(_lead);

Aşağıdaki tabloda bu sınıfların isimleri verilmiştir.
 

Sınıf Adı Tanım
CrmBoolean boolean.
CrmDateTime date/time.
CrmDecimal decimal.
CrmFloat float.
CrmMoney money.
CrmNumber number ya da integer.
CrmReference Başka bir entity'i referans göstermek için kullanılır. Bu özelliği kullandığınız zaman value ve type atamak zorundasınız.
Customer customer class'ini refere eder. CrmReference classının subclass'ıdır.
EntityNameReference Entity ismi için kullanılır.
Key primary key
Lookup Başka bir entity'i referans gösterir. CrmReference classının subclass'ıdır.
Owner Sahip entitysini referans eder. CrmReference classının subclass'ıdır.
Picklist picklist
Status status
UniqueIdentifier GUID

Aşağıdaki örnek kod bu türlere nasıl değer atayacağınızı göstermektedir. Yanlarındaki değerler öylesine verilmiştir.

CrmBoolean boolean = new CrmBoolean();
boolean.Value =
true;

CrmDateTime
dateTime = new CrmDateTime();
dateTime.Value =
"20080129 00:00:00";

CrmDecimal
dec = new CrmDecimal();
dec.Value = (
decimal)5.5;

CrmFloat
f = new CrmFloat();
f.Value = (
float)5.5;

CrmMoney
money = new CrmMoney();
money.Value = (
decimal)5.00;

CrmNumber
number = new CrmNumber();
number.Value = 5;

Lookup
lookup = new Lookup();
lookup.Value =
new Guid("{7649FD8B-D4D2-DB11-90C4-000423CA2056}");
lookup.type =
EntityName.account.ToString();

Owner
owner = new Owner();
owner.type =
EntityName.systemuser.ToString();
owner.Value = user.UserId;

Picklist
list = new Picklist();
list.Value = 2;

Status
status = new Status();
status.Value = 4;

EntityNameReference
reference = new EntityNameReference();
reference.Value =
EntityName.account.ToString();

Key
key = new Key();
key.Value =
new Guid("{7649FD8B-D4D2-DB11-90C4-000423CA2056}");

Bir makale daha burada biter. Hepiniz hoşçakalın. Web stiemi ziyaret etmeyi unutmayın :-)

Barış KANLICA
Yazılım Uzmanı – Software Specialist
brsk@e-kolay.net
www.cub-e.net