Eclipse


Retour d'expérience sur Nuxeo Studio

Nuxeo Studio est une plateforme en ligne fournie par Nuxeo qui a pour vocation d'aider à la personnalisation d'une instance de la GED.

Cet article est donc dédié à un retour d'expérience sur l'outil afin d'aider à son utilisation en prévenant de certains écueils et donner quelques pistes d'améliorations pour toute personne concernée qui me lira ;-)

Création de types de documents personnalisés

Il est relativement aisé de mette en place des nouveaux documents, portant des attributs spécifiques. Il suffit pour cela de déclarer le nouveau document comme étendant par exemple "File", décrire son nouveau schéma (nouveaux attributs) puis redéfinir les vues d'affichage et de création pour accéder à ces nouvelles valeurs :

Pour afficher les nouveaux attributs dans la vue "liste" d'un dossier, il faut créer une nouvelle vue de contenu (ContentView) qui sera appliqué à un nouveau type de Dossier :

La valorisation de cet attribut se fera lors de la création du fichier, avec par exemple le code suivant :

PropertyMap pMap = new PropertyMap();
pMap.set("dc:title", dataFileName);
pMap.set("MyFile:extractionDate", extractionDate);
documentService.createDocument(deptFolder, "MyFile", dataFileName, pMap);

Le seul reproche à faire lors de la création de la ContentView, est l'impossibilité de surcharger une vue existante, par exemple la vue "liste" par défaut d'un dossier, pour y ajouter seulement les colonnes voulues. La mise en place d'une nouvelle vue de contenu impose la définition de toutes les colonnes qui la compose, quitte, comme dans cet exemple, à reproduire à l'identique la vue liste du dossier.

Création d'arborescences personnalisées

Après la création des documents, vient naturellement la question de la mise en place d'une arborescence type pour certains objets, par exemple un Domaine, qui peut être constitué d'une structure prédéfinie lors de son initialisation. Problème majeur ici, il est impossible de définir via Studio plusieurs niveaux de documents!!

La solution de contournement est donc de découper chaque niveau en un nouveau type de document avec des fils directs uniquement. Mais si en plus la structure d'un dossier doit être conditionnée selon là où il est créé (workspace, section...), il vaut mieux s'en remettre à l'API pour créer un client capable de gérer les arborescences "manuellement".

Création de groupes

Une fonctionnalité intéressante de Studio est la création de groupes d'utilisateurs, qui seront ensuite accessibles par défaut sur l'instance personnalisée.

Cependant, comme on le voit sur cette image, même s'il est possible dès cette étape de définir les utilisateurs qui appartiendront à ce groupe, il est impossible de définir des sous-groupes. Or cet aspect est pourtant très important pour représenter les différents niveaux organisationnels d'une entreprise. Une intervention manuelle sera donc indispensable pour hiérarchiser ces groupes, plutôt fastidieux lorsque l'on en dénombre plusieurs dizaines... Et de ce côté, inutile de compter sur l'API Java qui ne propose pas la gestion des groupes (pour des raisons de sécurité, ce qui peut se comprendre).

Enfin, pour aller de mal en pis, après avoir pris la peine de créer tous les groupes métier, on peut s'apercevoir que lors du déploiement de l'extension, qu'il devient impossible pour les utilisateurs de l'entreprise d'accéder à l'application : en effet, Nuxeo ne cherche plus à les authentifier depuis le LDAP de l'entreprise, mais depuis une source SQL locale... Ceci provient du fait que l'extension Studio proposant la création des groupes n'a qu'une vocation de test (!! selon les dire même des développeurs Nuxeo) et a écrasé la configuration initiale de l'instance. Ainsi donc, il n'est pas possible à l'heure actuelle de créer dans Studio une extension de groupes basée sur LDAP...

Définition des droits d'accès

Une des fonctionnalités basique importante d'une GED est l'organisation des accès aux différentes ressources selon les rôles des utilisateurs. Ici encore, un bug (signalé) dans Studio cause la non prise en compte des règles définies sur les éléments de bas niveau dans les arborescences :

Qui plus est, après avoir pris le soin de créer tous les groupes utiles comme vu au point précédent, il n'est pourtant pas possible d'y accéder directement dans l'interface d'attribution des droits d'accès comme on le voit sur l'image précédente. Seul un champ texte attend la saisie du nom du groupe à utiliser... Ne serait-il pas possible de créer une liste déroulante à partir des groupes précédemment définis?? Idem pour les droits : comment savoir quel droit utiliser? Certes, on connait habituellement "Read", "Write" mais le premier piège : "All", qui généralement correspond au regroupement des deux précédents, est en fait dans Nuxeo "Everything"... Et qu'en est-il des autres droits existant ("Manage workflow"...)? Une simple erreur de frappe et la configuration est bancale! Pourquoi ne pas avoir une liste déroulante basée sur l'énumération utilisée dans le code SecurityConstants (seul endroit où l'on trouve la liste de tous les droits d'accès!!!)

Pour conclure, on peut dire avec ce bref tour d'horizon que Nuxeo Studio est né d'une bonne (voire nécessaire) idée, c'est-à-dire l'élaboration d'une plateforme d'aide à la personnalisation d'une instance de la GED, mais il reste encore quelques progrès à faire pour faciliter l'utilisation aux néophytes comme moi qui n'ont aucune autre connaissance de l'aspect technique du système. L'espoir de pour une fois ne pas avoir à mettre les doigts dans le code s'évapore assez vite!


Fichier(s) joint(s) :

3 commentaires: