Documentation du mode Portail de FormPublisher

Le dialogue portail JWayPortal

Les URLs employées pour solliciter un formulaire FormPublisher permettent de choisir un mode portail plutôt qu'un autre lors d'une des étapes principales du cycle de vie de celui-ci.

Ainsi les étapes principales se traduisent par une action particulière au niveau de l'URL d'appel :

  • activation : action=login

  • sauvegarde : action=save

  • validation : action=valid

A l'action retenue est associée différents paramètres qui vont indiquer les comportements à prendre par FormPublisher :

  • formulaire sur lequel porte la demande : documentId=<identifiant jxml>

  • type de contenu à produire : mediaType=< {ji_html,jr_pdf, jr_html, jr_jxml}>

  • ji_html : html en mode dynamique interview

  • jr_html : html en mode dynamique mais report

  • jr_jxml : jxml en mode dynamique

  • jr_pdf : pdf en mode dynamique de type report

Tous ces types de contenu ne sont pas par défaut disponibles pour un document dans une publication.

En effet, lors de la phase de publication FormPublisher va analyser les liens existants de sorte à générer uniquement  les contenu demandés explicitement.

  • espace où mettre les données : sds=<nom de l'espace>

  • données issues de ces espaces pour produire le contenu dans le type spécifié ids=<nom de l'espace1,...>

