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

EPM (Hyperion) Discussion :

R�cup�ration de donn�es Essbase en Excel VBA


Sujet :

EPM (Hyperion)

  1. #1
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut R�cup�ration de donn�es Essbase en Excel VBA
    Bonjour,

    Je cherche � recuperer les donn�es d'un cube Essbase afin de les ins�rer par la suite dans un tableau Excel. Pour cela je me sers de VBA et des macros dedi�es � Essbase.

    Je ne connais pas grand chose � Essbase, mais j'ai d�j� pas mal d'experience en VBA.

    Pour commencer j'ai r�ussi � me connecter � mon cube gr�ce � la fonction
    EssVConnect. C'est ensuite que les choses se corsent

    Je pensais utiliser la fonction EssVRetrieve mais je ne comprend pas comment celle-ci fonctionne. En effet, elle me demande une plage alors que je ne connais que les axes de mon cubes (cycle, periode, client, devise, produit et centre). De plus celle-ci ne semble pas renvoyer des valeurs en soit mais une entier pour verifier si l'instruction c'est bien deroul�!

    Je suis donc un peu perdu et aurais besoin d'un peu d'aide. Deja savoir si la fonction EssVRetrieve est bien celle que j'utiliserais et comment � partir de mes axes r�cuperer les donn�es dans le cube.

    PS: Si vous voulez voir le peu de code que j'ai pour le moment (connection, recuperation des libell�s des Axes et deconnection) veuillez me le faire savoir.

    En esperant un coup de pouce de votre part
    Bonne journ�e.

    chipss,

  2. #2
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    J'ai trouv� la fonction EssVCell qui me permet de r�cuperer les donn�es en mettant la liste des axes souhait�. Mais celle-ci ne me permet que de r�cuperer les valeurs une � une, ce qui n'est pas l'id�al pour mon cas car j'ai pr�s de 200 valeurs � extraire!

  3. #3
    Membre �clair�
    Homme Profil pro
    Certifi� Oracle Essbase/Planning
    Inscrit en
    Juin 2002
    Messages
    42
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Certifi� Oracle Essbase/Planning

    Informations forums :
    Inscription : Juin 2002
    Messages : 42
    Par d�faut
    Bonjour,

    une fois ta feuille connect�e � un cube, tu peux utiliser la fonction suivante pour faire un retrieve de toute la feuille :

    x = EssVRetrieve(Null, Null, 1)

    1er argument : nom de la feuille (null = feuille courante)
    2�me argument : nom de la plage de cellules (null = toute la feuille)
    3�me argument : 1 = pas de lock des cellules


    => Il est pr�f�rable d'�viter d'utiliser plusieurs fois le EssVCell dans une m�me feuille car chaque utilisation revient � un faire un retrieve pour obtenir la valeur d'une seule cellule, ce qui est tr�s consommateur en ressources syst�me.


    voila voila

  4. #4
    Membre tr�s actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en Business Intelligence
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par d�faut
    Bonjour,

    S'agit-il d'automatiser l'extraction de donn�es sans format particulier? Dans ce cas pour quoi ne pas passer par un report script?

    Je t'invite � jeter un coup d'oeil � l'API Essbase, utilisable en VBA.

    Voici la fonction permettant d'ex�cuter un rapport :
    http://docs.oracle.com/cd/E12825_01/...htm?launch.htm

    Voici la fonction permettant de g�n�rer et d'ex�cuter un rapport � la vol�e :
    http://docs.oracle.com/cd/E12825_01/...f/mavfrepo.htm

    Voici la doc au sujet des report script :
    http://docs.oracle.com/cd/E12825_01/...mands_chap.htm

    exemples : http://docs.oracle.com/cd/E12825_01/...es_rwriter.htm

  5. #5
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    Bonjour,

    Tout d'abord merci de vos r�ponses.

    Asphp j'ai bien conscience que l'utilisation de EssVCell n'est pas des plus optimal mais c'est la seul technique que j'ai trouv� pour r�cuperer les donn�es du cube. En effet, j'avais d�j� la fonction EssVRetrieve(Null,Null,1) me permettant de faire un Retrieve sur toute la feuille. Sauf que je ne comprend pas vraiment ce que vous appelez un 'Retrieve' et je ne comprend pas comment r�cuperer les donn�es une fois celle-ci r�alis�. La fonction me rend en effet un Integer suivant comment la fonction a r�agi, et non des donn�es brutes de mon cubes.

    Sroux je cherche simplement a r�cuperer les donn�es contenus dans mon cube pour les ins�rer dans un reporting financier! Je vais jetter un coup d'oeil aux fonctions que tu m'as conseill� et je te dis si cela semble pouvoir m'aider

    Merci encore.
    Bonne fin de journ�e,

    Chipss

  6. #6
    Membre �clair�
    Homme Profil pro
    Certifi� Oracle Essbase/Planning
    Inscrit en
    Juin 2002
    Messages
    42
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Certifi� Oracle Essbase/Planning

    Informations forums :
    Inscription : Juin 2002
    Messages : 42
    Par d�faut
    Pour voir le retrieve :

    1. Dans une feuille Excel, cr�e un bouton.
    2. Sur le clic de ce bouton, met le code VBA suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Private Sub CommandButton1_Click()
    x = EssMenuVRetrieve
    End Sub
    3. Connecte ta feuille � un cube Essbase

    4. Clic sur le bouton : un retrieve va se produire dans la feuille.
    Deux situations peuvent alors se pr�senter : soit ta feuille contient les dimensions du cube et alors les donn�es seront rafraichies ; soit ta feuille est vide et le retrieve va ramener par d�faut toutes les dimensions au niveau le plus haut.

    Tu peux ensuite aller + loin avec la fonction EssVRetrieve en choisissant des plages de donn�es pour faire des retrieves sur des parties de feuille.

  7. #7
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    D'accord. Et donc pour recuperer les donn�es je navigue dans mon cube avec des Retrieve et ensuite je recupere les donn�es que je veux avec un simple data = Range(xx).value?

    Pour le coup je trouve que EssVCell est bien plus intuitive pour faire �a. Apr�s si tu me dit que cela va �tre plus long � l'execution je vais essayer de faire comme tu me conseilles

    Sroux j'ai regard� un peu ce que tu m'as conseill� mais je n'ai pas compris grand chose. Et comme mon maitre de stage m'a conseill� d'utiliser EssVRetrieve je pense que je vais plutot utilis� cette fonction. Mais merci quand m�me de t'�tre pench� sur mon probl�me!

    Chipss,

  8. #8
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    Une petite question : EssMenuRetrieve() et EssVRetrieve(Null,Null,1) sont equivalentes?

  9. #9
    Membre tr�s actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en Business Intelligence
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par d�faut
    je cherche simplement a r�cuperer les donn�es contenus dans mon cube pour les ins�rer dans un reporting financier
    Dans ce cas le plus simple consiste � pr�parer une restitution � la main, via l'add-in excel dans un ou plusieurs onglets. Il s'agit ensuite de faire une proc�dure qui s�lectionne chacun des onglet et qui effectue ensuite un EssMenuRetrieve() ou un EssVRetrieve(), qui sont �quivalents. Dans ce cas j'opterai pour EssMenuRetrieve qui simule l'action du menu (Essbase / retrieve).

    Cet exemple est d'ailleurs d�taill� dans la bible Essbase, chap Essbase et Visual Basic, Atelier : un bouton pour rafraichir tous les onglets (page 625).

  10. #10
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    Citation Envoy� par sroux Voir le message
    Dans ce cas le plus simple consiste � pr�parer une restitution � la main, via l'add-in excel dans un ou plusieurs onglets. Il s'agit ensuite de faire une proc�dure qui s�lectionne chacun des onglet et qui effectue ensuite un EssMenuRetrieve() ou un EssVRetrieve(), qui sont �quivalents. Dans ce cas j'opterai pour EssMenuRetrieve qui simule l'action du menu (Essbase / retrieve).
    Je suis desol� mais je n'ai absolument rien compris :/ Qu'est ce qu'une restitution � la main?

  11. #11
    Membre �clair�
    Homme Profil pro
    Certifi� Oracle Essbase/Planning
    Inscrit en
    Juin 2002
    Messages
    42
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Certifi� Oracle Essbase/Planning

    Informations forums :
    Inscription : Juin 2002
    Messages : 42
    Par d�faut
    Si tu as fais l'exemple dans Excel, le clic sur le bouton d�clenche un Retrieve de la feuille enti�re. Si dans cette feuille, tu as une requ�te Essbase o� tu as choisi une valeur pour chaque dimension, les donn�es seront rafra�chies.

    Exemple sur cette copie d'�cran :
    10, 15, 20 sont les valeurs de l'indicateur "vente" issues du Retrieve pour le croisement des dimensions temps (jan, fev, mar), g�o (france), devise (local), scenario (realise), produit (tele) :







    Citation Envoy� par Chipss Voir le message
    D'accord. Et donc pour recuperer les donn�es je navigue dans mon cube avec des Retrieve et ensuite je recupere les donn�es que je veux avec un simple data = Range(xx).value?

    Pour le coup je trouve que EssVCell est bien plus intuitive pour faire �a. Apr�s si tu me dit que cela va �tre plus long � l'execution je vais essayer de faire comme tu me conseilles

    Chipss,

  12. #12
    Membre tr�s actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en Business Intelligence
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par d�faut
    Chipps ne serait-ce pas � ton "ma�tre de stage" de te montrer au moins les fondamentaux avant de t'envoyer en aveugle sur ce sujet...?

  13. #13
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    D'accord je pense avoir compris. Mais pour obtenir un cube sous cette forme tu as utils� d'autres fonctions qu'un simple EssVRetrieve nan? Genre je pense nottament a des EssVZoomIn ou encore des EssVKeepOnly...

    Enfin par exemple supposons que je veuille recuperer la valeur de Janvier, je fait un simple copier/coller de la valeur dans mon tableau?

    Merci encore de prendre un peu de temps pour m'aider.

    Chipss,

  14. #14
    Membre confirm�
    Inscrit en
    Ao�t 2010
    Messages
    168
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2010
    Messages : 168
    Par d�faut
    Malheureusement, il se sert de Essbase de fa�on mannuel uniquement. Et n'a donc pas forcement de connaissances tr�s pouss�es en VBA/ESsbase...

    Citation Envoy� par sroux Voir le message
    Chipps ne serait-ce pas � ton "ma�tre de stage" de te montrer au moins les fondamentaux avant de t'envoyer en aveugle sur ce sujet...?

  15. #15
    Membre �clair�
    Homme Profil pro
    Certifi� Oracle Essbase/Planning
    Inscrit en
    Juin 2002
    Messages
    42
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Certifi� Oracle Essbase/Planning

    Informations forums :
    Inscription : Juin 2002
    Messages : 42
    Par d�faut
    Dans mon exemple, j'ai saisi directement dans Excel une valeur pour chaque dimension en page (france, local, realise, tele), en colonne (jan, fev, mar), et en ligne (vente).

    Avec cette disposition sous forme de tableau multi-dimensionnel, Essbase va r�cup�rer la valeur de ce croisement � la suite d'un retrieve.

    Apr�s avec VBA et les fonctions Essbase, tu peux r�cup�rer dynamiquement les valeurs de chaque dimension.


    Citation Envoy� par Chipss Voir le message
    D'accord je pense avoir compris. Mais pour obtenir un cube sous cette forme tu as utils� d'autres fonctions qu'un simple EssVRetrieve nan? Genre je pense nottament a des EssVZoomIn ou encore des EssVKeepOnly...

    Enfin par exemple supposons que je veuille recuperer la valeur de Janvier, je fait un simple copier/coller de la valeur dans mon tableau?

    Merci encore de prendre un peu de temps pour m'aider.

    Chipss,

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 54
    Par d�faut re
    Bonjour tout le monde,

    asphp pourrais tu me filais le code pour le bouton retrieve.
    Je te remercie beaucoup
    bonne journ�e

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. extraction de donn�es xml vers excel (VBA)
    Par gibba88 dans le forum Macros et VBA Excel
    R�ponses: 0
    Dernier message: 25/04/2012, 11h33
  2. R�cup�ration de donn�es Word dans Excel en VBA
    Par infoexcel dans le forum Macros et VBA Excel
    R�ponses: 16
    Dernier message: 14/01/2009, 10h01
  3. R�cup�ration de donn�es entre fichiers Excel
    Par SlySylvain dans le forum Macros et VBA Excel
    R�ponses: 5
    Dernier message: 09/01/2009, 13h35
  4. Comment �crire dans une base de donn�es ODBC via Excel (VBA)
    Par Shark777 dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 30/04/2008, 04h56
  5. erreur de conexion a une base de donne�s access avec excel(vba)
    Par leo13 dans le forum Macros et VBA Excel
    R�ponses: 15
    Dernier message: 27/11/2006, 09h09

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