Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/09/2011, 17h59   #1
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 697
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : juin 2004
Messages : 697
Points : 871
Points : 871
Par défaut Chemin d'un fichier à plat [Birt 2.5]

Bonjour,
J'importe dans un rapport les données d'un fichier csv situé dans le dossier du rapport.
Mais je suis obligé de lui spécifier le chemin absolu, ce qui risque de poser quelques problèmes en déploiement Est-il vraiment impossible de spécifier un chemin relatif, ou suis-je passé à côté de quelque chose ?

Merci d'avance de votre aide.
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 10h08   #2
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Tu peux lui donner un chemin relatif mais il faut que le resourcePath corresponde à ce que tu veux.
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 10h41   #3
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 697
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : juin 2004
Messages : 697
Points : 871
Points : 871
Merci beaucoup, BiM. Je ne suis pas sûr de tout comprendre .

1/ Cela signifie-t-il que mon fichier à plat doive se trouver dans le dossier défini par le resourcePath, ou bien que mon chemin relatif doive prendre pour base le resourcePath ?

2/ Comment puis-je connaître le resourcePath ? Puis-je le modifier ? Avec quelles conséquences ?
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h39   #4
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Bonjour,

Moi je charge des fichier CSV avec la façon suivante :

J'utilise la classe Edition : http://business-intelligence.develop...eneration_j2ee

Comme suit :

Citation:
Map<String, Object> maListeDeParametres = new HashMap<String, Object>();
String cheminCSV="Dossier dans lequel son présent les CSV";
maListeDeParametres.put("cheminCSV", cheminCSV);
Edition ed;
try {
ed = Edition.getInstance();
ed.init(rapportFileName,
"/sortie.pdf", maListeDeParametres, RenderOption.OUTPUT_FORMAT_PDF, Locale.FRENCH.toString());
ed.run();
} catch (BirtException e) {
e.printStackTrace();
}
Dans les paramètres de mon rapport j'ai ajouté un paramètre : "cheminCSV" de type String.
De plus dans le data source de mon CSV : dans Property binding ---> Home folder j'utilise le paramètre "cheminCSV" de la façon suivante : params["cheminCSV"].value

J’espère que ça vous aideras.
vOnYuRi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h14   #5
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
Hello,

Citation:
1/ Cela signifie-t-il que mon fichier à plat doive se trouver dans le dossier défini par le resourcePath, ou bien que mon chemin relatif doive prendre pour base le resourcePath ?
Le chemin relatif doit prendre pour base le resourcePath.

Citation:
2/ Comment puis-je connaître le resourcePath ? Puis-je le modifier ? Avec quelles conséquences ?
Avec le birt viewer, c'est un paramètre à renseigner dans web.xml:
Code :
1
2
3
4
5
	<!-- Resource location directory. Defaults to ${birt home} -->
	<context-param>
		<param-name>BIRT_RESOURCE_PATH</param-name>
		<param-value></param-value>
	</context-param>
Avec les API c'est un paramètre à renseigner à la création du moteur Birt

Code :
1
2
3
 
EngineConfig config = new EngineConfig(); config.setResourcePath(MybirtResourcePath);
...
Il n'y a pas de conséquence particulière à le modifier, si ce n'est qu'il est partagé par tous les rapports du moteur: si tu changes le resource Path avec un répertoire particulier toutes les ressources des rapports doivent se trouver dans l'arborescence de ce répertoire.

Bon courage A+
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h53   #6
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 697
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : juin 2004
Messages : 697
Points : 871
Points : 871
Merci à tous les deux pour vos réponses;

vOnYuRi, mes rapports s'éditent via le Birt-Viewer, du coup, si je ne me trompe, ta méthode ne marchera pas pour moi.

donino, merci pour ces détails. Encore une question :
- Comme je préférerais ne pas toucher au Resource_path chez les clients, dans le Birt Viewer, quel est le Resource_Path par défaut ? J'ai lu quelque part que c'était webinf, ailleurs que c'était birt-viewer, mais mes essais avec ces deux hypothèses n'ont rien donné.

Merci d'avance
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h27   #7
Invité de passage
 
