Makale Özeti

Bugünkü makalemizde Microsoft Dynamics Crm 2011 içerisindeki ikinci sorgu şeklini inceleyecegiz. Bir önceki makalemde queryexpression nesnesini kullanarak veri getirmiştik. Şimdi aynı işlemi fetch xml yardımı ile yapmaya çalışacağız.

Makale

Merhaba Arkadaşlar

Bugünkü makalemizde Microsoft Dynamics Crm 2011 içerisindeki ikinci sorgu şeklini inceleyecegiz. Bir önceki makalemde queryexpression nesnesini kullanarak veri getirmiştik. Şimdi aynı işlemi fetch xml yardımı ile yapmaya çalışacağız.

Makalemiz içerisindeki seneryomuz elimizdeki guid değerine göre contact ( ilgili kişi ) entitysindeki ilgili kayıt'ın ad soyad email adres bilgilerini getirmek olsun.

  • Console application projesi açalım .
  • Microsoft Dynamics Crm 2011 e bağlanmak için gerekli olan dll lerimizi uygulamamıza referans edelim.
    "microsoft.xrm.sdk.dll" "Microsoft.Crm.Sdk.Proxy.dll"
  • Uygulamamıza System.Web.Services - System.Runtime.Serialization - System.ServiceModel referanslarınıda ekleyelim.
  • Yukarıdaki işlemleri gerçekleştirdiysek artık ilgili kod blogumuzu yazmaya başlayabiliriz.

Fetch xml kodumuza başlamadan önce Microsoft Dynamics Crm 2011 servisleri ile aramızdaki bağlantıyı sağlayacak olan method umuzu yazalım ve bunu crmmanager sınıfımızın yapıcı method unda çağıralım.

Microsoft Dynamics Crm 2011 servis'ine bağlanmamız için gerekli olan kod blogu aşağıdaki gibidir.

IOrganizationService _service;

ClientCredentials credentials = new ClientCredentials();

credentials.Windows.ClientCredential = new System.Net.NetworkCredential("username", "password",, "domain");p>

Uri organizationUri = new Uri("http://xxxxxx/xxxxxxxxx/XRMServices/2011/Organization.svc");

Uri homeRealmUri = null; OrganizationServiceProxy orgService = new

OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);

_service = (IOrganizationService)orgService;

Yukarıdaki işlemlerimiz ile birlikte crm servis ine baglandık . Şimdi bir method yapalım ve fetch xml sorgumuzu hazırlayıp gönderelim.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Microsoft.Xrm.Sdk;

using System.ServiceModel.Description;

using Microsoft.Xrm.Sdk.Client;

using Microsoft.Xrm.Sdk.Query;

namespace FXml

{

class Program

{

static void Main(string[] args)

{

IOrganizationService _service;

ClientCredentials credentials = new ClientCredentials();

credentials.Windows.ClientCredential = new System.Net.NetworkCredential"username", "password", "domain");/p>

Uri organizationUri = new Uri(("http://xxxxxxxxx/xxxxxxxxx/XRMServices/2011/Organization.svc");/p>

Uri homeRealmUri = null; OrganizationServiceProxy orgService = new

OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null);

_service = (IOrganizationService)orgService;

string FecthXmlSorgu = @"<fetch mapping='logical'>

<entity name='contact'>

<attribute name='firstname' />

<attribute name='lastname' />

<filter type='and'>

<condition attribute='lastname' operator = 'eq' value = 'Atilla' />

</filter>

</entity>

</fetch>";

EntityCollection result = _service.RetrieveMultiple(new FetchExpression(FecthXmlSorgu));

foreach (var c in result.Entities)

{

System.Console.WriteLine(c.Attributes["firstname"]);

System.Console.WriteLine(c.Attributes["lastname"]);

}

Console.ReadLine();

}

}

}

Sorgumuzu çalıştırdığımız zaman contact entity si içerisinde bulunan kayıtlardan soyadı Atilla olan tüm kayıtların ad, soyad değerlerini ekrana getirir.

Ekran Görüntüsü.

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