Comment BIDS R2 peut déployer vers Reporting Services 2008 R1 et R2

Vous êtes vous déjà demandé comment Business Intelligence Development Studio (BIDS) R2 faisait pour faire un rendu ou déployer un rapport R2 en mode SSRS 2008 R1?

Moi oui! Smile

Il faut d’abord savoir ce qui se passe lorsqu’un projet de rapport 2008 R1 est ouvert dans BIDS R2. Celui-ci est converti en projet 2008 R2 et ne peut plus être ouvert avec BIDS R1. Cependant, les rapports R1 ne sont pas convertis en R2 tant qu’ils ne sont pas modifiés en ajoutant des éléments propres à la version R2 (ex. carte ou indicateur).

Ainsi, vous pourriez utiliser BIDS R2 même si votre application SSRS est conçue pour fonctionner avec Reporting Services 2008 R1. Vous pourriez avoir des rapports optionnels (ex. avec des cartes) pour vos clients qui sont en R2.

Voici un diagramme intéressant qui montre le “Workflow”:

Actions Business Intelligence Development Studio sur des éléments

Un même projet de rapport pourrait avoir une configuration qui vise la version 2008 R1 et une autre qui utilise plutôt 2008 R2.

Il y a deux paramètres en lien avec cette fonctionnalité dans Project Propeties:

image

Le paramètre principal est la version cible du serveur SSRS:

image

Évidemment, certaines composantes de rapport (ex. cartes, indicateurs) sont spécifiques à R2. Si celles-ci se retrouvent dans un rapport à déployer vers un serveur R1, c’est la valeur d’un second paramètre qui détermine ce qui se passe au déploiement:

image

Il y a quatre valeurs possibles:

image

Niveau d’erreur

Description

0

Problèmes de génération les plus sévères et inévitables qui empêchent l’aperçu et le déploiement de rapports.

1

Problèmes de génération sévères qui modifient la mise en page de rapport radicalement.

2

Problèmes de génération moins sévères qui modifient la mise en page de rapport de façon significative.

3

Problèmes de génération mineurs qui modifient si peu la mise en page de rapport qu’ils peuvent passer inaperçus.

4

Utilisé uniquement pour la publication d’avertissements.

Microsoft décrit ce qui se passe selon la valeur de ce paramètre:

Lorsque vous essayez d’afficher l’aperçu d’un rapport qui contient des éléments de rapport nouveaux dans SQL Server 2008 R2, tels que les cartes et barres de données, ou de déployer ce rapport, ces éléments de rapport peuvent être supprimés du rapport. Par défaut, la propriété ErrorLevel de la configuration a la valeur 2, ce qui provoquerait l’échec de la génération du rapport si la carte était supprimée. Toutefois, si vous remplacez la valeur de la propriété ErrorLevel par 0 ou 1, la carte est supprimée, un avertissement est émis et le processus de génération continue.

En fait, le schéma RDL n’a pas beaucoup changé entre R1 et R2. Le namespace par défaut est passé de http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition vers http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition, la largeur (Width) ainsi que la définition de l’élément Page qui étaient sous la racine du rapport sont maintenant sous un noeud ReportSection et le Body contient maintenant ReportSections/ReportSection.

C’est plus clair en voyant le code de Microsoft qui effectue la mise à jour d’un rapport R1 vers R2 (merci JetBrains dotPeek):

internal void UpgradeReport(Report2008 report)
{
ReportSection reportSection = new ReportSection();
reportSection.Body = report.Body;
reportSection.Page = report.Page;
reportSection.Width = report.Width;
report.ReportSections = (IList<ReportSection>) new List<ReportSection>(1);
report.ReportSections.Add(reportSection);
report.Body = (Body) null;
report.Page = (Page) null;
report.Width = ReportSize.Empty;
}

Malheureusement je n’ai pas trouvé le code qui fait l’opération inverse, c’est à dire prendre un rapport R2 et le transformer en rapport R1 tout en indiquant la liste des avertissements / erreurs qui sont survenues.

Dans une prochaine entrée de blogue, je présenterai du code qui permet de le faire via des manipulations de DOM.

Si quelqu’un a trouvé le Dll et la fonction de Microsoft qui fait cette opération, je suis intéressé!

Références

Génération de rapports dans Business Intelligence Development Studio

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s