XrmToolBox için plugin yazıp yayınlama

Merhaba bu yazımızda her Dynamics Crm geliştiricinin kullandığı XrmToolBox aracı için kendi pluginimizi geliştirip yayınlayacağız. Bu sayede xrmtoolbox kullananlar xrmtoolbox plugin sekmesinden pluginimizi indirip kullanabilecekler. Bu pluginimiz solutionlarımızın asenkron olarak import edilmesine olanak sağlayan basit kodlardan oluşan bir plugin olacak. Async Solution import hakkında detaylı bilgi almak için burdaki başlığı inceleyebilirsiniz. Eğer hiç XrmToolBox kullanmadıysanız https://www.xrmtoolbox.com adresinden bu aracın ne olduğuna dair detaylı bilgi edinebilirsiniz. Yazımız aşağıdaki başlıklardan oluşacak:

  1. Projenin oluşturulması ve gerekli bağımlılıkların yüklenmesi
  2. Plugin kodlarının yazılması
  3. Plugin Test/Debug
  4. Nuget paketi oluşturma
  5. XrmToolBox plugin store içerisine ekleme
Okumaya devam et

Dynamics CRM 365 Embedded Intelligence nedir?

Bu yazımızda Embedded Intelligence’ ın ne olduğundan ve kendi organizasyonumuzda bu özelliği nasıl kullanabileceğimizden bahsedicez.

Embedded Intelligence için Microsoft tarafından yapılan tanım şu şekilde:

Embedded Intelligence, Dynamics 365 ve Microsoft Exchange içerisinde zaten saklanan müşteri etkileşimleriyle ilgili geniş veri koleksiyonunu sürekli olarak analiz eden bir özellik paketidir. Bu analiz ile müşteriniz ile ilişkilerinizi daha iyi anlayabilir doğru adımlar atabilirsiniz.

Embedded Intelligence’ ın sunduğu özelliklere kısa bir değinelim :

  • Relationship Assistant
  • Email Engagement
  • Auto Capture
Okumaya devam et

Dynamics Crm 365 Trial Hesabı Alma

Uzun süredir Dynamics CRM trial hesabı almadıysanız trial hesabı alma süreci eskisine göre biraz karışık gelebilir. Bunun sebebi Microsoft’un Dynamics CRM i sürekli olarak geliştirmesi diyebiliriz. Ürün tarafında yapılan geliştirmeler doğal olarak trial alma sürecini de değiştirmiş durumda. Bunun için nasıl trial hesabı alabileceğimizi ekran görüntüleriyle anlatmaya çalışacağım.

İlk olarak https://trials.dynamics.com adresine giriyoruz. Bizi aşağıdaki gibi bir ekran karşılayacak.

Sağ alt köşedeki “Buradan kaydolun” linkine tıklıyoruz.

Okumaya devam et

Powershell ile Dynamics CRM SDK indirme

Eskisi gibi SDK’ yı Microsoftun sitesinden indiremediğimizi farketmişsinizdir. Arama yaptığımızda karşımıza gelen SDK (v8.x) versiyonu olacaktır. Dikkat etmelisinizki bu versiyon eski versiyondur. Peki yeni SDK’ yı nasıl indireceğiz? Microsoft şu linkte SDK’ yı Nuget üzerinden nasıl indireceğimizi anlatmış. Öncelikle SDK 4 kısımdan oluşuyor ve hepsini indirebildiğimiz gibi sadece ihtiyacımız olan kısmıda indirebiliyoruz.

  • ConfigurationMigration
  • CoreTools
  • PackageDeployment
  • PluginRegistration

Öncelikle powershell açıyoruz. Ve SDK’ yı hangi klasöre indireceksek o klasöre gidiyoruz. Ben C:\SDK klasörüne indireceğim.

Sonra aşağıdaki kodu yapıştırıp enter a basıyoruz(yükleme birkaç dakika sürebilir)

$sourceNugetExe = “https://dist.nuget.org/win-x86-commandline/latest/nuget.exe” $targetNugetExe = “.\nuget.exe” Remove-Item .\Tools -Force -Recurse -ErrorAction Ignore Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe Set-Alias nuget $targetNugetExe -Scope Global -Verbose

