Dynamics 365 Data Export Service

Bu yazı 11 Mayıs 2019 tarihinde Medium/@dynamics365 altında yayınlanmıştır. 17 Mayıs 2020 tarihinde emregulcan.com altında taşınmıştır.

İçerikler, yazının oluşturulduğu tarih için geçerli olup, Microsoft Dynamics 365 CE, Power Platform ve Azure hizmetlerinin sürekli iyileştirme ve güncelleme döngüsünden dolayı paylaşılan bilgilerde değişiklikler meydana gelmiş olabilir.

Merhaba,

Bu yazıda Dynamics 365 CE (CRM) Online Data Export Service hakkında edindiğim bilgi ve tecrübelerimi paylaşacağım.

Bildiğiniz gibi Dynamics 365 Online ortamlarda direkt olarak veritabanı erişimi bulunmuyor ve bu durum özellikle data analiz ve raporlama açısından zaman zaman büyük sıkıntı oluşturuyor.

İşte bu noktada Microsoft, Dynamics 365 CE (CRM) Online veritabanının Azure üzerinde bir kopyasını oluşturabileceğiniz Data Export Service isimli hizmetini sunmakta.

Dynamics 365 CE (CRM) tarafında ücretsiz olan bu hizmeti kullanmak için Azure üzerinde Azure SQL Database ve Azure Key Vaults hizmetlerine ihtiyacımız bulunmakta. Bu hizmetler için Pay-as-you-go yani kullandığın kadar öde şeklinde hesaplanan aylık ücret ödemeniz gerekmekte.

Data Export Service kullanabilmek için gerekli olanlar;

  • Office 365 hesabınız ile ilişkilendirilmiş Azure tenant
  • Aktif bir Azure Subscription
  • Azure SQL Database (Managed Instance olmamasına dikkat edin)
  • SQL Database Connection String bilgisini saklayacağımız Azure Key Vaults hizmeti
  • Dynamics 365 CE (CRM) Online V 8.1 ve üzeri bir Instance
  • Data Export Service çözümü (Microsoft AppSource ‘dan download edeceğiz)

Bilmemiz gereken önemli noktalar;

  • Export Profile oluşturabilmek için Dynamics 365 CE (CRM) tarafında ilgili kullanıcı System Administrator rolüne sahip olmalıdır.
  • Eğer Sandbox Instance için Enable administrator mode açılmış ise Data Export Service çalışmayacaktır.
  • Data Export Service, Dynamics 365 CE (CRM) ‘de Entity (Varlık) silindiğinde, herhangi bir Entity ‘de Field (Attribute — Alan) silindiğinde ya da Export Profile bilgisinde mevcut bir Entity kaldırıldığında Azure SQL Database ‘de bunları kaldırmaz. Bu işlem için manuel olarak silme işlemi yapmanız gerekli. Detayları yazının devamında bulabilirsiniz
  • Eğer Dynamics 365 CE (CRM) yönetim panelinden ilgili Instance için Reset , Copy , Restore işlemlerini yapıyorsanız ya da farklı bir region ‘a taşıyorsanız Data Export Service çalışmayacaktır. Bu nedenle bu işlemleri yapmadan önce tüm Export Profile bilgilerini silip, sonrasında Azure SQL Database ‘de oluşan tüm tabloları manuel olarak silmeniz gerekli. Instance ile ilgili işlemler tamamlandıktan sonra tüm Export Profile bilgilerini yeniden oluşturmalısınız.

Hazırlık

Azure Hesabı Oluşturulması

Öncelikli olarak, eğer yoksa biz Azure hesabı oluşturmalı ve bu hesabı Office 365 hesabımız ile ilişkilendirmeliyiz.

Azure SQL Database Oluşturulması

Azure SQL Database oluşturma genel bir işlem ve detaylı bir konu olduğundan dolayı farklı bir yazı olarak anlattım, ilgili yazıya buradan ulaşabilirsiniz.

Azure KeyVaults Oluşturulması

Azure KeyVaults oluşturabilmek için Azure Portal ‘da sol menüden Key Vaults (Anahtar Kasaları) ‘a girmemiz ya da All Services (Tüm Hizmetler) ‘de Key Vaults olarak arama yapmamız gerekli.

