All posts by Jean-Christophe Kermagoret

01Juil/18

Introduction à CMIS

CMIS est le langage de choix pour requêter une gestion documentaire. En effet, ce langage, proche de SQL, utilise les concepts proches des bases de données. CMIS est un standard mais, bien sûr, chacun a développé un sous-ensemble de fonctions supplémentaires en dehors du standard. Cependant, c’est mieux que rien…

Ainsi, pour récupérer la liste des documents dont le nom contient la chaine DAT et qui sont stockés dans la sous arborescence “sites/test”, il faudra taper la requête suivante :

select * from cmis:document
where cmis:name like '%DAT%'
  and contains ('PATH:"//app:company_home/st:sites/cm:test//*"')

Navigateur de noeuds

Les habitués d’Alfresco auront remarqué que le chemin fait référence à un répertoire stocké dans un site…

Dans mon cas, en tapant la requête dans le navigateur de noeuds d’Alfresco j’obtiens le résultat suivant :

CMIS Workbench

Afin de découvrir Alfresco d’un point de vue CMIS (nom des propriétés notamment), je vous invite à télécharger CMIS Workbench. Il vous permettra de mieux comprendre le fonctionnement de CMIS :

  • Navigation dans le repository et découverte des propriétés CMIS
  • Exécution d’une requête CMIS depuis une fenêtre de console

CMIS Workbench est disponible à l’adresse suivante :

Navigation dans le repository et découverte des propriétés

Exécution d’une requête CMIS

Conclusion

