| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
mosfet37
Inscrit le: 17 Avr 2008 Messages: 11 Localisation: CHAETAU DU LOIR
|
Posté le: Dim Mai 17, 2009 9:30 am Sujet du message: Génération automatique de documents |
|
|
Bonjour,
Je voudrais savoir s'il est possible de lancer une génération de manière logicielle à partir d'une requete HTTP sur un SCENARI Server. Le but étant d'exécuter une génération automatique après une mise à jour d'un fichier, ou de déclencher une génération en javascript (requête ajax).
Florent _________________ Dir. Technique PMB Services |
|
| Revenir en haut |
|
 |
sylvain.spinelli
Inscrit le: 03 Mai 2006 Messages: 495 Localisation: Kelis
|
Posté le: Dim Mai 17, 2009 5:58 pm Sujet du message: Génération automatique de documents |
|
|
Bonjour,
Oui, il est possible de lancer une génération par une requête http.
La requête est constituée d'un flux xml décrivant la ou les générations
(ou autre actions) à effectuer. Le service renvoit un identifiant de
traitement, gr' auquel il est possible de réinterroger le serveur
régulièrement pour être informé de l'état d'avancement de la t'e en
cours. En fin de traitement, le résultat est retourné sous forme d'un
flux xml qui reprend la structure xml des t'es demandées enrichies des
différents statuts. Une dernière requête de cloture doit alors être
envoyée au serveur.
Initialement cette implémentation a été faite pour être interrogée par
une task ANT susceptible d'interroger un serveur scenari distant. Si
votre contexte appelant peut exploiter un contexte java, ce serait le
plus simple.
Dans la version 3.7 (en cours de dev), il sera possible d'appeler le
serveur en forçant le mode synchrone, ce qui simplifiera les appels par
d'autres biais que la task ANT implémentée. Une seule requête est alors
envoyée au serveur, la réponse est retournée lorsque la génération est
achevée avec le résultat (succès / échec...), c'est plus simple ;)
Dites-nous l'option qui vous intéresse, on vous donnera la marche à
suivre...
Sylvain
(Message envoyé depuis une mailing list SCENARIplatform) |
|
| Revenir en haut |
|
 |
mosfet37
Inscrit le: 17 Avr 2008 Messages: 11 Localisation: CHAETAU DU LOIR
|
Posté le: Lun Mai 18, 2009 6:05 pm Sujet du message: Exactement ce qu'il me faut ! |
|
|
Bonsoir !
Merci pour cette réponse détaillée ! A priori, je n'ai pas accès à un contexte java, je préfère la méthode brute HTTP Pour la prgression, c'est parfait, c'est exactement ce dont j'ai besoin.
J'ai juste besoin des flux pour lancer une génération OpenOffice et HTML pour mon Dokiel PMB !
L'objectif est de faire une petite application Web/Dojo qui permet de déposer des MindMapping Freemind, les transformer en Scenari/Dokiel via XSLT et de générer automatiqement les documents.
Ensuite, un portail permet de consulter le document sous toutes ses formes.
Idéal pour gérer des comptes rendus ou des cahiers des charges !
Florent _________________ Dir. Technique PMB Services |
|
| Revenir en haut |
|
 |