Dynamics 365 CE (CRM) Data Export Service ile kullanılacak olan Key Vaults bilgisini eklemek için Azure Tenant ID ve Dynamics 365 CE (CRM) Organiztion ID bilgilerine ihtiyaç var, bu nedenle öncelikli olarak bunları hazırlamanızda fayda var.


Azure Tenant ID bilgisine Azure Active Directory Properties üzerinden erişebilirsiniz. Burada yer alan Directory ID bilgisini kullanacağız.

Azure Active Directory - Properties
Azure Active Directory – Properties

Dynamics 365 CE (CRM) Organization ID bilgisine ise Dynamics 365 CE (CRM) menüsünde Settings (Ayarlar)> Customizations (Özelleştirmeler)> Developer Resources (Geliştirici Kaynakları) adımlarını izleyerek ulaşabilirsiniz.

Bu sayfada yer alan Instance Reference Information (Kurulum Başvuru Bilgileri) bölümünde yer alan ID bilgisi bizim ihtiyacımız olan bilgi.

Dynamics 365 CE (CRM) - Developer Resources
Dynamics 365 CE (CRM) – Developer Resources

Tekrar Key Vaults ekranımıza dönelim ve tanımlamalarımızı yapalım.

Azure Portal - Key Vaults Listeleme Ekranı
Azure Portal – Key Vaults Listeleme Ekranı

Bu ekranda Add ya da Create key vault butonlarını kullanarak işleme başlayabiliriz.

Key Vaults - Yeni Key Vault Oluşturma
Key Vaults – Yeni Key Vault Oluşturma

Bu ekranda önemli olan nokta Access Policies (Erişim İlkeleri), çünkü oluşturduğumuz Key Vault için Data Export Service for Microsoft Dynamics 365 uygulamasına izin tanımlamamız gerekmekte.

Add new butonu ile izin tanımlamasını yapabiliriz.

Key Vaults — Access Policies
Key Vaults — Access Policies
Key Vaults - Access Policies - Select Principal 1
Key Vaults – Access Policies – Select Principal 1

Select principal (Sorumlu Seç) ‘a tıkladığımızda sağ tarafta açılan pencerede Data Export Service for Microsoft Dynamics 365 ya da sabit olarak b861dbcc-a7ef-4219-a005-0e4de4ea7dcf GUID bilgisi ile arama yapabilirsiniz.

Key Vaults - Access Policies - Select Principal 2
Key Vaults – Access Policies – Select Principal 2

Principal seçme işlemi tamamlandıktan sonra aynı ekranda Secret permissions (Gizli dizi izinleri) bölümünde Get (Al) ve List (Listele) izinlerini seçmemiz gerekli.

Key Vaults - Access Policies - Secret Permissions
Key Vaults – Access Policies – Secret Permissions

Access Policies tanımlamasını yaptıktan sonra ana ekranda Create butonu ile Key Vault tanımlamamızı oluşturabiliriz, yaklaşık olarak 1 dakika içinde hazır olacaktır, bu süre içinde Azure Portal size gerekli bilgilendirmeleri yapıyor.

Azure Portal bildirimlerinde deployment succeeded gördüğümüzde bildirim üzerinden Go to resource butonu ile Key Vault kaydımızı açabilir ya da Key Vaults ana ekranında Refresh (Yenile) butonu ile listemizi yenileyerek yeni oluşan Key Vault bilgisini görebiliriz.

Azure Portal - Key Vaults Listeleme Ekranı
Azure Portal – Key Vaults Listeleme Ekranı

Key Vault detayına girip Data Export Service için gerekli düzenlemeleri yapmamız gerekli.

Key Vaults - Overview (Genel Bakış)
Key Vaults – Overview (Genel Bakış)

Secrets menüsü altında bu Key Vault ile ulaşılacak olan bilgiyi oluşturmalıyız. Bizim senaryomuzda Azure SQL Database için Connection String bilgisi olacak.

Key Vaults - Secret
Key Vaults – Secret

Generate/Import butonu ile yeni bir Secret bilgisi oluşturabiliriz. Bu ekranda Value değeri olarak Connection String bilgimizi atayacağız.

Key Vaults - Yeni Secret Oluşturma
Key Vaults – Yeni Secret Oluşturma

