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

BIRT Discussion :

rapport lancé en batch/shell


Sujet :

BIRT

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut rapport lancé en batch/shell
    Bonjour,
    J’ai créé via BIRT un rapport qui s'appui sur une base oracle, et je souhaiterai le lancer automatiquement toute les semaines/mois, je ne m'y connais pas beaucoup en batch/Shell,...
    J’ai déjà effectué quelques recherches, et j'ai vu que cela nécessité un runtime,... pourriez vous m'en dire plus?

    Merci d'avance.

    ps : mo rapport ne contient aucun code java, je dispose juste d'un rapport.

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    Tout ce que je peux dire c'est que la commande est la suivante : genReport.

    Elle est disponible dans le runtime (dossier Report Engine) et il y a une version Windows (.bat) et une version Unix (.sh). Elle s'utilise de la même manière dans les deux cas.

    Il faut aussi définir la variable d'environnement BIRT_HOME qui contient le chemin du runtime.

    Exemple simple :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    genReport -runrender -output "c:\birt\output.pdf" -f PDF "C:\birt\Hello_World.rptDesign”

    Paramètres de la commande :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    --mode/-m [ run | render | runrender] the default is runrender
    for runrender mode:
    we should add it in the end<design file>
    --format/-f [ HTML | PDF ]
    --output/-o <target file>
    --htmlType/-t < HTML | ReportletNoCSS >
    --locale /-l<locale>
    --parameter/-p <parameterName=parameterValue>
    --file/-F <parameter file>
    --encoding/-e <target encoding>
    Locale: default is english

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    tout d'abord merci pour ta réponse et ta prompitude

    Je vais donc dl le runtime pour voir,... je vais essayer des que j'ai le runtime,...
    Mais n'y à t'il pas moyen de lancer le rapport via un "exe" sur le bureau par exemple? (on clique sur un icone et hop, on nous demande des paramètres et ensuite s'affiche le rapport sans être passé par éclipse).

    J’ai regardé sur le forum, et j'ai vu moultes code java, mais je ne voie pas ou les mettre, ni comment les utiliser, ni avec quoi,...
    je sais, je suis un newbie, mais bon, la je suis en stage, et on me demande ça donc,... Pour tout ce qui est création de rapport, ça va, mais pour l'utilisation,... (Génération automatique, pdf,...)

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bien, tu vas être obligé de créer une petite interface au minimum pour demander à l'utilisateur d'entrer les paramètres. Après tu peux lancer le batch/shell avec les paramètres et c'est parti !

    Tu dois même pouvoir faire ça en HTML ou PHP.

  5. #5
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    hummm, oki oki,... ça je dois pouvoir faire (les interfaces),...
    par contre je vois pas comment lier le rapport à mon interface, qu'elle soit java ou php/html,...

    merci encore

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Soit en ligne de commande, soit en faisant une classe Java.

  7. #7
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    oki oki,...
    pourais tu préciser?
    promis, apres je ne pause plus d'autres questions,...

  8. #8
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Hum, bien, soit tu fais remplir un formulaire par l'utilisateur, il envoie les données, et tu les traites pour les passer en paramètre de la commande (présentée précédemment). Dans l'autre cas (classe Java), je t'invite à consulter un peu le forum et les documentations d'Eclipse

    Bon courage !

  9. #9
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    aba finalement,... j'ai encore une question pour toi BIM (ou quelqu'un d'autre)
    j'ai fait des recherches sur ce que tu m'a dis, et j'ai vu qu'il y avait de code java, et tout et tout,...
    le soucis c'est que je ne vois pas ou le mettre ce code,... dois-je crééer un projet java appart? ou alors ou utiliser la xml source? j'avous que c'est un peu le bazzard dans ma tête,... J'ai du mal à voir concrétement comment faire,...
    je vois très bien ce que je veux faire (enfin dois,... je suis en stage), c'est permêtrer la generation des differents report, que j'ai fais, via une interfaçe web et pour certains les générer automatiquement tout les mois.
    je sais (pense) qu'il me faut le runtime birt pour permettre de lancer le report sans eclipse,... mais pour le reste,... c'est le flou total,...

  10. #10
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Mes questions sont :
    • T'as t'on imposé BIRT ?
    • As-tu un langage web préconisé ?
    • As-tu un serveur web préconisé (IIS, Apache, Websphere, etc.) ?
    • Est-ce un projet interne ?
    • As-tu possibilité de demander l'achat d'un logiciel ?
    • En bref, quels sont les limites à ton projet ?


    Comme ça, on pourra tout mettre au clair...

  11. #11
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    * T'as t'on imposé BIRT ?
    --> oui, et les report sons fait.

    * As-tu un langage web préconisé ?
    --> non, aucun, mon maitre de stage à juste émmie l'idée d'afficher le report via une interface web afin que tout le monde puisse accéder au repports.

    * As-tu un serveur web préconisé (IIS, Apache, Websphere, etc.) ?
    --> non plus,... juste une base de donnée oracle, pour le reste je suppose que c'est à moi de voir.

    * Est-ce un projet interne ?
    --> oui.

    * As-tu possibilité de demander l'achat d'un logiciel ?
    --> la non, c'est pour cela qu'ils on choisit birt,... mais ils ont deja beaucoup de logiciels à leur disposition.

    * En bref, quels sont les limites à ton projet ?
    --> apriori aucune, mis appart l'achat d'un logiciel. Si, le temps (je fini mon stage en fin de semaine prochaine,... ).

    en tout cas merci de répondre à mes questions, c'est vraiment simpas.

  12. #12
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ok, alors je te préconise de leur mettre un petit serveur Tomcat avec le runtime BIRT (Tout ça est gratuit ).

    Ensuite, il faut que tu crées un formulaire en JSP serait bien et très adapté à BIRT.

    Je suppose que tu vas faire plusieurs pages :
    • Une où tu choisis le report à générer
    • Les autres (une au minimum pour chaque report en principe) pour choisir les paramètres de la génération


    D'autre part, du côté service tu auras :
    • Un service de traitement des données avant de les passer en paramètre (un pour chaque report)
    • Un service de génération générique (une seule et unique classe)


    Pour ce qui est de la génération tous les mois, je ne m'y connais pas trop de ce côté là mais je pense que tu devrais te pencher du côté des batchs/shells et ce n'est pas vraiment mon domaine (voir sur les autres forums).

    Hum par contre, j'ai un doute soudain, ton interface permettrait de générer les reports ou juste de les visualiser ?

  13. #13
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Pour tomcat et le runtime, c'est ce que je comptait utiliser!

    pour ce qui est coté client, oui, c'est bien ça.

    Et mon interfaçe permettrait juste de les visualiser (avec les paramètres).

    donc faut que je fasse du jsp,... oki oki, ça devrait aller, ça doit juste être des petites interfaçe simpliste.
    par contre je vois toujour pas comment lier les differents elements?,...

    une fois les paramêtres reçus par l'interfaçe, comment les envoyer au serveur et comment les traiter?
    et commen tensuite afficher le report associé?

    (encore merci)

  14. #14
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    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 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Si tu choisis des paramètres pour ton état, tu fais une génération puis une visualisation (et non une simple visualisation).

    En fait, une fois la JSP validée, les informations sont renvoyées au serveur (j'espère que tu as 2-3 notions de J2EE) qui va dans le service demandé (lors de la validation), ce service te traite les données (par exemple, modifier le format d'une donnée) et surtout préparer la liste de paramètres. A la fin de ce service tu appelles le service de génération avec tous tes paramètres (nom du rptdesign, nom du fichier de sortie, langue, format de sortie, paramètres, etc.) et c'est parti.

    Service de génération (Attention, il y a un chemin en dur, j'avais trouvé un moyen de le récupérer, je le remplacerai ce soir) :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    import java.util.Locale;
    import java.util.Map;
     
    import org.eclipse.birt.core.exception.BirtException;
    import org.eclipse.birt.core.framework.Platform;
    import org.eclipse.birt.report.engine.api.EngineConfig;
    import org.eclipse.birt.report.engine.api.EngineException;
    import org.eclipse.birt.report.engine.api.IReportEngine;
    import org.eclipse.birt.report.engine.api.IReportEngineFactory;
    import org.eclipse.birt.report.engine.api.IReportRunnable;
    import org.eclipse.birt.report.engine.api.IRunAndRenderTask;
    import org.eclipse.birt.report.engine.api.RenderOptionBase;
     
    public class Generation {
    	private static Generation m_Instance = null;
    	private IReportEngine engine;
    	private String realPath;
    	private RenderOptionBase option;
    	private String etat;
    	private String chemin;
    	private Map parametres;
        private Locale locale;
     
    	private Generation() throws BirtException
    	{
    		EngineConfig config = new EngineConfig();
    		realPath = "C:\\Tomcat\\webapps\\Projet";
    		config.setResourcePath(realPath + "WEB-INF/classes/ressources");
    		config.setEngineHome(realPath + "WEB-INF/ReportEngine");	//endroit où se trouvent les librairies du Runtime
    		Platform.startup(config);
    		IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
    		engine = factory.createReportEngine( config );	//engine permet de connaitre et de modifie le fichier .rptdesign
    		option = new RenderOptionBase();
    		option.setOutputFormat(RenderOptionBase.OUTPUT_FORMAT_PDF);	//Format du fichier de sortie
    	}
     
    	public static Generation getInstance() throws BirtException
    	{
    		if (m_Instance == null)
    			m_Instance = new Generation();
    		return m_Instance;
    	}
     
    	public void init(String etat, String chemin, Map parametres, Locale locale)
    	{
    		this.etat = etat;
    		this.chemin = chemin;
    		this.parametres = parametres;
    		this.locale = locale;
    	}
     
    	public void run()
    	{
    		try
    		{
    			IReportRunnable design = engine.openReportDesign(realPath + "WEB-INF/etats/" + etat + ".rptdesign");
    			IRunAndRenderTask task = engine.createRunAndRenderTask(design);		//Crée une tâche afin d'éxécuter le rapport
     
                task.setParameterValues(parametres);
     
    			/* Création PDF */
    			option.setOutputFileName(chemin);	//Nom du fichier de sortie
    			task.setLocale(locale);
    			task.setRenderOption(option);		//Chargement du fichier
    			/* Fin création PDF */
     
    			task.run();							//Création du fichier
    		}
    		catch (EngineException e)
    		{
    			e.printStackTrace();
    		}
    	}
     
    	public void destructeur()
    	{
    		engine.destroy();
    	}
    }

  15. #15
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    oki oki,...

    mais ton code, ou je le met? parce-que dans la wiki eclipse birt, il y a plein de code qui permettent apparement de genérer des rapport, mais je ne sais pas ou les mettrent,... il faut créer un autre projet sous eclipse, creer les classes et tout et tout ou mettre ces codes avec le rapport?

    pour ce qui est du J2EE, je suis en stage de fin de iut info,... donc,...
    mais je me suis documenté par moi même

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

Discussions similaires

  1. Lancé un batch sur fermeture
    Par paselo dans le forum IHM
    Réponses: 1
    Dernier message: 06/10/2010, 17h05
  2. [AC-2007] Comportement bizarre d'un bat lancé par un shell
    Par tibofo dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/01/2010, 21h45
  3. Requête lancée en batch
    Par Jean-Philippe André dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 24/04/2008, 09h22
  4. Batch, Shell et MySQL
    Par Maiku dans le forum Linux
    Réponses: 1
    Dernier message: 12/06/2007, 17h57
  5. mode batch? (shell?)
    Par meathook dans le forum Administration
    Réponses: 1
    Dernier message: 23/01/2007, 08h12

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