Une erreur de création de rapports se produit après le chargement d’un rapport SQL personnalisé dans Microsoft Dynamics CRM

Cet article fournit une résolution pour le problème que vous pouvez recevoir Le rapport ne peut pas être affiché. (rsProcessingAborted) lors de la tentative d’exécution d’un rapport SQL personnalisé chargé dans Microsoft Dynamics CRM.

S’applique à : Microsoft Dynamics CRM 2011
Numéro de la base de connaissances d’origine : 2891221

Symptômes

Après avoir chargé un rapport SQL personnalisé dans Microsoft Dynamics CRM, les utilisateurs voient l’erreur suivante lorsqu’ils essaient d’exécuter le rapport :

Signalement d’une erreur
Le rapport ne peut pas être affiché. (rsProcessingAborted)

Si vous passez en revue les journaux de rapport SSRS, vous pouvez voir l’erreur suivante :

Traitement! ReportServer_0-4 !ef0 !09/09/2013-13 :21 :40 :: e ERROR : Throwing Microsoft.ReportingServices.ReportProcessing.ReportProcessingException : , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException : Impossible de créer une connexion à la source de données « CRM ». >--- System.Data.SqlClient.SqlException : Échec de la connexion pour l’utilisateur « NT AUTHORITY\ANONYMOUS LOGON ».
sur System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
sur System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
sur System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
sur System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
sur System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
sur System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
sur System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
sur System.Data.SqlClient.SqlInternalConnectionTds. ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
sur System.Data.SqlClient.SqlConnectionFactory.CreateConnection(Options DbConnectionOptions, Pool d’objetsGroupProviderInfo, Pool DbConnectionPool, DbConnection owningConnection)
sur System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
sur System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
sur System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
sur System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
sur System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
sur System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
sur System.Data.SqlClient.SqlConnection.Open()
sur Microsoft.ReportingServices.DataExtensions.ConnectionExtension.Open()
sur Microsoft.ReportingServices.DataExtensions.SqlConnectionWrapperBase.Open()
sur Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection(IProcessingDataSource dataSourceObj, String connectString, DataSourceInfo dataSourceInfo, String datasetName)
--- Fin de la --- de trace de la pile d’exceptions interne ;

D’autres erreurs peuvent ne pas être exactement les mêmes, mais similaires à celles ci-dessus. Les données clés à rechercher sont dans la trace de pile pour les éléments suivants :

La pile contient :
sur Microsoft.ReportingServices.Diagnostics.DataExtensionConnectionBase.OpenDataSourceExtensionConnection

L’erreur contient :
Microsoft.ReportingServices.ReportProcessing.ReportProcessingException : impossible de créer une connexion à la source de données « CRM ». >--- System.Data.SqlClient.SqlException :

Remarque

L’emplacement par défaut du journal SSRS est DRIVE :\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\Reporting Services\LogFiles.

Cause

Le problème est lié à une source de données incorrecte pour le fichier de rapport dans SSRS. Si la base de données Microsoft Dynamics CRM organization n’est pas structurée comme ORG_MSCRM, lors de la création du rapport dans Microsoft Dynamics CRM, elle conserve la source de données dans le fichier RDL au lieu d’utiliser les types de source de données associés au Microsoft Dynamics CRM Extensions de création de rapports/Connecteur de données. Le problème est que le catalogue initial dans le fichier RDL doit contenir _MSCRM.

Capture d’écran montrant le catalogue initial ne se termine pas par _MSCRM.

Remarque

Le catalogue initial ne se termine pas par _MSCRM.

Résolution

Avant de charger le rapport sql dans Microsoft Dynamics CRM, ajoutez _MSCRM au catalogue initial.

Capture d’écran montrant le rapport fixe avec _MSCRM se trouve à la fin du catalogue initial.

Importante

Le catalogue initial doit se terminer par _MSCRM pour que cela fonctionne correctement.