Utilisation du client Web Services SOAP/WSDL Plone

Présentation

Un client de connexion aux Web Services SOAP/WSDL a été développé pour faciliter l’intégration d’une application Plone appelante.  Ce module, imio.pm.wsclient permet donc à une application Plone souhaitant créer/obtenir de l’informations/… sur un point dans un iA.Délib distant de le faire de manière transparente :

  • un panneau de configuration permet de spécifier les données de connexion et les données à envoyer au iA.Délib

  • une action est automatiquement configurée pour créer un point dans iA.Délib

  • une zone affiche localement les informations récupérées dans iA.Délib si disponibles

Techniquement, ce client SOAP/WSDL utilise la librairie python suds pour accéder au iA.Délib distant.

Panneau de configuration

Le client se caractérise principalement par un panneau de configuration :

image199

La partie configuration permet de définir d’une part les informations de connexion, et d’autre part, comment vont être extraite de l’application Plone courante, les informations à envoyer à iA.Délib.  Sur chaque zone de la configuration, un message d’aide explique comment l’utiliser.

  • URL du fichier WSDL iA.Délib : il s’agit de l’adresse de iA.Délib sur lequel est activé les Web Services.  Pour obtenir l’url du WSDL, il suffit d’ajouter à la suite de l’URL de base de iA.Délib, le nom du fichier WSDL “ws4pm.wsdl”

  • Timeout de connexion à iA.Délib : entrez le timeout de connexion à iA.Délib.  Si sur une page de l’application appelant iA.Délib, des informations doivent être affichées, ceci permet de ne pas attendre plus que le nombre de secondes définies si éventuellement le iA.Délib distant était inaccessible momentanément.

  • Nom d’utilisateur à utiliser dans iA.Délib : nom d’utilisateur pour la connexion.  L’utilisateur doit pouvoir accéder à suffisamment de fonctionnalités dans iA.Délib en fonction de ce que l’application appelante souhaite pouvoir envoyer.  Il n’est pas nécessaire qu’il s’agisse d’un administrateur dans iA.Délib mais un utilisateur ayant le rôle “MeetingManager”.  Il peut être utile d’ajouter un utilisateur dans iA.Délib destiné à être utilisé uniquement pour la connexion Web Services.  Par exemple ajouter un utilisateur “wsmanager” dans iA.Délib et lui donner le rôle “MeetingManager”.

  • Mot de passe à utiliser dans iA.Délib : mot de passe de l’utilisateur renseigné au champ précédent.

  • Condition d’affichage du viewlet : le viewlet est la zone dans l’application appelante dans laquelle seront affichées les informations relatives à iA.Délib s’il y en a.  Vous pouvez définir ici une condition qui permet de cacher la zone à certains utilisateurs par exemple.  Par défaut, si laissée vide, la zone s’affichera si la page appelante est liée à un point dans iA.Délib, elle ne sera pas affichée si aucune information provenant de iA.Délib n’est à afficher.

  • Correspondances pour les champs : pour chaque données à envoyer, vous pouvez définir une expression TAL qui fait correspondre à l’élément à envoyer, la valeur à utiliser pour un champ dans iA.Délib.  Ceci signifie que pour le contexte appelant, il faudra définir quelles méthodes retourne les données à envoyer dans iA.Délib.

  • Correspondances pour les nom d’utilisateurs : comme les noms d’utilisateurs dans l’application appelante peuvent être différents des noms d’utilisateurs dans iA.Délib, ce champ permet de définir une correspondance de noms d’utilisateurs.  Par facilité, essayez de définir dans l’application appelante et dans iA.Délib des utilisateurs avec la même logique : par exemple première lettre du prénom + nom le tout en majusucule : “Philippe Durant” devenant “pdurant”…

  • Actions générées : permet de générer une action dans l’application appelante qui pourra être facilement déclenchée (apparaîtra dans le menu déroulant “Actions”).  Cette action peut être en outre protégée par une condition, une permission, et renseignera aussi dans quelle configuration de séance le point sera créé

A l’enregistrement de la configuration, les actions disponibles dans l’interface utilisateur et basées sur le champ “Actions générées” sont mises à jour : créées, modifiées ou supprimées.

Envoyer vers iA.Délib

Actions générées

Lorsque la configuration a été sauvegardée et que des « Actions générées » ont été définies dans le Panneau de configuration, celle-ci apparaîtront, dans le menu “Actions” à l’endroit souhaité, dépendant de la condition et de la permission renseignées dans l’action générée.  Ici par exemple, deux actions ont été définies :

image200

Envoyer vers un type de séance

Au clic sur une de ces actions, un formulaire apparaît et montre à l’utilisateur les données qui vont être envoyées vers iA.Délib pour créer le point.  En fonction de ce qui est défini dans la configuration dans la partie « Correspondance pour les champs » dans le Panneau de configuration, les données sont extraites de l’élément appelant pour être envoyées à iA.Délib.  Un écran intermédiaire montre à l’utilisateur ce qui va être envoyé à iA.Délib :

image201

En fonction de la manière dont le type de séance (Conseil Communal dans notre exemple) est configuré dans iA.Délib, divers champs peuvent apparaître ou non.  C’est le cas par exemple du champ “Catégorie” qui n’apparaît que si la configuration de séance dans iA.Délib utilise les catégories…

Un fois envoyé dans iA.Délib, les infos provenant de iA.Délib sont affichées au dessus de l’élément depuis lequel le point a été créé.

Visualiser le point créé dans iA.Délib depuis l’application appelante

Une fois que le point a été créé dans iA.Délib, un lien est gardé avec ce dernier et les informations concernant ce point sont affichées dans une zone (viewlet) au dessus de l’élément ayant déclenché l’envoi du point.  Dans notre exemple il s’agit d’une page par défaut (Document) d’un site Plone de base, mais il pourrait s’agir d’un type de contenu spécifique d’une application (urban, iA.Délib, GED, …).

Lorsqu’un élément est lié à un(des) point(s) dans iA.Délib, les informations concernant ce(s) dernier(s) sont affichées :

image202

Différentes informations clés sont affichées et un lien direct vers le point dans iA.Délib est disponible en cliquant sur le “Titre”.  Il est en outre possible de voir directement dans quel état est le point, s’il est dans une séance et de générer un document bureautique lié (Projet de délibération, Délibération, …)