CRM 2016 - Excele Ver Sql Server Hatası (SQL Server Error While Exporting Advanced Find Records To Excel)

 Gelişmiş Bul kayıtlarını Excel'e vermeye çalışırken aşağıdaki ekran görüntüsündeki gibi "SQL Server Hatası" alabiliriz.


EventViewer üzerinden verilen hataya baktığımızda hatanın sebebi aşağıdaki gibidir.


The Web Service plug-in failed in OrganizationId: 9e0f4dea-3ce2-43ba-920a-0cc0000be3a7; SdkMessageProcessingStepId: 8ad3883a-92e9-4d4c-837e-74a85a9628c7; EntityName: none; Stage: 30; MessageName: ExportDynamicToExcel; AssemblyName: Microsoft.Crm.Extensibility.InternalOperationPlugin, Microsoft.Crm.ObjectModel, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35; ClassName: Microsoft.Crm.Extensibility.InternalOperationPlugin; Exception: Unhandled Exception: System.Threading.ThreadAbortException: Thread was being aborted.
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Web.Services.Protocols.LogicalMethodInfo.Invoke(Object target, Object[] values)
   at Microsoft.Crm.Extensibility.InternalOperationPlugin.Execute(IServiceProvider serviceProvider)
   at Microsoft.Crm.Extensibility.V5PluginProxyStep.ExecuteInternal(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
.
Sorunun kaynakları

1- Gelişmiş Bul'da kullanılan sorgu 10000'den fazla kayıtla sonuçlanabilir.
2- CRM in dışarı excel export için OBB limiti 10000 dir.
3-Eğer kullanılan CRM in on-premise ise , maximum excele verme sayısı bizim vermeye çalıştığımız sayıdan azdır.

Bunun için aşağıdaki sorgu ile limitimizi öğrenebiliriz.

select MaxRecordsForExportToExcel from Organization

Çözüm

MaxRecordsForExportToExcel  değerini artıralım.

Bunun için support ve unsupported yöntemler vardır.

Supported Yöntem

CRM Sdk ı kullanarak MaxRecordsForExportToExcel   değerini güncelleyelim.

 Organization organization = new Organization();
 organization.Id = new Guid("9E0F4DEA-3CE2-43BA-920A-0CC0000BE3A7");
 organization.MaxRecordsForExportToExcel = 300000; // Set desired value
 crmService.Update(organization);

UnSupported Yöntem

Sql update yöntemi ile OrganizationBase tablomuzu güncelleyelim.

UPDATE OrganizationBase
SET MaxRecordsForExportToExcel = 300000


Not : Yukarıdaki çözüm ile hatamız düzelmez ise rollup güncellemesi yapalım. Bu şekilde de sorunu çözebiliriz.