Microsoft CRM Gadget

Yazar: Volkan KORKMAZ
Kategori: Microsoft Dynamics CRM
Eklenme Tarihi: 8.2.2009 11:56:56



Bu makalemizde Microsoft Windows Vista ile hayatımıza hızlı bir giriş yapan Gadget'ı kullanarak Microsoft Dynamics CRM için Account ( Firmalar) ve Contacts ( İlgili Kişileri ) listeleyebileceğimiz bir Gadget hazırlayacağız.

Bu makalemizde Microsoft Windows Vista ile hayatımıza hızlı bir giriş yapan Gadget'ı kullanarak Microsoft Dynamics CRM için Account ( Firmalar) ve Contacts ( İlgili Kişileri ) listeleyebileceğimiz bir Gadget hazırlayacağız.

Öncelikle Gadget'imizin yer alacağı dizine gidelim. Bunun için çalıştır'a aşağıdaki
dosya yolunu yazıp boş bir klasör oluşturalım.

%userprofile%\AppData\Local\Microsoft\Windows Sidebar\Gadgets

Biz Gadget'imizi hazırlayıp çalıştırdığımızda bu klasörün altına gidip baktığımızda orda olduğunu göreceğiz J

Gadget'i oluşturmak için en kolay yöntem'i uygulayacağız. Bunun için bir xml ve
iki html dosyası yeterli olacaktır. Öncelikle xml dosyamızı oluşturalım. Xml dosyasının
ismi gadget.xml olmak zorundadır. Windows Sidebar buna göre neyi yükleyeceğini bilmektedir.

Ama unutulmaması gereken bir nokta : Gadget'in yüklü olduğu kullanıcının MS CRM'de tanımlı olması gerekmektedir. Aksi takdirde Gadget hiç bir işinize yaramaz.

Eğer dediklerimi uygularsanız sizinde aşağıdaki gibi Gadget'iniz dolu dolu gözükecektir J

Hadi Başlayalım :

İlk olarak temelimizi oluşturacak index.html dosyamızı hazırlayacağız. Burada javascript'in yeteneklerini konuşturacağız. Bunun için azcık google yardımı alıyoruz J

Index.html

// Javascript kullanarak Accounts ve Contacts için Tab'lar oluşturuyoruz.

<script type="text/javascript">

var stl=""

var bChecked=false

function handlelink(aobject)

{

stl=aobject.href

bChecked=(document.tabcontrol && document.tabcontrol.tabcheck.checked)? true : false

if (document.getElementById && !bChecked)

{

var theTab=document.getElementById("tablist")

var theTablinks=theTab.getElementsByTagName("A")

for (i=0; i<theTablinks.length; i++)

theTablinks[i].className=""

aobject.className="current"

document.getElementById("tabiframe").src=stl

return false

}

else

return true

}

</script>

Microsoft Dynamica CRM çok güçlü bir web servis API altyapısına sahip. Biz de bu sayede istediğimiz sorguları çekebiliyoruz. Çektiğim sorguları daha sonrasında parse edip istediğim sonuçları görüntüleyebiliyorum.

Accounts.html

// Bu sayfa sayesinde sistemde bize ait account'ları görüntüleyeceğiz

// Aşağıdaki url'yi sisteminizdeki ile değiştirmeyi unutmayın

var serverUrl = "http://danubecrm:5555/mscrmservices/2006";

// 'Microsoft.XMLHTTP' active object nesnesi MS CRM ile iletişimimizi sağlıyor

var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.open("POST", serverUrl + "/crmservice.asmx", false);

xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8")

xmlhttp.setRequestHeader("SOAPAction",

"http://schemas.microsoft.com/crm/2006/WebServices/RetrieveMultiple")

xmlhttp.send("<?xml version='1.0' encoding='utf-8'?>"+"\n\n"+"<soap:Envelope"+

' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'+

' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'+

' xmlns:xsd="http://www.w3.org/2001/XMLSchema">'+

' <soap:Body>' +

' <query xmlns:q1=http://schemas.microsoft.com/crm/2006/Query

' xsi:type="q1:QueryExpression" xmlns="http://schemas.microsoft.com/crm/2006/WebServices">'+

' <q1:EntityName>account</q1:EntityName>' +

' <q1:ColumnSet xsi:type="q1:ColumnSet">' +

' <q1:Attributes>' +

' <q1:Attribute>accountid</q1:Attribute>' +

' <q1:Attribute>name</q1:Attribute>' +

' </q1:Attributes>' +

' </q1:ColumnSet>' +

' <q1:Distinct>false</q1:Distinct>' +

' </query>'+

' </soap:Body>'+

' </soap:Envelope>')

// Bir sonraki adımda bize geri dönen XML formatını sayfamızda görüntelenecek formata uygun hale getiriyoruz

var result = xmlhttp.responseXML.xml;

var BEs= result.split("<BusinessEntities>");

var BE = BEs[1].split("<BusinessEntity");

for (i = 0; i < BE.length; i++)

{

firstname = BE[i].indexOf("<name>")+6;

secondname = BE[i].indexOf("</name>");

firstid = BE[i].indexOf("<accountid>")+11;

secondid = BE[i].indexOf("</accountid>");

if (BE[i].substring(firstid,secondid).length > 0 )

{

// The URL below must also be changed to the users MSACRM server URL

document.writeln("<a href=\"http://danubecrm:5555/sfa/accts/edit.aspx?id=" +

BE[i].substring(firstid,secondid) + "\" target=\"new\"><font size=\"2px\"" +

"name=\"verdana\">" + BE[i].substring(firstname,secondname) + "</font></a><BR>");

}

}

//En sonunda da sayfamızda bunu çağırmaya sıra geldi

<body bgcolor="#eff3f7">

<script language="JavaScript" type="text/javascript">

AccessCRMWebServices() ;

</script>

</body>

Bu sayfa gibi Contacts sayfazmıızıda hazırlıyoruz. Aşağıdaki ekranda da Gadget'imizin kullanımını görüyoruz.



Bir makalemizin daha sonuna geldik.

Gadget'imizi aşağıdaki adresten indirebilirsiniz :

MSCRM Gadget

Başka bir makalemde tekrar görüşmek dileğiyle...

Volkan KORKMAZ
Microsoft Certified Business Management Solutions Specialist
volkankorkmaz@gmail.com
http://www.volkankorkmaz.net


Volkan KORKMAZ

Bilgisayar mühendisliği mezunu olan, Volkan KORKMAZ 2004'den beri sektörde birçok projede yazılımcı ve danışman olarak görev almıştır. Özellikle Microsoft Dynamics ,MOSS ve Web projeleri alanlarında yapılan entegrasyonlar üzerine uzmanlaşmıştır.

Diğer uzmanlık alanları içinde HP ServiceDesk ve ERP(logo, netsis) programları bulunmaktadır. MCSD.NET ve Microsoft Certified Business Management Solutions Specialist sertifikalarına sahiptir.

Şu an sektöründe lider bir yazılım firmasında yazılım geliştirme müdürü olarak çalışmaktadır. Ayrıca kurumsal ve bireysel olarak eğitim vermektedir.
Bu makaleye ilk yorum yapan siz olun.

Yorumunuz