Inscription : avril 2008
Messages : 15
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 15
Points : 4
Points : 4
Citation:
Envoyé par rsc Voir le message
vOnYuRi, mes rapports s'éditent via le Birt-Viewer, du coup, si je ne me trompe, ta méthode ne marchera pas pour moi.
J’édite mon rapport grâce au Birt Report Design et je le lance avec la classe java précédente.
Dans le rapport j'utilise des paramètres, dont le lien des fichiers flat.
vOnYuRi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h28   #8
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
La doc du birt viewer indique "The default value is the web application root folder", ce qui correspondrait donc au dossier d'install de deploiement. Mais j'avoue que c'est flou, et qu'il n'est finalement pas certain qu'un fichier source soit considéré comme une ressource classique.
Don si tu ne souhaites pas modifier ce paramètre, tu devrais essayer de simplement mettre ce fichier csv dans le répertoire de ton rapport, donc par défaut ${birt home}/report, même si le chemin a été mis en dur dans le designer.

Fais un essai et dis nous si ça fonctionne dans ton contexte. Si ça ne marche pas il faudra peut être envisager une solution comme celle de vonYuri, avec un paramètre éventuellement caché.
donino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 17h50   #9
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 697
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : juin 2004
Messages : 697
Points : 871
Points : 871
Ca ne marche pas en le mettant dans le dossier du rapport. Il cherche bien à construire le chemin depuis le resource_path. Dans le designer, c'est simple, c'est le dossier de l'exe birtdesigner. Mais dans le Viewer

Pour identifier le RESOURCE_PATH, j'ai eu l'idée d'utiliser GetResourcePath d'EngineConfig. Mais quelle clause import ou importPackage faut-il pour pouvoir l'utiliser dans un script JS à l'intérieur du rapport.
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 08h45   #10
BiM
Modératrice
 
Avatar de BiM
 
Femme
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
Inscription : janvier 2005
Messages : 7 299
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 26
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

Informations forums :
Inscription : janvier 2005
Messages : 7 299
Points : 8 650
Points : 8 650
Il faut le setter AVANT l'exécution du rapport, en le passant en paramètre, je crois que c'est __resourcePath si tu utilises la WebViewer.
__________________
__~{@ BiM - Modératrice "Business Intelligence" @}~
Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
___________.~{@ Lapine crétine @}~
BiM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 09h04   #11
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
Bonjour, je reviens sur ce problème, je viens de tester une solution simple et élégante pour le résoudre.

Tout d'abord je confirme que le resource_path par défaut du viewer est bien le répertoire root de l'appli web, on peut le visualiser avec par exemple un "dynamic text" au début du rapport, avec pour contenu l'expression:

Code :
"Le Resource_Path est: "+reportContext.getAppContext().get("birt.viewer.resource.path");
Donc voici la démarche:
- Créer un répertoire "csv" à la racine de l'application web birt, y copier le(s) fichier(s) csv
- Dans le designer, aller dans le datasource du fichier csv, puis:
Property bindings -> Home folder -> entrer l'expression:
Code :
reportContext.getAppContext().get("birt.viewer.resource.path") +"/csv";
Le fichier est maintenant accessible et le rapport fonctionnera sous birt viewer. Pour qu'il fonctionne aussi dans le designer, il faut également créer le répertoire csv dans le resource_path par défaut, qui est le workspace (et non pas le répertoire contenant birt.exe).

A+
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/09/2011, 14h12   #12
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 697
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : juin 2004
Messages : 697
Points : 871
Points : 871
Merci ! Ca marche !
Je ne connaissais pas le GetAppContext. On peut trouver quelque part la liste des messages (comme "birt.viewer.resource.path") qu'on peut lui passer ?
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 17h44   #13
Membre confirmé
 
Homme
Consultant en Business Intelligence
Inscription : mai 2009
Messages : 186
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence

Informations forums :
Inscription : mai 2009
Messages : 186
Points : 289
Points : 289
Citation:
Envoyé par rsc Voir le message
On peut trouver quelque part la liste des messages (comme "birt.viewer.resource.path") qu'on peut lui passer ?
on peut le savoir grâce à l'expression:
Code :
reportContext.getAppContext().toString();
Pas grand chose d'intéressant à part le resource path et bien sûr la requête HTTP, qui permet d'accéder à moultes infos.
donino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/10/2011, 09h05   #14
rsc
Membre émérite
 
Avatar de rsc
 
Homme
Développeur informatique
Inscription : juin 2004
Messages : 697
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 61
Localisation : France, Côte d'Or (Bourgogne)

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

Informations forums :
Inscription : juin 2004
Messages : 697
Points : 871
Points : 871
__________________
Roland
rsc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h24.


 
 
 
 
Partenaires

Hébergement Web