Utilisation des rapports SSRS avec Dynamics CRM (Part I)

Les rapports SSRS (SQL Server Reporting Services) permettent de faire du reporting assez poussé basé sur les données de Dynamics CRM.

Le but de cet article est de rappeler les bases de création d’un rapport SSRS en utilisant Visual Studio 2008 et BIDS (Business Intelligence Development Studio), ainsi que de vous montrer comment on peut bénéficier du système de pré-filtrage des rapports standards.

Prérequis

Voici les prérequis au développement d’un rapport SSRS :

  • droits d’administrateur sur la base SQL de Dynamics CRM
  • profils de sécurité Dynamics CRM de type Administrateur système
  • Visual Studio 2008
  • SQL Server 2008 R2 management studio

Création du rapport

Commencer par ouvrir Visual studio 2008 et créer un nouveau projet de rapport :


 
Dans l’explorateur de solution, faites un clic droit sur Reports pour créer un nouveau rapport en utilisant l’assistant de création :

Suivez ensuite les instructions de l’assistant jusqu’à l’écran de création de la source de données .

Vous avez le choix entre plusieurs types de sources de données, dans notre cas nous allons utiliser le type Microsoft SQL Server.

Cliquez ensuite sur modifier et remplissez les informations de connexion y compris la base de données de l’organisation Dynamics :


 
Vient ensuite la création du Data Set qui consiste en l’ensemble des champs que nous allons récupérer via une requête SQL.

Cliquez sur le bouton Query Designer puis sur le bouton Add Table.

Attention ! Il faut aller chercher dans les vues et utiliser les Filtered Views qui sont les seules que Microsoft supporte en lecture pour les rapports SSRS.

Dans notre exemple nous allons créer un rapport se basant sur les comptes (vue filtrée : FilteredAccount).

La prochaine étape est la sélection du type de rapport. Deux types sont proposés dans l’assistant. Vous pouvez également créer votre propre mise en page.

Après avoir choisi le type il ne vous reste qu’à arranger les colonnes comme vous désirez. Votre rapport est maintenant prêt.

 

Mise en place du pré-filtrage Dynamics CRM

A ce stade le rapport SSRS est prêt à être publié dans Dynamics CRM mais avant cela nous allons le modifier pour gérer le pré-filtrage de Dynamics CRM 2011.

Pour le mettre en place il suffit d’éditer la requête de notre DataSet. Pour faire cela, il suffit d’effectuer un clic droit sur votre Dataset et de cliquer sur Query.

Il existe 2 façons d’utiliser le pré-filtrage Dynamics CRM 2011 :

  • Automatique :
    on utilise un alias pour la table visée qui est reconnue par Dynamics CRM lors de l’exécution du rapport ce qui lui permet de changer la requête avant son exécution en passant un paramètre caché au rapport.
  • Explicite :
    contrairement à la méthode automatique , Dynamics ne modifie pas la requête lui-même, on crée nous même le paramètre que Dynamics doit passer et on y fait référence dans notre requête.

La méthode automatique est plus simple mais malheureusement son fonctionnement est limité et certains problèmes peuvent arriver lorsqu’on l’utilise pour des requêtes un peu plus complexes.

En effet, si nous prenons le cas d’une requête comprenant une union, Dynamics CRM ne va pas forcement
fournir un paramètre pour chaque sous requêtes nécessaire à l’union et son pré-filtrage ne fonctionnera donc pas correctement.

Dans notre exemple nous utiliserons la méthode automatique.
Pour plus d’informations sur ces deux types de pré-filtrage vous pouvez vous référer à l’article MSDN traitant du sujet : https://msdn.microsoft.com/en-us/library/gg328288.aspx

 

Dans notre exemple, la requête obtenue est la suivante :

   

SELECT          

accountcategorycodename, accountclassificationcodename,accountnumber, address1_city, address1_country, address1_line1,address1_postalcode, address1_telephone1, businesstypecodename,customertypecodename, name, accountid

FROM           

FilteredAccount

  

 Pour utiliser le pré-filtrage Dynamics CRM il suffit de rajouter l’alias de la table comme ceci :

   

SELECT           

accountcategorycodename,accountclassificationcodename, accountnumber, address1_city,address1_country, address1_line1, address1_postalcode, address1_telephone1,businesstypecodename, customertypecodename, name, accountid  

FROM     

FilteredAccount AS CRMAF_FilteredAccount

Il ne nous reste plus qu’à publier le rapport via l’interface web et le rapport est prêt à être utilisé comme n’importe quel rapport standard Dynamics CRM avec son interface de filtrage simple à utiliser :

Prochainement

Après vous avoir donné un bref aperçu du développement SSRS pour Dynamics CRM, dans notre prochain article nous expliquerons comment
développer des rapports faisant appel à des sous-rapports SSRS dans Dynamics CRM.

Les équipes Microsoft Services se tiennent prêtes à vous accompagner tout au long de la mise en place de votre outil CRM. Pour en savoir plus, n'hésitez pas à nous contacter, via notre formulaire de contact ou à l'adresse servicesfr@microsoft.com.