Activation Date ve Expiration Date ayarları tamamen sizin güvenlik kurallarınız ile ilgili olarak değişkenlik göstermekte, ben bu bilgiler için herhangi bir ayar yapmadım, dolayısıyla Create butonu ile Secret bilgisini oluşturduğum andan itibaren, ben bu kaydı silinceye kadar kullanımda olacak.

Oluşturduğumuz Secret ‘ın detaylarına girdiğimizde aşağıdaki ekran görüntüsünde görüldüğü üzere geçerli versiyon bilgileri listelenmektedir. Bu bilgiler Secret üzerinde yapılan değişiklikleri belirtmektedir.

Key Vaults - Secret Detay Ekranı
Key Vaults – Secret Detay Ekranı

Kullanmak istediğimiz Version (Sürüm) bilgisine tıklayarak Azure Tenant Id ve Dynamics 365 CE (CRM) Organization Id tanımlamalarını yapmamız gerekli.

Ayrıca bizim için önemli olan Secret Identifier (Gizli Dizi Tanımlayıcısı) bilgisine bu sayfadan ulaşabiliriz. Bu bilgiyi daha sonra Dynamics 365 CE (CRM) üzerinde Data Export Service için Export Profile tanımlaması yaparken kullanacağız.

Key Vaults - Secret Version Detay Ekranı
Key Vaults – Secret Version Detay Ekranı

Tags (Etiketler) ‘a tıklayarak, sağ tarafta açılan ekranda bilgilerimizi girebiliriz. Tag Name (Etiket Adı) alanına Dynamics 365 CE (CRM) Organization Id bilgisi, Tag Value (Etiket Değeri) alanına ise Azure Tenant Id bilgisi girip kaydediyoruz.

Key Vaults - Tags
Key Vaults – Tags

Tag Name : Dynamics 365 Organization Id / Tag Value : Azure Tenant Id

Azure Key Vault tanımlama işlemlerini manuel yapmak istemiyorsanız, Microsoft tarafından paylaşılan PowerShell komutu ile otomatik olarak yapabilirsiniz.

Bu yazıyı hazırladığım tarihte geçerli olan PowerShell komutu aşağıdaki gibidir, herhangi bir değişiklik olma ihtimaline karşı güncel script ‘e buradan erişebilirsiniz.

PowerShell komutunda aşağıdaki parametreleri düzenlemeniz gerekli;

  • $subscriptionId : Azure Subscription için ID bilgisi
  • $keyvaultName : Oluşturmak istediğiniz Azure Key Vault için isim
  • $secretName : Azure Key Vault içinde oluşturulacak Secret için isim
  • $resourceGroupName : Azure ResourceGroup adı (Örnek : RG-DataExport)
  • $location : Mevcut ResourceGroup region bilgisi (Örnek : West Europe)
  • $organizationIdList : Dynamics 365 CE (CRM) Organization ID bilgisi
  • $tenantId : Azure Active Directory için ID bilgisi

Bu değişiklikleri yaptıktan sonra komutu çalıştırmak için Windows PowerShell ISE ‘i başlatmamız gerekli.

Windows PowerShell ISE - Azure Authentication
Windows PowerShell ISE – Azure Authentication

Authentication işlemini yaptıktan sonra PowerShell komutumuz çalışacak ve Azure Key Vault kaydımızı oluşturacaktır.

İşlem başarılı olarak tamamlandığında Windows PoserShell ISE ‘de Connection key vault URL is https://xxxxx.vault.azure.net:443/secrets/xxxx olarak bir adres çıktısı olacaktır, bu adres bizim Azure Key Vault kaydımızın Secret Identifier bilgisidir.

Windows PowerShell ISE - Azure Key Vault URL Bilgisi
Windows PowerShell ISE – Azure Key Vault URL Bilgisi

Azure platformunda ihtiyacımız olan herşeyi tamamladık, artık Dynamics 365 CE (CRM) tarafına geçebiliriz.

Dynamics 365 CE – Data Export Service Çözümünün Yüklenmesi

Data Export Service Solution (Çözüm) dosyasını ilgili Dynamics 365 CE (CRM) ortamımıza yüklemek için menüden Settings (Ayarlar)> Microsoft AppSource bağlantısına gitmeliyiz.

Dynamics 365 CE (CRM) Menüsü
Dynamics 365 CE (CRM) Menüsü

