Articles

MezzoAutomator v0.3

MezzoAutomator

J’ai terminé la première phase de développement de MezzoAutomator.Cet outil permet de gérer le transfert de fichiers vers Mezzoteam, pour traiter des cas d’emploi du genre remontée automatique dans Mezzoteam de courrier entrant scanné.
Dans cette première version, vous trouverez les fonctionnalités suivantes :

  • Connecteur d’entrée
    • Scan périodique d’un répertoire
  • Connecteurs de sortie
    • Transfert du fichier vers un dossier Mezzoteam
    • Transfert du fichier vers un document existant
    • Création « statique » d’un nouveau document et transfert du fichier (même paramétrage pour tous les fichiers)
    • Création « dynamique » d’un nouveau document et transfert du fichier (paramétrage variable d’un document à l’autre)

Le paramétrage de MezzoAutomator s’effectue au travers d’un fichier de configuration au format XML, facilement éditable. La description du format et des exemples de fichier de configuration sont disponibles dans l’archive du produit ; reportez-vous au fichier readme.txt.

Je reste à l’écoute de vos remarques et suggestions !

Télécharger MezzoAutomator

MezzoAutomator, un projet OpenSource pour Mezzoteam

GitHubJe commence ces jours-ci un projet Open Source dont l’objet est d’automatiser le dépôt de fichiers / la création de documents dans Mezzoteam, à partir de sources diverses (par exemple des fichiers déposés dans un répertoire).

Ce projet est constitué de deux sous-projets :

  • MezzoAutomator, qui comprend la partie fonctionnelle du projet
  • MezzoObject, qui est une bibliothèque d’accès aux API Web Services de Mezzoteam.

Le tout est à consulter sur github.com, à l’adresse suivante : github.com/enetter

Pour l’instant, rien n’est fonctionnel ;-). Gardez un oeil sur ce blog, je vous préviendrai quand il y aura quelque chose de concret à se mettre sous la dent !

PS : ce sera aussi pour certains l’occasion de se mettre sur git. En deux mots, c’est svn mais où chaque copie serait un repository indépendant… Brillant, et de plus développé par Linus Torvalds !

Récupérer la liste des espaces de travail

recupwsPour ce nouvel épisode de notre série sur l’utilisation des services Web dans Mezzoteam, nous allons apprendre comment récupérer la liste des espaces de travail de Mezzoteam auxquels l’utilisateur courant a accès. En effet, Mezzoteam fonde les principes de sa gestion de la sécurité et le calcul des droits des utilisateurs à l’intérieur d’un espace de travail. Toute action (récupération de liste de documents, création de document, attachement de fichiers, workflows…) s’effectue une fois que l’utilisateur a changé d’espace de travail et que Mezzoteam a pu calculer ses droits spécifiques.

La plupart clients riches Mezzoteam affichent donc, une fois la connexion établie, la liste des espaces de travail de l’utilisateur, afin que celui-ci puisse ensuite naviguer vers l’espace de travail souhaité.

Pour cet exercice, nous allons partir de l’exemple que nous avions créé à l’épisode précédent. Comme nous l’avions vu alors, après la connexion de l’utilisateur, Mezzoteam calcule une clé de session (SessionKey) qui va nous servir pour identifier la session de l’utilisateur courant dans toutes ses actions sur Mezzoteam.

Nous allons utiliser cette clé de session pour initialiser un nouveau service web, le service directory.

Le service web Directory
Le service web Directory permet au développeur de manipuler les objets suivants dans Mezzoteam :

  • Espace de travail (objet Worksapce)
  • Utilisateur (objet User)
  • Groupe (objet Group)
  • Organisation (objet Organization)

Pour chacun de ces objets, on trouve des méthodes pour en récupérer la liste, créer de nouveaux objets, en supprimer, etc.

Créons donc notre nouveau service web :

// Création d'un objet Directory
directory myDirectoryWs = new directory();

// On passe la clé de sécurité calculée lors de la connexion
myDirectoryWs.CredentialSoapHeaderValue = new CredentialSoapHeader();
myDirectoryWs.CredentialSoapHeaderValue.SecurityKey = myLogon.SecurityKey;

