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.
CrmBooleanboolean = new CrmBoolean();
boolean.Value = true;
CrmDateTimedateTime = new CrmDateTime();
dateTime.Value = "20080129 00:00:00";
CrmDecimaldec = new CrmDecimal();
dec.Value = (decimal)5.5;
CrmFloatf = new CrmFloat();
f.Value = (float)5.5;
CrmMoneymoney = new CrmMoney();
money.Value = (decimal)5.00;
CrmNumbernumber = new CrmNumber();
number.Value = 5;
Lookuplookup = new Lookup();
lookup.Value = new Guid("{7649FD8B-D4D2-DB11-90C4-000423CA2056}");
lookup.type = EntityName.account.ToString();
Ownerowner = new Owner();
owner.type = EntityName.systemuser.ToString();
owner.Value = user.UserId;
Picklistlist = new Picklist();
list.Value = 2;
Statusstatus = new Status();
status.Value = 4;
EntityNameReferencereference = new EntityNameReference();
reference.Value = EntityName.account.ToString();
Keykey = 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