Makale Özeti

Çalıştığım firmada, benden geçmişte yaptıkları aktiviteleri CRM üzerine almam için bir talep gelmişti. Bu veriler çok önemliydi ve hata kaybı yaşanmaması gerekiyordu.Biliyordum ki CRM’de aktiviteler : telefon görüşmesi,email, randevular ... gibi tutuluyor.

Makale

Uzun bir aradan sonra tekrar sizlerle kaldığımız yerden devam ediyoruz.Askere gitmeden önce yaptığım çalışmalardan bir tanesini bu makalede size açıklıyor olacağım.

 

Çalıştığım firmada,  benden geçmişte yaptıkları aktiviteleri CRM üzerine almam için bir talep gelmişti. Bu veriler çok önemliydi ve hata kaybı yaşanmaması gerekiyordu.Biliyordum ki CRM’de aktiviteler : telefon görüşmesi,email, randevular ... gibi tutuluyor.

 

Size tavsiyem bu makaleyi okumaya başlamadan önce, önceki makalelerimi veya MSDN de CRM webservisleri hakkında ufak bir inceleme yapmanız.

 

Şimdi de  bu makalenin her satırında yapacaklarımı size açıklayacağım.

 

İlk olarak bir görev nesnesi oluşturalım.

 

task t = new task();

 

Her hangi bir crm nesnesini oluşturduğunuz zaman, oluşturulan nesneye default bir değer atamak zorundasınız.

 

NOT: Oluşturduğunuz görevlere zaman değeri atamanız gerekirse ki bazen gerekiyor “Time Zone” dikkat ediniz.

 

Eğer oluşturduğunuz görev öncelikli bir görev ise aşağıdaki kodu kullanın :

 

t.prioritycode = new PickList();
t.prioritycode.Value = Convert.ToInt32("0");

 

Unutulmaması gereken bir noktada listelerinle crm picklistleri arasında maping oluşturmanız gerekir.

 

NOT: Eğer yaptığınız değişiklikleri güncellemeden atarsanız CRM API’leri size hata vermekten çekinmezler..

Birçok aktivite nesnesi bir konu ister.. Konuları yazarken uzunluklarınıda max. uzunlukta yazmaya dikkat edin. Görev konu karakter limiti Max. 150’dir.

 

t.subject = "Ilk gorevim”;
t.description = "Ilk gorev aciklamam”;

 

Tabii ki görevi geçmiş, şimdi veya gelecek için oluşturabiliriz. Bunun için yapmamız gereken aşağıdaki kod bşoğunu kullanmak:

 

t.scheduledstart = new CrmDateTime();
t.scheduledstart.Value = DateTime.Now.ToString();

 

"scheduledend" özelliğini kullanarak görevide sonlandırabiliriz, ama oluştururken zorunlu olmayan bir durumdur.

 

t.scheduledend = new CrmDateTime();
t.scheduledend.Value = DateTime.Now.ToString();

 

RegardingobjectID değerini görev tanımlarken kullanmanız zorunlu değildir , ancak bir sipariş , teklif ... gibi süreçlerle ilişkilendirmek istediğinde bu değeri kullanırız.

 

Unutulmaması gereken bir diğer hususta bu işlemleri yaparken değerlerin GUID kaydedildiğini unutmamaktır.

 

Şimdi ben RegardingobjectID değeri boş kaydedeceğim.

t.regardingobjectid = new Lookup();
t.regardingobjectid.name =
"Volkan";
t.regardingobjectid.type =
"Nesne Turu";
t.regardingobjectid.Value =
new Guid("");

 

"systemuser" değerini bulmak için aşağıdaki kodu kullanırız :


EntityName.systemuser.ToString();
Convert.ToInt32(EntityName.systemuser).ToString();

 

Şimdi de görevin sahibini kaydedelim :

 

t.ownerid = new Owner();
t.ownerid.name =
"Volkan";
t.ownerid.type =
"Nesne Turu";
t.ownerid.Value =
new Guid("");

 

Bu görevin takip edilmesi için bir de süre tanımlayabiliyoruz.Süre,  Dakika cinsinden veriliyor.

 

t.scheduleddurationminutes = new CrmNumber();
t.scheduleddurationminutes.Value =
45;

 

En önemli kod bloğuna geldik. Bu yazdığımız görevi server da oluşturabilmemiz için CRMService nesnesine ihtiyacımız olacak.

 

CrmService service = new CrmService();
service.Credentials = System.Net.CredentialCache.DefaultCredentials;

 

Sıra geldi bütün bu kod bloklarının işe yaramasına

 

Guid newTaskID = new Guid();

try
{
newTaskID = service.Create(t);
}
catch(System.Web.Services.Protocols.SoapException ex)
{
string strMessage = ex.Detail.InnerText;
}

 

Eğer bir sorun olursa ex.Detail.InnerText içerisinden sorunu öğrenebilir ve müdahale edebiliriz.

 

Peki bu görev tamamlanmış , iptal edilmiş ise ne olacak şimdi bu soruya cevap bulalım :

 

SetStateTaskRequest tr = new SetStateTaskRequest();
tr.EntityId = newTaskID;
tr.TaskState = new TaskState();tr.TaskState = TaskState.Completed (
veya Canceled,Open);
tr.TaskStatus = -1

service.Execute(tr);

 

Makalemizi özetlemek gerekirse CRM de bir görev oluşturduk ve nasıl kapatılacağını gördük.

 

Makaleye dair merak ettikleriniz olursa aşağıda yazan iletişim bilgilerinden bana ulaşıp yardım alabilirsiniz.

Bir sonraki makalede görüşmek üzere...

Volkan KORKMAZ
Microsoft Certified Business Management Solutions Specialist

volkankorkmaz@gmail.com
http://www.volkankorkmaz.net