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

SDK Discussion :

ReportManager.openDocument(ID) - Semble ne pas fonctionner ? [JAVA]


Sujet :

SDK

  1. #1
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut ReportManager.openDocument(ID) - Semble ne pas fonctionner ?
    Bonjour,

    Je cherche à lister tous les rapports d'un dossier racine et à récupérer certaines informations sur ces rapports et sur les éléments qui le compose.
    Jusqu'à maintenant je sais récupérer les rapports qui m'intéresse sous forme d'InfoObject mais si j'ai bien compris ce ne sont pas à proprement parler des documents (que l'on pourrait ouvrir, lire voir éditer) mais de simples objets avec des propriétés, c'est bien mais pas complet. Je cherche à récupérer des informations, si elles existent, tels que la/les requêtes (au format texte), les différents objets (=champs) présent dans le rapport, les variables (et leurs codes?), le nom du/des onglets, etc.

    Je ne suis pas sûr de la version du SDK que j'utilise, je pense que c'est la 4.0, car j'ai récupéré les .jar dans ce dossier (SAP BusinessObjects Enterprise XI 4.0).

    Voilà ou j'en suis
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    public static void OpenReporting(IInfoObject infoObject)
    	{
    		try{
    		 reportEngines = (ReportEngines) enterpriseSession.getService("ReportEngines");
    		 ReportEngine wiRepEngine = (ReportEngine) reportEngines.getService(ReportEngines.ReportEngineType.WI_REPORT_ENGINE);
    		 Integer ID = infoObject.getID();
    		 System.out.println("Opening reporting...");
    	     DocumentInstance widoc = wiRepEngine.openDocument(ID);   
    	     System.out.println("succes: "+widoc.toString());
    	     Reports rapports = widoc.getReports();
    	     for(int i=0;i==rapports.getCount();i++)
    	     {
    	    	 System.out.println(rapports.getItem(0).getName());
    	     }
    	     widoc.closeDocument();
    		}catch(Exception z)
    		{
    			System.err.println(z.getMessage());
    		}
    	}

    Le soucis c'est la méthode openDocument() de la classe ReportEngine, je n'ai pas d'erreur à l'exécution, mon programme tourne toujours mais il ne se passe rien. Je ne peux pas passer à l'instruction suivante.

    Je précise suis dans une étape de recherche et d'analyse, je n'utilise peut-être pas la bonne méthode mais je ne fais que m'inspirer de bouts de codes récupérés sur le web.

    Dans une doc j'ai trouvé cette phrase : "init must be called at least once before openDocument will be called" seulement je ne comprend pas le sens, tous mes objets sont bien instanciés, j'ai pas d'erreur de compilation, je sèche !
    EDIT : La classe ReportEngine dispose bien d'une fonction "init" mais celle-ci est dépreciée et j'arrive pas à l'utiliser

  2. #2
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    D'après mes recherches l'erreur que le rencontre semble provenir du fait que je n'utiliserais pas les bonnes librairies. Les rapports que je cherche à récupérer et analyser via le SDK sont en Webi (BI4.0.7) et les librairies que j'utilise viennent (je pense) du Designer Tools (XI 4.0) ==> En cherchant sur des forums je suis tombé sur un post avec le même soucis, aucun plantage mais le programme stop au moment d'ouvrir le fichier, le gars à résolu son problème en mettant à jour ses librairies.

    Ma question maintenant, ou puis-je récupérer le bon SDK ? J'ai demandé à Google, cherché sur SAP mais je NE TROUVE RIEN C'est un truc de fou, nulle part je trouve cette librairie en téléchargement


    EDIT : BON, après moult investigations, je crois avoir compris. En fait l'API que j'utilise fonctionne pour un BO en 3.1+ mais ne fonctionne plus pour du BO 4.+ source
    Pour du BO 4.+, ce post semble donner la solution, je vais étudier et tester ce code

    Je dois pas être le seul à débuter avec les SDK Business Object, sa servira bien à quelqu'un car j'ai trouvé aucun post équivalent en français

    EDIT: Je n'ai réussi à faire fonctionner aucun code, la manipulation de rapport WEBI 4.0 ne semble plus pouvoir se faire que via un web service (RESTful ?), si j'en crois ceci
    C'est clairement pas aussi facile que je le pensais...

  3. #3
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    BON !

    Après avoir oublié d'arrêter l'exécution de mon programme le temps d'aller manger, je me suis aperçu que la méthode ReportEngine.openDocument(ID) fonctionne ! Seulement, elle met un temps fou à charger le rapport (disons 30"/1h), j'ai essayé d'ajouter un paramètre à l'ouverture afin d'empêcher le raffraichissement :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    OpenDocumentParameters param = new OpenDocumentParameters(); 
    		 param.setIgnoreRefreshOnOpen(true); 
    		 long timerStart = System.currentTimeMillis();
    	     DocumentInstance widoc =  wiRepEngine.openDocument(ID, param);
    	     long timerStop = System.currentTimeMillis();
    	     System.out.println("succes: "+widoc.toString()+"["+(timerStop-timerStart)+"]");

    Mais j'ai pas l'impression que cela change quelque chose, c'est toujours aussi long

  4. #4
    Membre régulier Avatar de StripMat
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 206
    Points : 93
    Points
    93
    Par défaut
    Pour celui qui souhaiterais ouvrir et manipuler les documents business object, voyez du côté de l'API Restful, un web service permettant, avec les bonnes URL, de manipuler nos documents BO via des requêtes Http.
    L'API Java n'est plus maintenue pour les versions 4.+ de Business Object, le web service est plus efficace et offre de nombreuses possibilitées, pour peu qu'on sâche manipuler les requêtes Http et le XML.

    Voir mon autre post ici
    Documentation de l'API Restful ICI

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

Discussions similaires

  1. removeEventListener semble ne pas fonctionner.
    Par sacapuss2 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/07/2011, 18h56
  2. [Security] [Spring-Flex][ACEGI] Semble ne pas fonctionner
    Par arnaud.tlse dans le forum Spring
    Réponses: 0
    Dernier message: 05/08/2010, 16h04
  3. [Thread] interrupt qui semble ne pas fonctionner
    Par Balbuzard dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 05/09/2008, 11h17
  4. clear:both semble ne pas fonctionner
    Par Bayard dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 31/10/2007, 12h14
  5. [firePropertyChange] semble ne pas fonctionner ?
    Par jcodeunpeu dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 19/12/2005, 14h37

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