Microsoft AppSource bağlantısına tıkladığımızda aşağıdaki gibi bir popup ekran açılacak, burada Data Export Service olarak arama yapıp ilgili çözümü bulabiliriz.

Eğer şanslıysanız popup ekran ilk açıldığında önerilen çözüm olarak karşınıza çıkabilir 🙂

Microsoft AppSource
Microsoft AppSource

Data Export Service çözüm detaylarına girdiğimizde ise aşağıdaki gibi bir ekran göreceğiz.

Microsoft AppSource - Data Export Service
Microsoft AppSource – Data Export Service

Bu ekranda GET IT NOW (Şimdi Edinin) butonuna tıklayarak yükleme işlemini başlatabiliriz. İlk adımda bir form doldurarak Continue butonuna basıp devam ediyoruz.

Microsoft AppSource - Data Export Service
Microsoft AppSource – Data Export Service

Bu aşamadan sonra yükleme yapılacak Instance bilgilerini seçebileceğimiz ekrana yönlendiriliyoruz. Eğer birden fazla Instance bilginiz varsa yükleme yapmak istediğiniz Instance bilgisini seçip, Agree butonuna basarak işlemi tamamlıyoruz.

Microsoft AppSource - Instance Seçim Ekranı
Microsoft AppSource – Instance Seçim Ekranı

Data Export Service yüklemek için yapmamız gerekenler bitti, artık Microsoft tarafından otomatik olarak yüklenecek olan Data Export Service ‘in Installation pending durumundan Installed duruma geçip hazır olmasını beklemek.

Yükleme tamamlandığında size herhangi bir bilgilendirme yapılmıyor, bu nedenle bu sayfayı arasıra yenileyip kontrol etmenizde fayda var.

Dynamics 365 Administrator Center - Manage Your Solutions Ekranı
Dynamics 365 Administrator Center – Manage Your Solutions Ekranı

Data Export Service yüklendiğinde Dynamics 365 CE (CRM) ekranımızı yenileyerek ana menüde Data Export (Veri Dışa Aktarma) bağlantısının görünmesini sağlayabiliriz.

Dynamics 365 CE (CRM) Menüsü - Data Export
Dynamics 365 CE (CRM) Menüsü – Data Export

Data Export bağlantısına tıklamadan önce internet tarayıcınızın popup pencerelere izin verip vermediğini kontrol etmenizde fayda var.

Çünkü Data Export Service ilk açıldığında geçici bir popup ile auto sign-in işlemi yapıyor, eğer internet tarayıcınız bu sayfayı bloke ederse authentication işlemi yapılmayacağı için sayfa açılmayacaktır.

Popup ayarları için https://discovery.crmreplication.azure.net adresine izin vermeniz yeterli olacaktır.

Senkronizasyon Yapılacak Entity ‘lerin (Varlıkların) Belirlenmesi

Bu aşamada Data Export Service kullanarak Azure SQL Database ‘e senkronize edeceğimiz Entity (Varlık) bilgilerinin düzenlemesini yapacağız.

Bunun için Settings (Ayarlar)> Customizations (Özelleştirmeler)> Customize the System (Sistemi Özelleştir) adımlarını izleyerek açtığımız özelleştirme panelinde her bir Entity (Varlık) için Data Services bölümünde bulunan Change Tracking (İzlemeyi Değiştir) ayarlarını düzenleyebiliriz.

Maalesef Dynamics 365 CE (CRM) ‘in Türkçe dil çevirisi zaman zaman çok kötü olabiliyor. Yukarıdaki örnekte olduğu gibi Change Tracking cümlesi İzlemeyi Değiştir olarak çevrilmiş, aslında Değişiklikleri İzle gibi bir ifade daha doğru olabilir.

Bu nedenle ben hemen hemen tüm projelerimde İngilizce dil seçeneğini kullanıyorum, böylece hem çeviri hataları ile kafa karışıklığı yaşamıyorum hem de herhangi bir hata ile karşılaştığımda İngilizce mesajı Google üzerinde aratarak daha kolay çözüm buluyorum.

Bazı istisna Entity ‘ler hariç tüm Dynamics 365 CE (CRM) OOB (standart) Entity ‘lerin Change Tracking özelliği açık olarak gelmekte. Bazı Entity ‘ler ise Change Tracking için tamamen kapalı durumda.

