Faire du publipostage simple

Voici un grand classique des besoins workflow : être en mesure de créer dynamiquement un document contenant des données provenant des formulaires, autrement dit, du publipostage. Nous allons donc voir rapidement comment combiner les fonctionnalités natives de SharePoint et de K2 pour faire cela en quelques clics.

Nous allons parler de publipostage simple, c’est-à-dire que les données doivent être monovaluées.

Il sera dans un 1er temps nécessaire de créer le modèle de document Word, puis ensuite nous pourrons voir comment créer des instances de ce document à la volée.

1. Création du modèle de document

Nous allons tout d’abord créer une bibliothèque de documents SharePoint disposant de métadonnées pour chacune des informations dynamiques qui doivent apparaître dans le document final. voici à titre d’exemple la bibliothèque que j’ai créée pour l’exemple :

Bibliothèque de travail
Bibliothèque de travail

Une fois la bibliothèque créée, vous pouvez aller récupérer le modèle de document Word qui y est attaché. Pour cela, accédez aux paramètres avancés de la bibliothèque, cliquez sur (Edit Template), puis sauvegardez en local ce document en .docx.

Edition du modèle de document
Edition du modèle de document

A présent, vous pouvez créer votre modèle de document à partir de ce fichier .docx. Tous les champs dynamiques sont accessibles via le menu Insert > Quick Part > Document Property.

Composition du document à l'aide des propriétés
Composition du document à l’aide des propriétés

Il ne reste plus qu’à sauvegarder ce document quelque part dans SharePoint. Pour ma part, je vais travailler dans la bibliothèque originale. Je crée donc 2 répertoires dans cette bibliothèque, un pour les modèles de document et un pour les résultats de publipostage.

La bibliothèque de travail
La bibliothèque de travail

2. Automatisation du publipostage

Basculons à présent côté K2.

La 1ère étape consiste à créer un formulaire qui va contenir les champs dynamiques. Je ne vous fais pas l’affront de détailler ce passage : un smartobject avec 6 champs, 1 vue, 1 formulaire, 1 bouton avec une règle qui sauvegarde la saisie du formulaire dans le smartobject et qui déclenche un workflow que j’ai appelé Test Publipostage, en tout originalité. Il doit y avoir une 10aine de clics à faire, guère plus  et ça donne ça :

Le formulaire
Le formulaire

Il ne reste plus qu’à mettre en place le workflow.

J’ai créé le mien avec K2 Five, mais cela fonctionne presqu’à l’identique avec les versions précédentes. J’ai décomposé mon workflow en 2 étapes principales (mais rien ne m’y oblige techniquement parlant – et dans un cas réel, cela s’intègrerait à la suite d’un processus plus métier) : une 1ère activité permet de récupérer les références aux objets avec lesquels je vais travailler, puis une seconde pour créer mon document avec le contenu du formulaire :

Le process
Le process
Evénement Get Form Data :

A partir de l’ID de la ligne de mon smartobject (passé en paramètre du démarrage de mon instance de processus), je crée une référence Form Data qui contient l’ensemble des données de mon formulaire :

Récupération de la référence aux données du formulaire
Récupération de la référence aux données du formulaire
Evénement Get Doc Template :

J’utilise la méthode Get Document du smartobject qui expose ma bibliothèque de documents SharePoint. J’utilise cette méthode pour positionner mon modèle de document comme référence de mon processus, la référence Modele de doc. J’utilise donc des filtres basés sur le nom du Folder dans lequel j’ai stocké le document et le nom du document en question :

Récupération de la référence vers le modèle
Récupération de la référence vers le modèle
Evénement Copy Document :

Maintenant que mes références sont prêtes, je copie mon modèle de document avec l’assistant SharePoint Copy Document. Le document source est la référence créée précédemment, la destination est notre bibliothèque de travail et plus précisément le Folder Resultat. Ensuite les métadonnées de la bibliothèque sont mises à jour avec les données de référence de l’objet Form Data.

L’assistant Copy Document permet de sauvegarder une référence vers le document qui vient d’être ajouté, ce qui nous permet d’ajouter l’objet Doc Final qui sera utilisé dans l’événement suivant.

Copie du document
Copie du document
Evénement Update Document Name :

Afin de conserver chacun des documents créés, après avoir copié le document, nous allons renommer le document. Nous utilisons donc à nouveau le smartobject qui expose la bibliothèque SharePoint pour exécuter la méthode Rename Document By ID. Reste à mettre ce qu’on souhaite dans la propriété New Name, quant à l’ID, on utilisera le champ ID de la référence Doc Final.

Mise à jour du nom du document
Mise à jour du nom du document

3. Test du résultat

Après avoir donné les bons droits au niveau du processus, il ne reste plus qu’à soumettre le formulaire et le document suivant sera automatiquement créé :

Résultat du publipostage
Résultat du publipostage

En espérant que cela vous soit utile.

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.