Microsoft Dynamics CRM - Web Hizmetleri
Microsoft Dynamics CRM, CRM'ye harici bir uygulamadan erişmek ve CRM'de oluşturma, silme, güncelleme ve bulma gibi yaygın iş verileri işlemlerini gerçekleştirmek için web yöntemlerini çağırmak için kullanılan iki önemli web hizmeti sağlar.
Aşağıdaki senaryoları düşünün -
CRM ile konuşmanız gereken harici bir .NET uygulamanız var. Örneğin, harici uygulamanıza yeni bir müşteri kaydedildiğinde CRM'ye bir Kişi kaydı eklemek isteyebilirsiniz.
Ya da belki CRM'de kayıtları aramak ve arama sonuçlarını harici uygulamanızda görüntülemek istiyorsunuz.
Bu tür senaryolarda, CRM tarafından sunulan web hizmetlerini uygulamanızda kullanmak ve CRM'de oluşturma, silme, güncelleme ve bulma işlemleri gerçekleştirmek için kullanabilirsiniz.
IDiscoveryService Web Hizmeti
Bu web hizmeti, belirtilen kullanıcının ait olduğu kuruluşların bir listesini ve kuruluşların her biri için URL uç noktasını döndürür.
IOrganizationService Web Hizmeti
Bu web hizmeti, CRM'deki verilere ve meta verilere erişmek için kullanılan birincil web hizmetidir. IOrganizationService iki önemli derleme kullanır -Microsoft.Xrm.Sdk.dll ve Microsoft.Crm.Sdk.Proxy.dll. Bu derlemeler, CRM SDK paketinde bulunabilir.Bin Klasör.
Microsoft.Xrm.Sdk.dll
Bu derleme, Microsoft Dynamics CRM ile bağlantıyı daha basit hale getirmek için proxy sınıfları, kimlik doğrulama yöntemleri ve hizmet sözleşmeleri dahil olmak üzere temel xRM yöntemlerini ve türlerini tanımlar.
Microsoft.Crm.Sdk.Proxy.dll
Bu derleme, temel olmayan mesajlar için istekleri ve yanıtları ve kuruluş verileriyle çalışmak için gereken numaralandırmaları tanımlar. Bu iki derlemenin desteklediği ad alanları aşağıdadır.
Bu derlemelerin her biri, herhangi bir varlıkta depolanan verilerle çalışmak için kullanılacak belirli mesajları destekler. Destekledikleri mesajların tam listesi aşağıdaki bağlantılarda bulunabilir -
Supported xRM Messages - https://msdn.microsoft.com/en-us/library/gg334698.aspx
Supported CRM Messages - https://msdn.microsoft.com/en-us/library/gg309482.aspx
IOrganizationService Web Hizmeti Yöntemleri
IOrganizationService sistem ve özel varlıklar üzerindeki tüm ortak işlemleri ve organizasyon meta verilerini gerçekleştirmenize olanak tanıyan sekiz yöntem sağlar.
Sr.No | Yöntem ve Açıklama |
---|---|
1 | IOrganizationService.Create Bir kayıt oluşturur. |
2 | IOrganizationService.Update Mevcut bir kaydı günceller. |
3 | IOrganizationService. Retrieve Bir kaydı alır. |
4 | IOrganizationService. RetrieveMultiple Bir kayıt koleksiyonunu alır. |
5 | IOrganizationService. Delete Bir kaydı siler. |
6 | IOrganizationService. Associate Kayıtlar arasında bir bağlantı oluşturur. |
7 | IOrganizationService.Disassociate Kayıtlar arasındaki bir bağlantıyı siler. |
8 | IOrganizationService.Execute Ortak kayıt işlemenin yanı sıra vaka çözümlemesi, yinelenen öğe tespiti vb. Gibi özel işlemler için kullanılır. |
Web Servis Örneği
Web hizmetlerinin CRM'de nasıl çalıştığını anlamak için CRM SDK tarafından sağlanan bir örneğe bakacağız. Bu örnekte, yeni bir Hesap kaydı oluşturacağız, güncelleyeceğiz ve ardından CRM'yi kullanarak son olarak sileceğiz.IOrganizationService internet servisi.
Step 1- CRM SDK'yı çıkardığınız klasörü açın. Şimdi aşağıdaki konuma göz atarak QuickStartCS.sln çözümünü açın: SDK \ SampleCode \ CS \ QuickStart
Step 2 - Keşfedeceğiz QuickStart ile Simplified Connectionproje. Açıkapp.configbu projede. Varsayılan olarak,connectionStrings Bu dosyadaki bölüm yorumlanacak.
Bundan, ilk bağlantı dizesi anahtarının açıklamasını kaldırın ve aşağıdaki üç ayrıntıyı düzenleyin -
Url- CRM örneğinizin URL'sini belirtin. Bizim durumumuzda, CRM'nin çevrimiçi sürümünü kullandığımız için, bu URL'yi belirtmeniz gerekecektir.
Username - CRM Online kullanıcı adınız.
Password - CRM Online şifreniz.
Step 3 - Aç SimplifiedConnection.cs Bu projedeki dosya ve içindeki Runmethod.
public void Run(StringconnectionString, boolpromptforDelete) {
try {
// Establish a connection to the organization web service using CrmConnection.
Microsoft.Xrm.Client.CrmConnection connection =
CrmConnection.Parse(connectionString);
// Obtain an organization service proxy.
// The using statement assures that the service proxy will be properly disposed.
using(_orgService = new OrganizationService(connection)) {
//Create any entity records this sample requires.
CreateRequiredRecords();
// Obtain information about the logged on user from the web service.
Guid userid = ((WhoAmIResponse)_orgService.Execute(new WhoAmIRequest())).UserId;
SystemUser systemUser = (SystemUser)_orgService.Retrieve("systemuser",userid,
new ColumnSet(newstring[]{"firstname","lastname"}));
Console.WriteLine("Logged on user is {0} {1}.",
systemUser.FirstName,systemUser.LastName);
// Retrieve the version of Microsoft Dynamics CRM.
RetrieveVersionRequest versionRequest = new RetrieveVersionRequest();
RetrieveVersionResponse versionResponse =
(RetrieveVersionResponse)_orgService.Execute(versionRequest);
Console.WriteLine("Microsoft Dynamics CRM version {0}.",
versionResponse.Version);
// Instantiate an account object. Note the use of option set
enumerations defined in OptionSets.cs.
// Refer to the Entity Metadata topic in the SDK documentation to
determine which attributes must
// be set for each entity.
Account account = new Account{Name = "Fourth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
(int)AccountAccountCateg oryCode.PreferredCustomer);
account.CustomerTypeCode = new OptionSetValue(
(int)AccountCustomerTypeCod e.Investor);
// Create an account record named Fourth Coffee.
_accountId = _orgService.Create(account);
Console.Write("{0} {1} created, ",account.LogicalName,account.Name);
// Retrieve the several attributes from the new account.
ColumnSet cols = new ColumnSet(
new String[]{"name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
(Account)_orgService.Retrieve("account", _accountId, cols);
Console.Write("retrieved, ");
// Update the postal code attribute.
retrievedAccount.Address1_PostalCode = "98052";
// The address 2 postal code was set accidentally, so set it to null.
retrievedAccount.Address2_PostalCode = null;
// Shows use of a Money value.
retrievedAccount.Revenue = new Money(5000000);
// Shows use of a Boolean value.
retrievedAccount.CreditOnHold = false;
// Update the account record.
_orgService.Update(retrievedAccount);
Console.WriteLine("and updated.");
// Delete any entity records this sample created.
DeleteRequiredRecords(promptforDelete);
}
}
// Catch any service fault exceptions that Microsoft Dynamics CRM throws.
catch(FaultException<microsoft.xrm.sdk.organizationservicefault>) {
// You can handle an exception here or pass it back to the calling method.
throw;
}
}
Step 4- Bu yöntem temel olarak CRM web hizmetlerini kullanan tüm CRUD işlemlerini gösterir. Kod önce bir organizasyon örneği oluşturur, ardından bir Hesap kaydı oluşturur, oluşturulan kaydı günceller ve son olarak onu siler. Bu kodun önemli bileşenlerine bakalım. Bu kod çalıştığında CRM'deki hareket halindeki değişiklikleri görmek için, bu kodu adım adım (aşağıda tartışacağımız gibi) ayıklayabilir ve aynı anda CRM'deki değişiklikleri görebilirsiniz.
Step 4.1 - içinde değiştirdiğimiz bağlantı dizesini kullanarak kuruluşla bağlantıyı kurar Step 2.
Microsoft.Xrm.Client.CrmConnection connection = CrmConnection.Parse(connectionString);
Step 4.2 - CRM organizasyon web hizmetinin proxy örneğini alır.
_orgService = new OrganizationService(connection)
Step 4.3 - Yeni bir Hesap varlık nesnesi oluşturur ve Adını, HesapKategoriKodunu ve MüşteriTipiKodunu ayarlar.
Account account = new Account{Name = "Fifth Coffee"};
account.AccountCategoryCode = new OptionSetValue(
(int)AccountAccountCategoryCode.P referredCustomer);
account.CustomerTypeCode = new OptionSetValue(
(int)AccountCustomerTypeCode.Investor);
Step 4.4 - Kuruluş hizmetinin Oluştur yöntemini kullanarak yeni kaydı oluşturur.
_accountId = _orgService.Create(account);
CRM'ye giderseniz, yeni oluşturulmuş bir hesap kaydı göreceksiniz.
Step 4.5 - Hesap oluşturulduktan sonra, hizmet, Web hizmeti Al yöntemini kullanarak kaydı CRM'den geri alır.
ColumnSet cols = new ColumnSet(new String[]{
"name","address1_postalcode","lastusedincampaign"});
Account retrievedAccount =
(Account)_orgService.Retrieve("account", _accountId, cols);
Step 4.6 - Alınan kaydı aldıktan sonra, kaydın güncellenmiş değerini ayarlayabilirsiniz.
retrievedAccount.Address1_PostalCode = "98052";
retrievedAccount.Address2_PostalCode = null;
retrievedAccount.Revenue = new Money(5000000);
retrievedAccount.CreditOnHold = false;
Step 4.7 - Kaydın güncellenmiş değerini ayarladıktan sonra, Güncelleme web hizmeti yöntemini kullanarak kaydı CRM veritabanına geri güncelleyin.
_orgService.Update(retrievedAccount);
Kaydı CRM'de açarsanız, bu değerlerin orada güncellendiğini göreceksiniz.
Step 4.8 - Son olarak, Web hizmetini sil yöntemini kullanarak kaydı silin.
_orgService.Delete(Account.EntityLogicalName, _accountId);
Şimdi aynı kaydı CRM'de yenilerseniz, zaten silinmiş olduğu için kaydın artık mevcut olmadığını göreceksiniz.
Sonuç
Bu bölümde, CRM tarafından sağlanan iki önemli web hizmetini ve bu web hizmetlerinin çeşitli CRUD işlemlerini gerçekleştirmek için harici bir uygulamadan nasıl kullanılabileceğinin çalışan bir örneğini ele aldık.