L'usage du mode portail JWayPortal implique donc une syntaxe particulière (la version présentée sera  disponible à partir de FormPublisher 1.2a pour les versions précédentes nous contacter) :

  • activation

    (BasicPortal) http://localhost/qualicite/Controler?action=login& documentId=formulaire& mediaType=ji_html& ids=userData%2CdraftData& sds=draftData

    (JWayPortal) http://localhost/qualicite/Controler?action=login& documentId=formulaire& mediaType=ji_html& ids=userData%2CdraftData& sds=draftData&portal=JWayPortal&dialogUSERID=admin& dialogDRAFTID=workspace%3A%2F%2FSpacesStore%2F27007713-23d0-497d-904e-d3459f4c54b3&dialogUrl=http%3A%2F%2Flocalhost%3A8080%2Falfresco%2Fservice%2Flu%2Fjway%2Fjway%3Falf_ticket%3DTICKET_46eb09052a32949e02bd402e5ee3153e4776df94

    Les paramètres importants sont ici dialogUSERID (identifiant de l'utilisateur du côté du serveur de services), dialogDRAFTID (identifiant de la session en cours) et dialogURL (l'URL permettant d'accéder au service) et enfin le paramètre portal permettant de sélectionner le mode portail JWayPortal.

    Ces paramètres vont être utilisés par la partie serveur du formulaire pour dialoguer avec le serveur de services de dialogue.

  • sauvegarder

    (BasicPortal) http://localhost/qualicite/Controler?action=save& documentId=formulaire& mediaType=ji_html& ids=userData%2CdraftData& sds=draftData

    (JWayPortal) http://localhost/qualicite/Controler?action=save& documentId=formulaire& mediaType=ji_html& ids=userData%2CdraftData& sds=draftData& portal=JWayPortal

  • validation

    (BasicPortal) http://localhost/qualicite/Controler?action=valid& documentId=formulaire& mediaType=jr_pdf& ids=userData%2CdraftData&sds=draftData

    (JWayPortal) http://localhost/qualicite/Controler?action=valid& documentId=formulaire& mediaType=jr_pdf& ids=userData%2CdraftData& sds=draftData& portal=JWayPortal

    Il est possible d'ajouter le paramètre dialogMAKE à l'url de validation.

    Si ce paramètre n'a pas de valeur, le pdf ne sera pas créé.

    S'il a la valeur pdf, le pdf sera généré et enfin s'il contient une autre valeur le comportement suivant sera adopté :

    Si dialogMAKE contient la valeur word, on va chercher la classe suivante,

    lu.jway.webapp.builder.WORDBuilder pour créer un fichier de sortie. Il est ainsi théoriquement possible de produire différents formats documentaires en sortie de FormPublisher.

Le dialogue portail JWayPortal se traduit sous forme d'échanges par le biais du protocole HTTP et des méthodes GET et POST de demandes auxquelles il sera répondu un messages XML.

Les demandes émises par la partie serveur du formulaire prendront la forme suivante :

  • activation :

    (GET) http://localhost:8080/alfresco/service/lu/jway/jway?action=getData& userID=admin& draftID=workspace://SpacesStore/27007713-23d0-497d-904e-d3459f4c54b3& formID=qualicite& alf_ticket=TICKET_1eafecdfe62666237fc30307f8968a017265ce9e

  • sauvegarde

    (POST) http://localhost:8080/alfresco/service/lu/jway/jway?action=saveData& userID=admin& draftID=workspace://SpacesStore/27007713-23d0-497d-904e-d3459f4c54b3&formID=qualicite&  alf_ticket=TICKET_1eafecdfe62666237fc30307f8968a017265ce9e

    Ainsi que dans le corps de l'envoi (multipart/form-data)  un paramètre draftData contenant un dataStore.

  • validation

    (POST) http://localhost:8080/alfresco/service/lu/jway/jway?action=validForm&userID=admin& draftID=workspace://SpacesStore/27007713-23d0-497d-904e-d3459f4c54b3& formID=qualicite&alf_ticket=TICKET_1eafecdfe62666237fc30307f8968a017265ce9e

    Ainsi que dans le corps de l'envoi (multipart/form-data)  un paramètre draftData contenant un dataStore et un second pdfData contenant le pdf produit.

    A noter que suivant la valeur de dialogMAKE, ce dernier paramètre peut ne pas exister (si dialogMAKE est vide) ou contenir autre chose que un pdf.

Les réponses produites par le composant serveur vont donc se traduire par une enveloppe XML (encodée en UTF-8 et indiqué comme tel dans l'en-tête HTTP au niveau du CHARSET) particulière de la forme :

  • Enveloppe XML

    <?xml version="1.0" encoding="UTF-8"?>

    <PortalControlerAnswer>

        <userData><!-- un contenu --></userData>

        <draftData><!-- un contenu --></draftData>

        <alertMessage><!-- un contenu --></alertMessage>

        <redirectURL><!-- un contenu --></redirectURL>

    </PortalControlerAnswer>

Suivant les étapes principales du cycle de vie, certaines parties de cette enveloppe vont changées :

  • activation

    les éléments userData et draftData vont contenir des données au format dataStore pour pré-remplir le formulaire.

    alertMessage peut contenir une information qui suivant la configuration de l'interface du formulaire sera affichée ou non.

  • sauvegarde

    les éléments userData et draftData seront ignorés.

    alertMessage peut contenir une information qui suivant la configuration de l'interface du formulaire sera affichée ou non.

    redirectURL peut contenir une URL vers laquelle l'utilisateur sera redirigé à l'issu de la sauvegarde.

  • validation

    les éléments userData et draftData seront ignorés.

    alertMessage peut contenir une information qui suivant la configuration de l'interface du formulaire sera affichée ou non.

    redirectURL peut contenir une URL vers laquelle l'utilisateur sera redirigé à l'issu de la sauvegarde.

Il existe différentes implémentations du composant serveur de dialogue portail JWayPortal et ce dans différents langages de Java à PHP en passant par Grails.

JWay a pour sa part développer un tel composant s'intégrant dans Alfresco (nous contacter pour de plus ample information).

A noter qu'il est possible de traiter d'autres formats XML que celui de dataStores  conetnus dans l'enveloppe XML en entrée du dialogue portail JWayPortal.

Cela peut se faire en implémentant un filtre de données sous forme d'une classe  Java  dans le package  lu.jway.webapp.ds et ayant comme nom celui de la racine du flux XML à traiter  [E]lement root name + "Filter"  et qui étend la classe lu.jway.webapp.ds.Filter.

Le processus d'importation ainsi créé va traiter le flux de sorte à produire une structure de données JIL en correspondance avec la classe Filter étendue.