|
Forums, dernières contributions
Lister tous les objets d'un rapport webi par le sdk
Bonjour Fabrice,
Je confirme, c'est impossible à réaliser en VBA et .Net.
Il faut utiliser le ReportEngine SDK qui n'est disponible qu'en Java.
Il vous faudra ouvrir chaque document avec le SDK (DocumentInstance.openDocument()) , parcourir les dataproviders de chacun des documents (doc.getDataproviders()), parcourir les objets du résultats (Dataprovider.getQuery().getResultObject(index)) mais aussi parcourir les filtres (Dataprovider.getQuery().getCondition())c'est là qu'est la partie la plus compliquée car ceux-ci sont stockés sous forme d'arbres (dans le ConditionContainer) et le principe de parcours via le SDK n'est pas simple au premier abord.
Vous trouverez toute la doc de ce SDK ici :
http://devlibrary.businessobjects.com/BusinessObjectsXIR2SP2/en/en/RE_SDK/resdk_java_doc/doc/resdk_java_apiRef/index.html
Cordialement,
Joël Da Costa
Bonjour Fabrice,
J'avais tenté la même chose de mon côté et il me semble qu'en vba je n'arrivais pas a récupérer l'ID d'un objet dans l'univers, j'avais été obligé d'utiliser comme clé le trio nom de l'objet - chemin complet de la classe de l'objet - type de l'objet.
C'est relativement pénible.
Cependant vous avez une autre méthode pour obtenir la liste de tous les objets d'un univers, toujours en passant par le ReportEngine java sdk.
Au lieu d'ouvrir un report existant, créez un nouveau rapport en sdk en java, et créez un nouveau dataprovider et une nouvelle requête sur l'univers en question.
Et vous avez accès au dictionnary complet de l'univers, c'est a dire tous les objets disponibles, avec leur ID (DataSourceObject ID).
Vous pourrez ainsi vous faire un fichier (ou une table) avec la liste de tous les objets de l'univers, et un fichier (ou une table) avec la liste de tous les objets utilisés par vos requêtes.
En revanche il vous sera impossible d'accéder au contenu des objets (par exemple la fonction de répartition, le mapping avec la colonne de la Base de données) ces informations restent la 'propriété' du sdk designer en java.
Perso dans l'outil que j'avais développé, mon algo sortait la liste des tous les univers disponibles, créait une query sur chaque univers et j'allais remplir une table avec toutes ces infos. Puis je scannais tous les reports webi, je les ouvrais un par un pour obtenir la liste des objets utilisés par les reports pour alimenter un certain nombre d'autres tables.
Et par dessus tout ça un univers qui attaquait ces tables et permettait de faire tout sortes d'analyses.
Cordialement,
Bonjour,
Je vous remercie pour toutes ces explications. Je vais malheuresement devoir utiliser la clé : nom de l'objet - chemin complet de la classe de l'objet - type de l'objet car je dois remonter certaines informations 'propriétaire' du sdk Designer.
L'outil que vous avez développer semble interressant, est-il possible d'en avoir une copie (fabrice.sentenac@gmail.com)?
En vous remerciant pour toutes ces informations.
Cordialement,
Fabrice
Bonjour Fabrice,
Concernant l'outil, désolé mais c'est impossible, ce développement a été réalisé dans le cadre de mon précédent emploi, le code est donc la propriété de mon précédent employeur qui le 'commercialise' d'ailleurs dans le cadre de mission de conseil.
Je ne peux donc vous le transmettre, cependant je suis toujours dispo pour vous renseigner / aider si vous avez des questions.
Cordialement,
J. Da Costa
|