IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SSRS Discussion :

[SSAS/SSRS] : Cube et RS


Sujet :

SSRS

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut [SSAS/SSRS] : Cube et RS
    Bonjour,

    Petit problème avec l'intégration d'une requête MDX dans RS.
    J'ai donc une requête sur une cube dont le résultat est pour le moment affiché dans une page web et ça marche très bien.
    Cependant j'ai besoin maintenant de faire ça dans un RS.

    Pour commencer j'ai voulu créer un rapport en utilisant une connexion "SQL Server Analysis Services", mais en arrivant sur la requête mdx il me dit qu'il y a un problème de hierarchie... bref qu'il ne peut rien faire.
    En cherchant un peu sur le web, j'ai trouvé qqn qui avait le même problème et microsoft répond : "bug by design"
    Vous me confirmez ?


    Bon, j'me dis que je vais tenter de passer par une assembly et une procédure qui me remonterait ce que je veux puis l'appeler dans mon RS. Je fais ça mais je sais même pas si c'est possible ou si c'est la bonne solution.

    Toujours est il que j'ai créer un projet "SQL Server Project" puis j'ai fait une procédure qui ne fait que renvoyer un entier (c'était pour tester, mais ça aussi c'est déjà une erreur peut être).
    Ensuite je charge l'assembly "myassembly" dans ma base AnalysisServices (quand je fais "détails" sur mon assembly, je vois bien ma méthode).

    Enfin, dans management studio, je fais une requête du genre :
    call myclass.mymethod() on MYCUBE

    Et là il me dit qu'il ne trouve pas ma fonction.

    Voilou, comme vous avez du remarquer, je m'y connais pas trop en SSAS.

    Merci d'avance de votre aide !


    PS : VisualStudio 2008 et Server 2005

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Bon ben je m'auto réponds alors.

    Et d'un il fallait faire un projet class library classique puis mettre ces méthodes. Par exemple, un joli mdx qui renvoi un datatable.
    Ensuite il faut ajouter sur notre base Analysis services la dll de notre assembly.
    Et de deux, pour appeler la méthode il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call NomDeLAssembly.MaMethode()
    et non pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call NomDeLAssembly.MaClasse.MaMethode()
    Ensuite pour SSRS j'ai fait une connexion OleDB avec comme provider Analysis Services puis il suffit de faire le call de ma méthode et bingo.

    voilà, peut être que ça en aidera certain.

  3. #3
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Oui tu as trouvé tout seul Le problème c'est que tu ne devrais pas voir à faire ça... On fait tous du MDX dans RS sans aucun soucis.
    Tu pourrais - par simple curiosité - éclaircir ton

    en arrivant sur la requête mdx il me dit qu'il y a un problème de hierarchie... bref qu'il ne peut rien faire
    Parce que c'est vaguissime!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Bon, je crois que le problème venait du choix de la data source.

    J'avais choisi naïvement "Microsoft SQL Server Analysis Services" et il ne voulait pas de ma requête. (extrait de l'erreur : "The first axis of the query should not have multiple hierarchies....")
    Par contre en faisant "OleDb" puis le provider AS, ma requête fonctionne effectivement ! bien qu'il me dit qu'il ne peut pas parser la query, mais il affiche quand même le résultat... bref...
    ça m'a quand même servi de passer par une méthode et de savoir comment ça marche vu que j'ai du bricolage à faire pour construire la mdx à éxécuter.

    Du coup c'est pour quoi "Microsoft SQL Server Analysis Services" ? Pour faire des trucs pas compliqués ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    De nouveau : bonjour !

    J'arrive au bout de mon projet mais j'ai des problèmes d'authentification (il me semble).

    Lorsque je fais une "preview" depuis studio, cela interroge mon cube déployé sur un serveur et ça se passe très bien. Par contre, lorsque je déploie ensuite mon rapport et que j'essaye de le visualiser sur le site de reporting services voilà les erreurs que j'ai :

    - avec cette chaine de connexion OLE DB :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=MSOLAP.3;Data Source=MON_SRV;Initial Catalog=MA_BASE;
    message d'erreur :

    Cannot create a connection to data source 'MyDataSource'.
    Cannot connect to the server 'MON_SRV'. The server is either not started or too busy.


    - et en ajoutant dans la chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Provider=MSOLAP.3;Data Source=MON_SRV;Initial Catalog=MA_BASE;integrated security=SSPI;impersonation level=Impersonate;
    message d'erreur :

    Cannot create a connection to data source 'MyDataSource'.
    Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.


    Je précise que mon poste, le server RS et le server AS sont sur des machines différentes mais sur le même domaine. Aussi, afin d'écarter les causes de mon problème, mon rs est vide avec un dataset qui fait une requête très simple sur mon cube :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with member [Measures].[MyColumn] as "HelloWorld"
    select  [Measures].[MyColumn] on 0
    from MON_CUBE
    Là je sèche... et bien entendu, ça me bloque vraiment. Aidez moi !


    Merci d'avance !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 81
    Points : 58
    Points
    58
    Par défaut
    Allez, une auto réponse de plus.
    C'est plus un post, ça devient un blog là lol.

    Bon, complétement désespéré, j'ai été jusqu'à installer office excel sur le serveur pour voir si la machine arrivait à se connecter au cube.

    Je teste, ça marche. Je repars alors sur RS et pour montrer à un collègue qui venait me soutenir j'ouvre mon rapport et là : MIRACLE !
    ça marche.

    Donc en installant excel et les composants partagés ça a du installer qqchose qui a du lui plaire. Maintenant je procède a la désinstallation d'office bout par bout pour essayer d'identifier.

    EDIT : C'était tout bête. Mon serveur était un 2003 donc il y avait installé (par défaut j'imagine) OLE DB Provider Analysis Services 8.0. Et moi je voulais une connexion OLE DB Provider Analysis Services 9.0. En installant Excel et les composants de connexion, il a du mettre le dernier provider du moment.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SSAS&SSRS][2k5] function mdx UNION
    Par hiline6 dans le forum SSRS
    Réponses: 7
    Dernier message: 12/12/2008, 06h55
  2. Réponses: 4
    Dernier message: 24/11/2008, 13h13
  3. [SSAS][2k5] : Cube virtuel
    Par sefaxe82 dans le forum SSAS
    Réponses: 5
    Dernier message: 16/04/2008, 17h18
  4. [SSAS][2k5] Cube et Rapports
    Par walli_g dans le forum SSAS
    Réponses: 1
    Dernier message: 27/07/2007, 19h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo