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
Partager