Business Geek

Aller au contenu | Aller au menu | Aller à la recherche

lundi 17 novembre 2008

Erreur Migration Reporting Services 2005 vers 2008

Une petite mésaventure qui est arrivé à un de mes collègues lors de la migration de SQL Server 2005 à SQL Server 2008. Tout a bien fonctionné, la migration se passe sans encombre, tous les services repartent, les applications fonctionnent très bien sauf 1 rapport qui affiche cette erreur :

Index was out of range. Must be non negative and less than the size of the collection. Parameter name index

Nous avons donc réouvert le rapport sous Visual Studio pour voir ce qui pouvait clochait et pas de problème apparent, le rapport n'affichant même pas d'erreur dans la prévisualisation (qui n'est tout à fait pas le même moteur de rendu).

Après quelques périgrinations sur le web, je trouve un problème similaire avec des largeurs de colonnes dans la CTP2 (https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=338777&wa=wsignin1.0). Le problème était (celui-ci étant corrigé dans la RTM) que dans certains cas, l'éditeur mettait des -1 comme valeur d'attribut, ce qui n'est pas interprété par le renderer qui lève une exception.

Nous avons donc cherché s'il n'y avait pas de -1 dans le fichier RDL résultant de la migration et nous en avons trouvé. La migration ajoute des valeurs par défaut mais le moteur de rendu HTML de Reporting Services 2008 ne sait pas les traiter. Il faut donc aller supprimer ces -1 à la main (clic droit->View Code dans l'explorateur de solution).

<ChartArea Name="Default">
 <ChartCategoryAxes>
  <ChartAxis Name="Primary">
   <ChartMinorGridLines>
    <Enabled>False</Enabled>
    <Interval>NaN</Interval>
    <IntervalOffset>-1</IntervalOffset>
   </ChartMinorGridLines>
  </ChartAxis>
 </ChartCategoryAxes>
</ChartArea Name="Default">

Ici, le problème se situait dans les lignes intermédiaires d'un graphique, pourtant désactivées.

 

PS : si vous aussi avez rencontré ce problème, merci de le signaler sur Connect pour une correction plus rapide de la part de Microsoft. Ca se passe ici : https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=382355

 

lundi 10 novembre 2008

Report Builder in-the-Cloud

Lors d'une démo à la PDC, j'ai vu la possibilité de faire des rapports Reporting Services avec des données récupérées depuis SQL Data Services (ie. "dans le cloud").

Cette fonctionnalité est possible grâce aux fonctionnalités d'extensibilité qui existent dans Reporting Services depuis la version 2005. En effet, il est possible grâce aux Custom Data Extensions (CDE) d'ajouter sa propre méthode de récupération de données (un System.Data.DataSet, un composant métier, un webservice, etc.).

Une partie des équipes de SQL Services, affectée sur des labs autour de la nouvelle technologie, nous propose donc une implémentation permettant de requêter des données dans le Cloud. En ajoutant simplement quelques Assemblies dans les répertoires de Report Builder, Visual Studio et Report Server, on dispose donc d'un nouveau type de connexion pour les Data Sources : SQL Server Data Services.

Pour obtenir les DLLs et le quide d'installation : http://sqlserviceslabs.net/Reporting.html

Une fois installé, il suffit de se connecter sur son Authority, de choisir son Container et d'écrire sa requête à la Linq Style :

from e in entities where e.Kind == "Contacts" select e

Note : attention, une erreur de jeunesse certainement, il ne faut pas de retour à la ligne dans la requête

 

Merci à Stella Chan, Lead Program Manager sur Reporting Services chez Microsoft, pour ses réponses. D'ailleurs, je reviendrai bientôt avec un post sur sa session à la PDC (http://channel9.msdn.com/pdc2008/BB26/)

lundi 20 octobre 2008

Report Builder 2.0 est disponible

Je n'ai pas pour habitude de faire juste du relaying de news mais là, je ne peux m'en empêcher.

Report Builder 2.0 est disponible en release !!

Pour le téléchargement, c'est ici : http://www.microsoft.com/downloads/details.aspx?FamilyID=9f783224-9871-4eea-b1d5-f3140a253db6&displaylang=en

Pour ceux qui ne connaissent pas Report Builder, c'est l'outil de création de rapports pour Reporting Sevices à destination des utilisateurs finaux. La version 1.0 livrée avec SQL Server 2005 était très limitée ce qui dégradait fortement son intérêt. Cette nouvelle version corrige tous ces défauts et offre un vrai outil de reporting ad hoc.

Report Builder est maintenant iso-fonctionnel avec Visual Studio mais en version bien plus light et au design épuré. Personnellement, je m'en sers même à la place de VS. Pour l'utilisateur final, on créera un modèle d'entités tout prêt afin de masquer la complexité d'un schéma de base de données.

 

Je vous invite à consultez les Webcasts de la Bewise Developer Conference pour voir une démo du Report Builder en action : http://www.bewise.fr/fr-FR/business/DGD/Pages/BDC2008-Webcasts.aspx

dimanche 12 octobre 2008

Reporting Services 2005 et 2008 side by side : No Report Servers were found

Je teste les versions beta de 2008 depuis plus d'un an déjà et je n'ai quasiment pas rencontré de problème d'incompatibilité avec la version 2005. (bon, j'avoue, une fois avec la lecture d'un package SSIS 2008 dans le SSIS Store 2005 mais je l'ai bien cherché :-)).

J'ai refait ma machine récemment pour nettoyer les 3 CTP qui trainaient et ne garder que la version RTM de SQL Server 2008 et une version 2005 car beaucoup de mes clients n'ont pas encore migré. Une fois tout terminé, pour les besoins d'une démo je configure Reporting Services 2008 via l'outil de configuration dédié et là, une erreur inattendue et surtout incompréhensible. A la sélection de l'instance de Reporting Services à paramétrer :

No Report Servers were found. Invalid Namespace.

Même erreur en forçant le nom de l'instance manuellement.

La solution est la suivante (merci Google et Justin King) :

  1. Ouvrez le fichier suivant : C:\Program Files\Microsoft SQL Server\MSRS10.SQL2008\Reporting Services\ReportServer\bin\reportingservices.mof (faites en une copie avant)
  2. Remplacez les références à RS_SQL2008 (ou RS_<le nom de l'instance>) par SQL2008 (ou le nom de votre instance 2008)
  3. Dans une commande DOS, dans le répertoire en question, lancez : MOFCOMP reportingservices.mof

Et voila, vous pouvez relancer le Reporting Services Configuration Manager. Sa requête WMI pour trouver les instances disponibles fonctionnera correctement.

PS : apparemment, cela n'arriverait que sur Vista

jeudi 6 septembre 2007

Le déploiement de rapports sous SSRS

Un article complet et sympathique sur les méthodes de déploiement de rapports sous SSRS (Reporting Services).

Sébastien Pertus, un collègue du pôle DGD (Décisionnel & Gestion de Données) dont je m'occupe chez Bewise, nous présente toutes les façons de passer un rapport en production. Avec cela, je suis sûr que vous trouverez le moyen qui convient le mieux à votre façon de travailler et à votre SI.

L'article est dispo sur le site de Bewise : Déploiement automatisé sous Reporting Services