sylvain.spinelli
Inscrit le: 03 Mai 2006 Messages: 495 Localisation: Kelis
|
Posté le: Mer Mai 20, 2009 2:14 pm Sujet du message: Génération automatique de documents |
|
|
Bonjour,
le projet minMapping->Dokiel semble intéressant. N'hésitez pas à nous tenir au courant de vos travaux.
Voilà une petite documentation pour interroger un serveur Scenari distant :
L'URL du service de batch
L'url du service de "batch" de Scenari est : [urlServeurJ2EE]/[webApp]/s/chain/u/batch
En générale la webapp posède le nom : SCENARIserver[major][medium]
Ce qui donne par exemple (cela dépend de votre config) : http://127.0.0.1:8080/SCENARIserver36/s/chain/u/batch
Paramétrage du service de batch
Pour des questions de sécurité, toutes les publications générés par le service de batch seront impérativement placées dans un dossier paramétré lors de la déclaration du service de batch.
Lors de la construction de votre webApp par l'utilitaire de Scenari, dans le build.property, vous pouvez décommenter ces lignes et paramétrer le chemin :
###
# Configuration du mode batch
# server.conf.batch=true
# server.conf.batch.destPathRoot=${server.work.path}/batchGen
Requête d'appel
Le contenu de la 1ère requête peut être envoyée par les méthodes http PUT, GET ou POST - Si c'est du PUT, le flux xml est directement dans le contenu
- Si c'est du GET ou du POST, le flux xml doit être dans un paramètre "task"
Schéma Xml de la requête pour lancer des générations
Pour une simple génération voilà la structure xml :
<generate wspCode="" rootItemUri="" destPath="" type="" coalesceIfPending="true"/>
où
- wspCode est le nom de l'atelier à interroger
- rootItemUri est le chemin de l'item racine de la publication. Exemple : /monEspace/monItemRacine.xml (Attention, ce chemin doit toujours commencer par /)
- type est le code du générateur à appeler, c'est à le code qui est spcéfifié dans le .generator de votre modèle dans SCENARIbuilder.
- destPath est le chemin dans le disque dur pour stocker le résultat de la publication. Pour des raisons de sécurité, ce chemin est en relatif par rapport à la racine des publications paramétré dans le service de batch (cf "Paramétrage du service de batch" ci-dessus).
- coalesceIfPending : si true, les reqêtes de génération seront fusionnées si deux appels simultannés de génération sont lancés. (false par défaut)
Si plusieurs génération d'un même item doivent être lancées, ou si des "genDeploy" doivent être enchainées, la syntaxe est :
<generate wspCode="" rootItemUri="" destPath="]
<type code=""/> ### 1er générateur
<type code=""> ### 2ème générateur
<type code=""/> ### GenDeploy du 2ème générateur
</type>
</generate>
Si vous souhaitez lancer plusieurs générations d'items différents dans une même requête :
<sequence haltOnError="false"/>
<generate .../>
<generate .../>
</sequence>
Si @haltOnError est à false, la séquence des générations n'est pas interrompue en cas d'échec d'une génération (true par défaut)
Requête incluant des traitements supplémentaires ANT
Il est possible d'imbriquer des traitements ANT aux générations qui seront exécutés à partir du serveur Scenari dans la requête.
ATTENTION, pour des questions de sécurité, cette possibilité est désactivée par défaut. Elle ne doit être activée que dans un contexte sécurisé. Demandez si cette fonction vous intéresse...
Réponse du serveur lorsque de le traitement est en cours
Si la t'e n'a pas été executée en synchrone et n'est pas achevée lors de la construction de la réponse du serveur, la réponse est de type "text/plain" contenant simplement une chaine de caractère correspondant à un ID du traitement entamé.
Requêtes suivantes de demande du statut du traitement
Pour interroger à nouveau le serveur et connaitre l'état de la t'e en cours, il faut réinterroger la même URL en méthode GET ou POST avec les paramètres suivants :
[urlServeurJ2EE]/[webApp]/s/chain/u/batch?cdaction=GetStatus&taskId=XXXXX
où XXXXX est l'id de la task obtenu précédemment.
Si la t'e n'est toujours pas achevée, la réponse est celle décrite au chapitre "Réponse du serveur lorsque de le traitement est en cours".
Si la tache est achevée, la réponse est celle décrite au chapitre ci-dessous "Réponse du serveur lorsque le traitement est achevé".
Réponse du serveur lorsque le traitement est achevé
Lorsque le traitement est achevé, la réponse est de mime-type "text/xml" et non plus "text/plain". Le flux xml retourné correspond à la requête enrichie de d'attributs d'états indiquant le succès ou l'échec du ou des générations lancées.
Exemple :
<generate wspCode="" rootItemUri="" destPath="" type="" coalesceIfPending="true" status="Finished|Failed"/>
Des balises <error message=""/> peuvent être incluses dans la balise generate si @status="Failed".
Requête de cloture d'une task
Pour purger la task en cours sur le serveur (purge mémoire), il est important de lancer une dernière requete au serveur pour lui indiquer qu'il peut clore cette task.
[urlServeurJ2EE]/[webApp]/s/chain/u/batch?cdaction=Close&taskId=XXXXX
(Message envoyé depuis une mailing list SCENARIplatform)
Dernière édition par sylvain.spinelli le Jeu Oct 01, 2009 6:39 am; édité 1 fois |
|
| Revenir en haut |
|
 |
