Selamlar;
Crm içerisinde ihtiyac duyabileceğimiz noktalardan biride kayıtların durumunu değiştirmektir.Crm'de mantık hiç bir zaman kayıtların silinmemesi üzerine kuruludur.Gerçekten silmek isteniyorsa pek tabi silinebilir (Aslında bunuda realtime olarak yapmaz her kaydın bir flag'i vardır ve bu flag değerini set eder siz sil dediğinizde..Daha sonra Crm'in asynservice'i ile belli zaman aralıkları ile silmeyi gerçekleştirir.)Kayıtların silinmeden göz önünden kaldırılarak daha sonra tekrar kullanılabilmesi için her entity bazında ilgili kayıt için aktif/deaktif olabilme özelliği bulunmaktadır.
Bu işlemi entity bağımsız dinamik olarak yapabilmek için ;
18 public void DeActivateEnt(Guid entityId)
19 {
20 //Servis üzerinden yapılacak çağrılar için değişkenlerimizi oluşturuyoruz.
21 SetStateDynamicEntityRequest deactivateReq = null;
22 deactivateReq = new SetStateDynamicEntityRequest();
23 deactivateReq.State = "Inactive";
24 //inactive status değeri giriliyor , inactive için 2.
25 deactivateReq.Status = 2;
26 deactivateReq.Entity = new Moniker();
27 deactivateReq.Entity.Name = "account";/*hangi entity bazında bu işlemi yapacağımızı belirtiyoruz.!*/
28 deactivateReq.Entity.Id = entityId;
29 //Deactivasyon çağrısı yapıylıyor..
30 service.Execute(deactivateReq);
31 }
metodunu kullanabiliriz.Utility class'imizin içine yerleştirebiliriz:)EntityName bilgisini parametrik olacak şekilde metodu revize etmenizi öneririm.Requestle ilgili daha detaylı bilgi için CRM SDK'sina bakmanızı öneririm.
Sevgiler.
E2