Bizim yapacağımız işlem ise Change Tracking işlemini açmak istediğimiz Entity ‘lerin düzenlemesini yapmak, özellikle sisteme sonradan eklenen Custom Entity ‘ler için bu işlemi yapmamız gerekmekte.

Dynamics 365 CE (CRM) Customization Ekranı
Dynamics 365 CE (CRM) Customization Ekranı

Tüm hazırlık işlerimiz tamamlandı, artık Data Export Service ‘i kullanabiliriz.

Data Export Service Kullanımı

Dynamics 365 CE (CRM) menüsünde Settings (Ayarlar)> Data Export (Veri Dışa Aktarma) adımlarını izleyebilirsiniz.

Data Export Service ana ekranı aşağıdaki gibidir, ilk kez çalıştırdığımızda henüz bir Export Profile bilgisi olmadığı için liste boş gelecektir.

Data Export Service - Export Profile Listeleme Ekranı
Data Export Service – Export Profile Listeleme Ekranı

Export Profile Oluşturma

New butonuna tıklayarak yeni bir Export Profile oluşturabiliriz, bu aşamada aşağıdaki gibi bir popup ekran açılacaktır.

Data Export Service - Export Profile Oluşturma
Data Export Service – Export Profile Oluşturma
  • Name sadece tanımlama amaçlı olup, istediğimiz formatta isimlendirme yapabiliriz. Tek kriter bu bilginin benzersiz (unique) olmasıdır.
  • Key Vault URL daha önce oluşturduğumuz Azure Key Vault ‘un Secret Identifier bilgisi. Bu url bilgisi case-sensitive ‘dir, bu nedenle yazmak yerine kopyala / yapıştır yapmanız daha doğru olacaktır.
  • Schema default olarak dbo gelmekte, fakat ihtiyacınıza göre farklı Schema oluşturabilirsiniz.
  • Prefix oluşturulan tabloların isimlerine ön ek olarak yazılmaktadır. Böylece farklı profiller için kullanmış olduğunuz tabloları bu prefix sayesinde kolayca ayırt edebilirsiniz.

Özellikle birden fazla Export Profile ‘ın çalıştığı ya da Data Export Service dışında manuel olarak tabloların oluşturulduğu bir database kullanıyorsanız prefix kullanmanızı tavsiye ederim. Hem tablolara kolayca erişebilir hem de Data Export Service ile oluşturulan tabloları silmek için Microsoft tarafından yayınlanan SQL Script ‘i kullanırken rahat olacaktır. Aksi takdirde tüm tablolarınızı silebilirsiniz.

  • Retry Count data senkronizasyonu sırasında bir hata oluştuğunda tekrar deneme sayısıdır. 0 — 20 arasında bir değer olmalıdır, default değeri 12 ‘dir.
  • Retry Interval (in sec) yukarıdaki madde ile ilişkili olarak, hata durumunda yeniden denemeden önce ne kadar süre bekleneceği bilgisini belirtmektedir ve Saniye türünde değer almaktadır. 0 — 3600 saniye arasında bir değer alabilir, default olarak 5 saniyedir.
  • Write Delete Log seçeneği opsiyonel olup, işaretlendiği (evet / true) takdirde silinen kayıtların log bilgilerini yazacaktır.

Tüm bilgileri girdikten sonra Validate butonu ile bilgilerin geçerliliğini doğrulayabiliriz.

Data Export Service - Export Profile Oluşturma - Validate
Data Export Service – Export Profile Oluşturma – Validate

Validate işlemi sırasında;

  • Eğer hata olursa ilgili alanın yanında kırmızı işaret belirecektir.
  • Başarılı olması durumunda ise aşağıdaki gibi bir mesaj kutusu ile bilgilendirme yapmakta.
Data Export Service - Export Profile Oluşturma - Validate
Data Export Service – Export Profile Oluşturma – Validate

Azure SQL Database oluştururken düşük konfigurasyona sahip bir SQL Database seçtiğim için uyarı veriyor. Demo amaçlı bir konfigurasyon olduğu için bu uyarıyı dikkate almıyorum, fakat production ortamlarında yeterli konfigurasyona sahip paketler seçmenizi öneririm.