Pour récupérer la liste des espaces de travail, nous utiliserons la méthode WorkspaceGetList, qui récupère la collection d’espaces de travail de l’utilisateur dont on passe l’identifiant en paramètre.

// Création d'un objet Workspace[] pour récupérer la liste des espaces de travail
Workspace[] myWorkspaceList;
// La méthode de récupération de la liste des espaces de travail prend comme paramètre
// le login de l'utilisateur
myWorkspaceList = myDirectoryWs.WorkspaceGetList(myDirectoryWs.UserGetFromLogin(textBox1.Text));

Il existe d’autres méthodes pour récupérer une liste d’espaces de travail, et en particulier des méthodes retournant des objets DataSet plutôt qu’une collection d’objets Workspace. Ces méthodes sont à priori moins coûteuses lors de l’exécution, et ej vous encourage à les utiliser plutôt que celles qui retournent les objets métier de Mezzoteam. Néanmoins, pour ce premier exemple, nous irons à la facilité !

Nous afficherons ensuite certaines des propriétés des epsaces de travail sur les 5 premiers espaces de travail de l’utilisateur, en procédant de la manière suivante :

// On calcule le nombre d'espaces de travail récupérés
int rowCount = myWorkspaceList.Count();
// On limite a au plus 5
if (rowCount > 5)
{
rowCount = 5;
}
// On affiche les informations de titre et de volume des 5 premiers
// espaces de travail
for (int iCounter = 0; iCounter < rowCount - 1; iCounter++)
{
MessageBox.Show("Titre : " + myWorkspaceList[iCounter].Title + " Volume de fichiers :" + myWorkspaceList[iCounter].TotalFileSize.ToString());
}

Je vous encourage à explorer les propriétés d’un espace de travail en utilisant le mode pas à pas de Visual Studio. Dans le prochain épisode, nous verrons comment naviguer vers un espace de travail, et en récupérer la liste des documents.

Le code de cet épisode est disponible ici.

Le logiciel comme service (SaaS) et la fidélité des clients.

Paul Wilkinson de BIW, dans un de ses recents articles de ses récents articles, donnait comme argument pour l’adoption du concept de logiciel comme service le fait que les clients pouvaient plus facilement changer de prestataire si la qualité de son service (ou le montant de son abonnement) venait à les décevoir. Dans mon commentaire, je faisais remarquer à Paul que cette migration n’était pas forcément une partie de plaisir, en tout cas pour ce qui concerne notre secteur d’activité, la construction.

Je prends un exemple récent ; un de nos clients publics nous a récemment renouvelé sa confiance, en choisissant Mezzoteam comme plateforme de travail collaboratif pour ses projets. Il était déjà abonné à l’une de nos solutions précédentes, avec des projets importants, difficiles, utilisant cette cette plateforme. Migrer aurait voulu dire reformer tous les utilisateurs à l’utilisation d’un nouveau produit, et risquer de donner un angle de réclamation aux entreprises, dans une industrie où tout prétexte est bon pour aller à la réclamation. D’un commun accord, nous avons décidé de laisser les projets en cours se terminer sur leur plateforme actuelle, et de démarrer les nouveaux projets sur Mezzoteam.

On peut imaginer que si un client qui continue à travailler avec le même prestataire, préfère ne pas migrer ses projets, ce serait encore plus difficile dans le cas d’une migration forcée, devant se faire entre deux fournisseurs différents, dont les produits ont forcément des spécificités particulières en terme de gestion des données…

Utiliser le module de Production de Mezzoteam 2.8 sous Ubuntu

D’accord, Prosys ne supporte pas officiellement Mezzoteam sur d’autres plateformes que Windows. Mais grâce au support de Firefox, ça ne marche pas si mal que ça sous Mac OS X et sous Linux. On peut même faire marcher le module de production de Mezzoteam 2.8, et lancer automatiquement les applications associées aux fichiers d’un espace de travail.

Mezzoteam sous Ubuntu 8.04

Mezzoteam sous Ubuntu 8.04

Lire la suite