Daha sonrada aşağıdaki kodları yapıştırıp enter a basıyoruz. Ve dosyalar SDK dizinimize inmiş oluyor(Kodlarda sdk bölümlere ayrılmış. Herhangi bir araca ihtiyacınız yoksa onu powershell’e yapıştırmayın. Böylelikle powershell o aracı indirmeyecek.

## ##Download Plugin Registration Tool ## ./nuget install Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool -O .\Tools md .\Tools\PluginRegistration $prtFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match ‘Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool.’} move .\Tools\$prtFolder\tools\*.* .\Tools\PluginRegistration Remove-Item .\Tools\$prtFolder -Force -Recurse

## ##Download CoreTools ## ./nuget install Microsoft.CrmSdk.CoreTools -O .\Tools md .\Tools\CoreTools $coreToolsFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match ‘Microsoft.CrmSdk.CoreTools.’} move .\Tools\$coreToolsFolder\content\bin\coretools\*.* .\Tools\CoreTools Remove-Item .\Tools\$coreToolsFolder -Force -Recurse

## ##Download Configuration Migration ## ./nuget install Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf -O .\Tools md .\Tools\ConfigurationMigration $configMigFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match ‘Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf.’} move .\Tools\$configMigFolder\tools\*.* .\Tools\ConfigurationMigration Remove-Item .\Tools\$configMigFolder -Force -Recurse

## ##Download Package Deployer ## ./nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.WPF -O .\Tools md .\Tools\PackageDeployment $pdFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match ‘Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf.’} move .\Tools\$pdFolder\tools\*.* .\Tools\PackageDeployment Remove-Item .\Tools\$pdFolder -Force -Recurse

## ##Download Package Deployer PowerShell module ## ./nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.PowerShell -O .\Tools $pdPoshFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match ‘Microsoft.CrmSdk.XrmTooling.PackageDeployment.PowerShell.’} move .\Tools\$pdPoshFolder\tools\*.* .\Tools\PackageDeployment.PowerShell Remove-Item .\Tools\$pdPoshFolder -Force -Recurse

## ##Remove NuGet.exe ##

Remove-Item nuget.exe

İyi çalışmalar.

Microsoft Dynamics 365 -Alternate Keys

Dynamics CRM’ e yeni gelen özelliklerden biri Alternate Keys – Alternatif Anahtar. Bu özellik sayesinde iki yada daha fazla organizasyondaki verileri sağlıklı bir şekilde senkronize edebiliyoruz. Dahası bu özelliği duplicate detection olarak da kullanabiliriz. Çünkü her kayıt için alternatif anahtar benzersiz olmak zorunda. Dikkat edilmesi gereken kısım ise alternatif anahtar olarak seçtiğimiz alan için benzer bir kayıt giremeyeceğimiz. Yani Contact varlığının PhoneNumber alanını alternate key olarak tanımlarsak aynı telefon numarasına sahip iki farklı kayıt oluşturamayacağız. Şimdi bu Alternatif Anahtar özelliğini kullanalım:

İlk önce Customization’ ı açıp Contact varlığımıza gidelim.

Daha sonra yukarıdan “New” diyoruz.

FirstName, LastName ve Email seçip add dedikten sonra kaydedip kapatıyoruz. Şimdi daha önce yarattığımız aynı isme ve eposta adresine sahip bir kayıt yaratmaya çalıştığımızda aşağıdaki hatayı alacağız.

Alternate Key Bilinmesi Gerekenler:

  • Alternatif anahtar birden fazla alanın birleşiminden oluşabilir.
  • Fazla miktarda veriniz varsa alternatif anahtar oluşturulması – o alan üzerinde mükerrer kayıt olup olmadığını kontrol ettiği için- uzun sürebilir.
  • Alternatif anahtar benzersiz olması gerektiğinden benzer değere sahip bir kayıt oluşturamazsınız.
  • Alternatif anahtar olarak belirlenmiş alanlardan mükerrer olan kayıtlar var ise alternatif key oluşturma işlemi başarısız olur. Bu işlemin başarılı olup olmadığını kontrol etmek için Contact>Keys kısmından oluşturduğumuz alternate key kaydının durumu(status) aktif olmalıdır.
  • Alternate Key veritabanı seviyesinde uniq nonclustered index oluşturur.

CREATE UNIQUE INDEX [ndx_for_entitykey_packt_NameandEmail]
ON [ContactBase]
([EMailAddress1] ASC, [FirstName] ASC, [LastName] ASC)
INCLUDE ([ContactId])
WHERE [EMailAddress1] is not null
AND [FirstName] is not null
AND [LastName] is not null
WITH (FILLFACTOR = 80, MAXDOP = 4, SORT_IN_TEMPDB = ON)

Kaynak:

Dynamics CRM Online Web API 1- Azure Active Directory

NOT: Dynamics Crm Online Trial versiyonunda anladığım kadarı ile  Azure Active Directory kullanamıyoruz.

Microsoft,  Dynamics CRM Online 2015 Update 1 ile beraber Organization Service (2011 SOAP endpoint) ve Organization Data Service (OData v2 REST endpoint) teknolojilerinin yerini alacak olan  Dynamics Crm Web API yi tanıttı . Crm Web Api’ nin Open Data Protocol (ODATA) standardını kullanıyor (ODATA standardı hakkında detaylı bilgiye buradaki adresten ulaşabilirsiniz) .

SOAP vs ODATA vs REST karşılaştırma için buradaki adrese bakabilirsiniz.

Dynamics Crm Web Api kullanabilmek için öncelikle Crm Online kullanıyor olmalısınız. On Premise versiyonlar için ne zaman Web Api desteği geleceği konusunda Microsoft tarafından henüz bir bilgi sunulmadı.  Eğer Crm Online kullanıyoarsanız öncelikle Web Api önizlemesini aktif etmemiz gerekiyor. Bu arada kullanacağımız Crm Web Api servisinin önizleme versiyonu olduğunu unutmamak gerek.

As a preview feature, this API isn’t supported. Microsoft Dynamics CRM Technical support won’t be able to help you with issues or questions about this Web API preview.

Dynamics CRM Web API’ yi aktif etmek için öncelikle Ayarlar>Yönetim

Dynamics Crm Web Api Preview Tutorial

Dynamics Crm Web Api Preview System Setting

>Sistem Ayarları

Dynamics Crm Web Api Tutorial

Dynamics Crm Web Api System Setting

Okumaya devam et

Ms Crm 2015 Organizasyonu İçeri Aktarma (Import Organization)

Ms Crm 2015 ile Organizasyonu içeri nasıl aktarabiliriz ona bakacağız:

  • İlk olarak Deployment Manager’ı açıyoruz.

Ms Crm Organization Importing

Ms Crm Organization Importing

  • Daha sonra sol taraftaki (Kırmızı kutunun içindeki) Organizations yazısına sağ tıklayıp Import diyoruz.

Ms Crm Import Organization

Ms Crm Import Organization

Okumaya devam et

MSCRM 2015 MS CRM Data Encryption Error – Veri Şifreleme hatası ve çözümü

MsCrm 2015 organizasyonumuzu deployment manager kullanarak import ettikten sonra örneğin e-posta aktivitesi oluşturmaya çalıştığımızda Veri Şifreleme Hatası alabiliyoruz(aşağıdaki resimdeki gibi). Şimdi bu hatanın ne olduğuna ve nasıl çözüleceğine bakalım.

Veri Şifreleme Hatası

Veri Şifreleme Hatası

Tabi ilk olarak hata mesajını okuyoruz.

Kuruluş veritabanında şifrelenmiş alanlar var, ancak veri şifrelemesi özelliği etkinleştirilmedi. Veri şifrelemesini etkinleştirmek için Microsoft Dynamics CRM sistem yöneticinize başvurun. Etkinleştirmek için Sistem Ayarları > Veri Yönetimi > Veri Şifrelemesi’ne gidin. Daha fazla bilgi için bkz. http://go.microsoft.com/fwlink/?LinkId=316366.

Crm bizden veri şifrelemesi özelliğini( detaylı bilgi için tıklayınız) etkinleştirmemizi istiyor. Hemen Sistem Ayarları > Veri Yönetimi > Veri Şifrelemesi alanına gidiyoruz.

Veri Şifreleme

Veri Şifreleme

Okumaya devam et