CRM 4.0 CRM SERVİSİ KULLANARAK KAYDININ ETKİNLİĞİNİ DEĞİŞTİRME

Bazı durumlarda Crm’in kendi aktif ve pasif yapma fonksiyonlarını kullanmak yerine kodla bunu yapmak isteyebiliriz.Örneğin zorunlu alanların sürekli değiştiği bir sistemde kullanıcı eskiden zorunlu olmayan ama daha sonra zorunlu hale getirilen bir alanı pasif yapmadan önce doldurmak zorunda kalabilir.Bu alanlarla ilgili javascriptleri doğru ayarlamak da bir yöntem olabilir.Ancak toolbara isv configden bir button ekleyerekde kendi aktif ve pasif işleminizi yapabilirsiniz.Veya kendi iş akışlarınızda belli senaryolarda bu tarz bir kod kullanmanız gerekebilir.

Contact kaydını kodla pasifleştircek örnek kod aşağıdadır.Contact Kaydını pasifleştirmek için SetStateContactRequest ve SetStateContactResponse mesajlarını kullanabilir.Burada da ContactID mizi isv confige eklediğimiz tuştan gönderildiğini varsaydım.

protected void Page_Load(object sender, EventArgs e)

{

string ContactID = Request.QueryString["oId"].ToString();

CrmService activeService = new CrmService();

activeService.Credentials = System.Net.CredentialCache.DefaultCredentials;

activeService.CrmAuthenticationTokenValue = new CrmAuthenticationToken();

activeService.CrmAuthenticationTokenValue.OrganizationName = “Bilgehan”;

activeService.Timeout = 600 * 36000;

Guid EntityID=new Guid(ContactID);

string message=ChangeEntityStatus(activeService, EntityID, 2);

}

private string ChangeEntityStatus(CrmService service, Guid EntityId, int statuscode)

{

SetStateContactRequest req = new SetStateContactRequest();

req.ContactState = ContactState.Inactive;

req.ContactStatus = statuscode;

req.EntityId = EntityId;

SetStateContactResponse resp=(SetStateContactResponse)service.Execute(req);

return “Bilgehan”;

}

Crm kendi varlıkları içinbu tarz mesajlar mevcuttur.Ancak custom bir varlık için biraz daha değişik işlemler yapmak gerekir.Buradada kullancağımız mesajlar  SetStateDynamicEntityRequest ve SetStateDynamicEntityResponsedur.Crm kendi varlıklarından farklı olarak burada custom entity nin adınıda vermemiz gerekir.Moniker ise yeni bir instance üretmek için işimize yarar.

private static bool ChangeCustomEntityStatus(CrmService service, Guid EntityId, int statuscode, string statecode, string EntityName

)

{

SetStateDynamicEntityRequest req = new SetStateDynamicEntityRequest();

req.State = statecode;

req.Status = statuscode;

req.Entity = new Moniker();

req.Entity.Id = EntityId;

req.Entity.Name = EntityName;

SetStateDynamicEntityResponse resp = (SetStateDynamicEntityResponse)service.Execute(req);

return true;

}

}

Bu yazı CRM kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>