stephane.crozat
Inscrit le: 27 Juin 2006 Messages: 419 Localisation: UTC
|
Posté le: Mar Mai 26, 2009 9:36 am Sujet du message: Génération automatique de documents |
|
|
Pour information un étudiant de master à l'UTC avait travaillé un peu
dans cette optique pour préparer un travail de scénarisation pour Opale.
Voir "OutStep" sur la page Opale.
http://scenari-platform.org/trac/outstep
Stéphane.
(Message envoyé depuis une mailing list SCENARIplatform) |
|
| Revenir en haut |
|
 |
Franck.Rouze
Inscrit le: 18 Oct 2006 Messages: 324 Localisation: Université Lille 1
|
Posté le: Mer Déc 07, 2011 2:45 pm Sujet du message: |
|
|
Bonjour,
Je suis intéressé par la publi automatique et suis retombé sur l'explication de Sylvain à l'adresse suivante :
http://scenari-platform.org/forum/viewtopic.php?t=1811&highlight=automatique
Est-ce qu'il te serait possible de me dire comment fonctionner avec ant. J'ai tenté quelques tests bêtement via navigateur sur le serveur mais sans succès et comme j'ai accès directement au serveur je pense qu'une tache ant serait plus efficace.
merci d'avance
Franck |
|
| Revenir en haut |
|
 |
antoine.pourchez
Inscrit le: 05 Mai 2006 Messages: 858 Localisation: Kelis - Rouen
|
|
| Revenir en haut |
|
 |
Franck.Rouze
Inscrit le: 18 Oct 2006 Messages: 324 Localisation: Université Lille 1
|
Posté le: Jeu Déc 08, 2011 6:21 pm Sujet du message: |
|
|
Salut Antoine,
Hum ! M'a l'air plutôt sympa ton SCbatchANT !
Je m'y colle très vite.
Merci pour l'info
Franck |
|
| Revenir en haut |
|
 |
Franck.Rouze
Inscrit le: 18 Oct 2006 Messages: 324 Localisation: Université Lille 1
|
Posté le: Jeu Déc 08, 2011 7:06 pm Sujet du message: |
|
|
Salut Antoine,
Super, ça marche nickel !
Franck |
|
| Revenir en haut |
|
 |
antoine.pourchez
Inscrit le: 05 Mai 2006 Messages: 858 Localisation: Kelis - Rouen
|
Posté le: Jeu Déc 08, 2011 7:07 pm Sujet du message: Génération automatique de documents |
|
|
Il y a le fichier build.xml à personnaliser. Ce dernier contient divers exemples qui doivent correspondre à ce que tu cherches.
ATTENTION : pense à activer le service « batch » dans ton SCENARIserver :
Fichiers build.property, propriétés server.conf.batch=true et server.conf.batch.destPathRoot=${server.work.path}/batchGen
Toine
-------------------- m2f --------------------
(Message envoyé depuis le forum http://scenari-platform.org/forum)
http://scenari-platform.org/forum/viewtopic.php?p=10983#10983
-------------------- m2f --------------------
(Message envoyé depuis une mailing list SCENARIplatform) _________________ Antoine POURCHEZ
Kelis |
|
| Revenir en haut |
|
 |
|