Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


Microsoft CRM Gadget

Yazar: Volkan KORKMAZ

Kategori: Microsoft Dynamics CRM

Eklenme Tarihi: 08.02.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

Yazar Hakkında Yorum Yok Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.