Un standard riche, simple à utiliser de par sa proximité avec le SQL, une fois qu’on a, comme d’habitude, intégré quelques subtilités (notamment les D: et P: pour spécifier les types et aspects… 😉

Bon tests !

18Mai/18

Ouvrez simplement votre entrepôt Alfresco au grand public

Module de consultation externe simplifié par profil

Blue Search

Introduction

BlueSearch est une application de consultation simplifiée qui permet d’effectuer des recherches « à la google » sur un repository Alfresco. Les recherches effectuées sans authentification sont limitées à des documents « publics » et ne ramènent que des documents accessibles par l’utilisateur « public ».

Les recherches peuvent également être réalisées avec authentification ; elles sont alors réalisées sur l’ensemble des documents accessibles par l’utilisateur authentifié.

Suite à la recherche, les résultats peuvent être affinés grâce la sélection de facettes. Les documents peuvent être prévisualisés, téléchargés, étudiés dans le détail et partagés via un lien par mail ou sur les réseaux sociaux quels qu’ils soient (twitter, pinterest, facebook…).

Les principaux écrans de cette application peuvent être facilement personnalisés via des fichiers css directement accessibles par l’administrateur de l’application ou par un prestataire d’une agence de communication.

Application de consultation

Spécifications fonctionnelles

Cas d’utilisation

@TODO

Rôles

L’application est composée de 2 modules :

  1. l’application de consultation simplifiée ;
  2. l’application de configuration.

Elle peut être accédée par 3 rôles :

  • un rôle public : une authentification automatique et transparente est réalisée par l’application. Les utilisateurs n’ont généralement que des droits de lecture, de consultation et de téléchargement ;
  • un rôle authentifié : l’utilisateur s’authentifie à l’aide de son identifiant et de son mot de passe. Il a les droits correspondant à son degré d’habilitation quelle que soit l’application utilisée ; il accède généralement à l’application de consultation simplifiée mais il peut également accéder à l’application Alfresco Share native s’il a besoin de l’ensemble des fonctionnalités disponibles ;
  • un rôle d’administrateur fonctionnel : l’utilisateur s’authentifie à l’aide de son identifiant et de son mot de passe. Il a les droits correspondants à son degré d’habilitation. Il accède à l’application uniquement via Alfreco Share natif.

Plateformes de consultation

Les plateformes de consultation se divisent en :

  • Ordinateurs de bureau ;
  • Tablettes ;
  • Smartphones.

Cette application de consultation a été développée pour les ordinateurs de bureau. Elle peut être consultée sur une tablette et un smartphone mais son ergonomie n’a clairement pas été pensée pour ces derniers.

Il serait intéressant de développer un module pour tablette et smartphone.

Architecture

Diagramme d’architeture

L’architecture de la solution est la suivante :

@TODO

Fonctionnalités techniques

Les fonctionnalités suivantes sont implémentées :

  • Interface d’administration de l’application
  • Authentification automatique
  • Pages personnalisables
    • Pages html statiques
    • Fichiers css statiques
    • Personnalisation des informations à afficher

Interface d’administration de l’application

Une IHM spécifique est disponible. Elle correspond à l’application Alfresco Share native. Elle permet de :

  • créer le compte public
  • modifier les pages personnalisables

Authentification automatique

L’accès à quelque page que ce soit au niveau de l’application Alfresco nécessite obligatoirement une authentification. BlueSearch authentifie automatiquement l’utilisateur sans saisie d’aucun mot de passe. Les documents qui peuvent être recherchés ou accédés sont limités par les droits de l’utilisateur choisi pour l’authentification automatique.

Ce mécanisme pourrait être étendu très simplement afin de s’authentifer avec diffférents utilisateurs selon divers critères (son adresse IP – interne/externe, l’heure, le temps qu’il fait… :-).

Pages personnalisables

L’application peut être personnalisée au niveau des pages html statiques suivantes :

  • formulaire de recherche : construction totale de la page ;
  • mentions légales : construction totale de la page ;
  • contact : construction totale de la page.

L’application peut également être personnalisée au niveau des fichiers css statiques qui permettent d’adapter la présentation des pages dynamiques :

  • home.css : pour personnaliser la présentation globale des pages statiques ;
  • delib.css : pour personnaliser la présentation de la page détail.

Fonctionnalités

L’application est constituée des pages suivantes :

  • Page de recherche à la google
  • Page de liste de résultats
  • Page de recherche avancée
  • Page de détails

Page de recherche à la google

Cette page permet de rechercher le repository à partir d’un ensemble de mots-clés comme sur Google, Bing, Yahoo…

Page de liste de résultats

Cette page s’affiche suite à une recherche « à la google » ou suite à une recherche avancée.

Par défaut, seuls 20 documents sont affichés. Il est possible de « scroller » en bas de page pour afficher 20 nouveaux résultats… Dans la pratique, l’utilisateur sélectionne souvent une facette afin d’affiner sa recherche.

Téléchargement d’un ou plusieurs documents

L’utilisateur peut télécharger un document avec les actions suivantes :

  • Cliquer sur Actions ;
  • Cliquer sur Télécharger.

L’utilisateur peut aussi télécharger un ou plusieurs documents :

  • Sélectionner plusieurs documents ;
  • Cliquer sur Documents sélectionnés ;
  • Cliquer sur Télécharger un .zip.

Navigation par facettes

Sélection de facettes métier

En cliquant sur une facette métier, la liste des résultats s’affine et se met à jour. Il est possible de sélectionner une autre facette ou de désélectionner une facette.

Prévisualisation du document

En cliquant sur l’icône de « document », la page suivante s’affiche :

Page de recherche avancée

Une page de recherche avancée est disponible. Elle permet de sélectionner plusieurs critères en même temps sur un ou plusieurs champs. Elle renvoie sur la liste de résultats ci-dessus.

Page de détails du document

Partage d’un document

Des actions de partage par mail sont disponibles. Elles créent un message en mode édition dans votre outil de messagerie que l’utilisateur peut personnaliser :

Visualisation des métadonnées

Les métadonnées sont présentées à l’utilisateur sur la page de détails. Ces détails peuvent être cachés/affichés via le fichier css personnalisable delib.css.

Conclusion

BlueSearch permet de valoriser très simplement le contenu public d’un repository Alfresco et d’augmenter très simple votre retour sur investissement.

Pour voir le système en production, je vous invite à consulter le site public suivant :

16Fév/18

Génération d’un paquet SIP conforme au format SEDA 2.0

Introduction

Le projet VITAM propose des outils pour générer des SIP conformes au format SEDA 2.0 à partir d’une arborescence de fichiers.

Si cette fonctionnalité est disponible sur Windows et Linux, il est nécessaire de faire quelques adaptations pour MacOSX.

Adaptations

Installation de siegfried

Le générateur SEDA de VITAM utilise l’application siegfried pour détecter les formats des fichiers à intégrer. Pour cela, il suffit d’installer cette application à l’aide de brew :

brew install siegfried

Modification de run_generate.sh

Vous tentez alors de générer le paquet SIP :

sh run_generate.sh monrepertoire

Il est possible que vous obteniez le message d’erreur suivant :

jck$ > sh run_generator.sh conf
 run_generator.sh: line 4: realpath: command not found
 The given path must be a directory (not a single file):

Pour résoudre ce problème, vous devez installer coreutils :

brew install coreutils

Les outils ainsi fournis sont stockés, pour mon installation, dans le répertoire /usr/local/opt/coreutils/libexec/gnubin. Du coup, il faut modifier run_generator.sh pour lui donner cette information (ligne 4) :

#!/bin/sh
SCRIPT_DIR=$(dirname $0)
if [ "x$1" != "x" ];then
 TARGET_DIR=$(/usr/local/opt/coreutils/libexec/gnubin/realpath "$1")
fi
java -classpath "$SCRIPT_DIR/conf:$SCRIPT_DIR/lib/*" -Dvitam.config.folder=/tmp -Dvitam.tmp.folder=/tmp -Dvitam.data.folder=/tmp -Dvitam.log.folder=/tmp fr.gouv.vitam.generator.scanner.main.SedaGenerator "$SCRIPT_DIR" "$TARGET_DIR"

Utilisation

Il suffit alors de relancer le script run_generator.sh sur le répertoire de votre choix. Et ça marche !

jck$ > sh run_generator.sh monrepertoire
2018-02-16 16:01:25,987 [main] INFO f.g.v.g.scanner.main.SedaGenerator : Generateur SEDA : Beginning of scan of directory /Users/bxml/Documents/opt/local/new-workspaces/vitam/seda/generateur-seda_0.16.0/monrepertoire 
2018-02-16 16:01:26,951 [main] INFO f.g.v.generator.scanner.core.ScanFS : Managing BinaryDataObjects : 455 ms for 3 BinaryDataObjects (time per BDO : 151 ms) 
2018-02-16 16:01:27,085 [main] INFO f.g.v.generator.scanner.core.ScanFS : Writing ArchiveUnits : 127 ms for 5 ArchiveUnits (time per AU : 25 ms) 
2018-02-16 16:01:27,366 [main] INFO f.g.v.g.scanner.main.SedaGenerator : Generateur SEDA : End of scan of directory /Users/bxml/Documents/opt/local/new-workspaces/vitam/seda/generateur-seda_0.16.0/monrepertoire in 1380 ms

Conclusion

Merci Vitam 🙂

18Jan/18
Blog

Présentation de l’outil Alfresco Bulk Export

Alfresco Bulk Export Tool.

Vijay Prince a présenté l’outil Alfresco Bulk Export Tool à la Devcon Alfresco et comment l’utiliser et gérer les exports de données pendant les migrations.
Plusieurs fonctionnalités ont été ajoutées à l’outil afin de rendre son usage plus simple :
[list style=”list12″ color:”#6699ff”]

  • Une interface utilisateur pour superviser l’export et utiliser l’outil
  • Vous pouvez à présent démarrer, stopper et redémarrer l’export via l’interface
  • Vous pouvez choisir une période d’export
  • Vous pouvez ajouter des aspects et des propriétés aux données exportées
  • Vous pouvez mettre à jour les types, les aspects et les propriétés
  • Vous pouvez mettre à jour le préfix du modèle
[/list] L’interface n’est pas très belle mais efficace :

Si vous souhaitez plus d’informations sur ce projet

01Déc/17
Flowable

Installation de Flowable

Introduction

Ce tutoriel décrit comment installer et configurer l’application de BPM Flowable pour stocker les informations de manière permanente, l’installation de base par défaut étant temporaire, vos travaux sont purement et simplement supprimés à chaque arrêt/redémarrage de votre serveur BPM.

Pré-requis

Flowable est une application Java qui stocke les nombreuses informations qu’elle gère dans une base de données relationnelles. Elle a donc besoin d’un moteur de base de données relationnelles, par exemple postgresql ou mysql ainsi que d’un moteur d’exécution tel que Tomcat.

Vous pouvez trouver des informations sur l’installation de ces logiciels sur les sites correspondants.

Installation

Dans un premier temps, téléchargez la dernière version de Flowable. :

  • Double-cliquez sur l’archive flowable que vous avez récupérée. Récupérez les fichiers contenus dans le répertoire « wars » et déposez-les dans le répertoire webapps de tomcat
  • Lancez tomcat en double-cliquant sur ./bin/startup.bat

Vous pouvez alors vous connecter sur l’application flowable :

  • http://localhost:8080/flowable-idm/

Flowable est installé mais cette installation est temporaire : rien de ce que vous ferez ne sera sauvegardé. Il faut donc configurer flowable pour utiliser une base de données et persister les informations.

Configuration et initialisation

Afin de rendre les processus persistants, tout comme les données de configuration telles que les utilisateurs, il est nécessaire de configurer Flowable pour qu’il utilise la base de données que vous avez installée :

datasource.driver=org.postgresql.Driver

datasource.url=jdbc:postgresql://localhost:5432/flowable

Bien sûr, n’oubliez pas de créer la base de données correspondante:-)

Arrêtez et redémarrez Tomcat.

Initialisation

Avant de pouvoir faire quoique ce soit, il vous faut d’abord créer quelques utilisateurs et leur donner les droits nécessaires et suffisants pour pouvoir :

  • administrer flowable ;
  • créer des utilisateurs ;
  • modéliser des applications ;
  • gérer les tâches.

Création des utilisateurs

L’utilisateur par défaut est admin :

  • utilisateur : admin
  • mot de passe : test

Connectez-vous à l’adresse suivante :

Vous arrivez alors sur l’écran suivant :

  • Cliquez sur Créer un utilisateur
  • Saisissez les informations attendues

Dans le cadre de notre tutoriel, je vous invite à créer les utilisateurs suivants, en mettant le même mot de passe que le nom d’utilisateur, et ajoutant @test.org à chaque nom d’utilisateur (pas besoin que l’adresse soit opérationnelle ou même réelle) :

  • Jean-Christophe ELPADRE : directeur / identifiant : jcelpadre
  • Théo LEPREM : directeur commercial / identifiant : tleprem
  • Max LESEC : directeur RH / identifiant : mlesec
  • Lou LADER : directrice SI / identifiant : llader

Création des groupes

Cliquez ensuite sur l’onglet Groupes et créez les groupes suivants :

  • Nom : Administrateurs Alfresco / Identifiant : ADMIN_ALFRESCO
  • Nom : Administrateurs Flowable / Identifiant : ADMIN_FLOWABLE
  • Nom : Direction / Identifiant : DIR_GEN
  • Nom : Direction Commerciale / Identifiant : DIR_CALE
  • Nom : Direction des Ressources Humaines / Identifiant : DIR_RH
  • Nom : Direction du Service Informatique / Identifiant : DIR_SI

Ajoutez ensuite les utilisateurs créés précédemment dans les groupes ci-dessus.

Configuration des privilèges

Pour finir, cliquez sur l’onglet Privilèges :

Et donnez les privilèges suivants :

  • Accéder à l’application de gestion des identités : ADMIN_FLOWABLE
  • Accéder à l’application d’administration : ADMIN_FLOWABLE
  • Accéder à l’application de modélisation : DIR_TRANSVERSE_METIER
  • Accéder à l’application de workflow : DIR_CALE, DIR_GEN, DIR_RH, DIR_SI

Test

Connectez-vous sur l’application http://localhost:8080/flowable-modeler/ avec l’utilisateur jcelpadre et vérifiez que vous avez accès aux fonctions de modélisation :