Next ile bir sonraki aşamaya geçiyoruz. Burada Data Export Service ile dışarıya aktarılacak olan Entity bilgilerini seçmeliyiz. Eğer aradığımız Entity listede yer almıyorsa 2 ihtimal bulunuyor;

  • Dynamics 365 CE (CRM) OOB (standart) Entity ‘dir, fakat Change Tracking için tamamen kapalıdır (Metadata olarak izin verilmiyor)
  • İlgili Entity (OOB ya da custom) için Change Tracking özelliği aktif değildir. Gerekli değişikliği yapıp, Publish (Yayınla) yaparak ilgili Entity ‘nin listede yer almasını sağlayabilirsiniz.
Data Export Service - Export Profile Oluşturma - Entity Seçimi
Data Export Service – Export Profile Oluşturma – Entity Seçimi

İstediğimiz Entity ‘leri seçtikten sonra Next ile sonraki aşamaya geçebiliriz. Select Relationships aşamasında, bir önceki aşamada seçmiş olduğumuz Entity ‘lerin arasında ilişkili olanlar varsa bu Entity ‘lerin ilişkilerini seçebiliriz, opsiyonel bir işlemdir.

Data Export Service - Export Profile Oluşturma - Relationship Seçimi
Data Export Service – Export Profile Oluşturma – Relationship Seçimi

Son aşama Summary ‘de ise yaptığımız tüm işlemlerin detaylarını görebiliriz.

Data Export Service - Export Profile Oluşturma - Özet
Data Export Service – Export Profile Oluşturma – Özet

Bu ekranda Create ya da Create & Activate butonları ile Export Profile oluşturma işlemini tamamlayabiliriz.

Create ile işlemi tamamladığımızda Export Profile oluşturulur, fakat data senkronizasyonu başlamaz.

Create & Activate ile işlemi tamamladığımızda ise Export Profile oluşturulur ve data senkronizasyonu başlatılır.

Export Profile Detayları ve İşlemler

İşlem tamamlandıktan sonra oluşturduğumuz Export Profile detay sayfasına yönlendiriliyoruz.

Data Export Service - Export Profile Detay Ekranı
Data Export Service – Export Profile Detay Ekranı

Bu ekranda, seçmiş olduğumuz tüm Entity ‘ler ve Relationship ‘ler için senkronizasyon detaylarını görebilirsiniz. Ayrıca Manage Entities ya da Manage Relationships butonları ile yenilerini ekleyebilirsiniz.

Bu işlemlerde eğer mevcut bir Entity ya da Relationship ‘i Export Profile ‘dan kaldırırsak, Azure SQL Database ‘de bu Entity ya da Relation ‘a karşılık gelen tablo silinmeyecektir. Eğer daha sonra tekrar eklemek isterseniz öncelikli olarak Azure SQL Database üzerinden bu tabloların silinmesi gereklidir.

Failed Records ve Download Failed Records (Preview) ile oluşan hatalı kayıtların detaylarına ulaşabiliriz. Detaylı bir konu olduğu için bir sonraki yazıda sadece bu konuyu anlatacağım.

Resync Failed Records (Preview) ile hatalı kayıtları yeniden gönderilmesi için senkronizasyon işlemini başlatabiliriz.

Yanlarında (Preview) ifadesi yer alan işlemler henüz tüm müşteriler için kullanıma açılmamış özellikler, bu nedenle ilerleyen tarihlerde bu yazıyı okuyacak olursanız belki bu özellikleri hiç göremeyebilirsiniz ya da tüm müşterilerin kullanımına açıldığı için yanında Preview ifadesi olmayabilir.

Export Profile Silme

Export Profile detay sayfasında bulunan Delete butonu ile mevcut Export Profile bilgisini silebiliriz.

Burada önemli olan nokta, silme işlemi sadece Export Profile bilgisi için geçerlidir.

Azure SQL Database ‘de oluşan tablolar ve kayıtlar aynı şekilde kalacaktır. Eğer bu tabloları da silmek istiyorsak Microsoft tarafından yayınlanan SQL Script ‘i kullanmamız gerekli, manuel olarak silme işlemi yaparsanız silmeyi unutacağınız bir bileşen sonraki Export Profile tanımlamalarında hata almanıza neden olacaktır.

Export Profile ile oluşan tüm tabloları ve Stored Procedure ‘leri silmek istiyorsak aşağıdaki SQL Script ‘i çalıştırmanız yeterlidir.

Burada dikkat etmeniz gereken nokta, eğer Azure SQL Database ‘de Export Profile dışında açmış olduğunuz farklı tablolar varsa ve hem bu tablolarda hem de Export Profile dosyalarında prefix bilgisi bulunmuyorsa bu SQL Script tüm tabloları sileceği için sorun yaşayabilirsiniz. Bu nedenle çalıştırmadan önce dikkatli olmanızı ve gerekli kontrolleri yapmanızı tavsiye ederim.

Tüm bileşenleri silme işlemini Dynamics 365 CE (CRM) ‘de bir Export Profile bilgisini kullanmak istemediğinizde (sildiğinizde) yapmalısınız.

Eğer isterseniz tekil olarak silme işlemi yapabilirsiniz, bunun için SQL Script üzerinde gerekli düzenlemeleri yaparak çalıştırmanız yeterlidir.

Tekli silme işlemi genelde Export Profile üzerinde değişiklik yapıldığında herhangi bir Entity ya da Relationship kaldırıldığında kullanılmalıdır.

  • prefix : Eğer tablolarınızda prefix tanımlaması varsa silmek istediğiniz tablonun prefix değerini girmelisiniz
  • schema : Silmek istediğiniz tablonun schema bilgisini girmelisiniz. Export Profile oluşturma aşamasında default olarak bırakmışsanız dbo olarak girmelisiniz
  • entityName : Silmek istediğiniz tablonun adı (lead, contact, new_customentity gibi)

Azure SQL Database İşlemleri

Data Export Service başarılı olarak çalıştı ve Dynamics 365 CE (CRM) datalarını Azure SQL Database ‘e senkronize etmeye başladı. Artık SQL Server Management Studio (SMSS) ile Azure SQL Database ‘e bağlanarak tablolarımızı ve senkronize olan datalarımızı inceleyebiliriz.

Aşağıdaki ekran görüntüsünde görüldüğü üzere seçmiş olduğumuz tüm Entity ve Relations ‘lar Azure SQL Database üzerinde tablo olarak oluşturulmuş ve Export Profile oluştururken vermiş olduğumuz Prefix bilgisi tablo isimlerine eklenmiş (d365tr_).

Aynı zamanda bir çok sistem tablosu ve Stored Procedure ‘da otomatik olarak oluşturulmuş.

SQL Server Management Studio - Azure SQL Database
SQL Server Management Studio – Azure SQL Database

Tablolar üzerinde SELECT ile data okuduğumuzda tüm bilgilerin senkronize olduğunu görebiliriz.

Azure SQL Database — Contact Tablosu
Azure SQL Database — Contact Tablosu

Tablomuzda Dynamics 365 CE (CRM) ‘de olmayan SinkCreatedOn ve SinkModifiedOn isimli 2 alan mevcut ve değerleri CreatedOn ve ModifiedOn alanlarından farklı.

Bu alanlar ilgili kaydın Data Export Service ile Azure SQL Database ‘de ne zaman oluşturulduğunu ya da güncellendiğini belirtmektedir.

Eğer Export Profile oluştururken Write Delete Log seçeneğini işaretlemişsek, Dynamics 365 CE (CRM) ‘de bir kayıt silindiğinde DeleteLog tablosuna bu bilgi işlenecektir. Elbette silinen bu kayıt Azure SQL Database üzerinde ilgili tablodan da silinecektir.

Azure SQL Database - DeleteLog Tablosu
Azure SQL Database – DeleteLog Tablosu

Bu aşamadan sonra Data Export Service sürekli olarak Dynamics 365 CE (CRM) ve Azure SQL Database arasında senkronizasyonu sağlayacaktır. Microsoft tarafından kesin bir değer belirtilmiyor, fakat yapılan gözlemlerde sistem yoğunluğuna göre en fazla 15 dakika sürdüğü tespit edilmiş.

Ayrıca Microsoft ‘un Data Export Service için herhangi bir SLA (Service Level Aggrement) sağlamadığını ve senkronizasyon süresi için bir garanti vermediğini belirtmekte fayda var.

Bu yazı ile ilişkili diğer yazılara aşağıdaki bağlantılardan ulaşabilirsiniz;

Umarım faydalı bir yazı olmuştur.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.