1. Introduction Pour commencer nous allons définir ce qu'est un flux de travail. C'est un ensemble d'actions séquentielles (flux de travail séquentiel) ou non (flux de travail à états). Le flux de travail est un élément central dans l'architecture de SharePoint. Dans cette nouvelle version de la plateforme collaborative, les outils de création de flux de travail ont été fortement améliorés. Nous verrons cela plus en détail dans la suite de cet article.
2. Les types de flux de travail Dans cette version de SharePoint les flux de travail peuvent être regroupés en trois catégories : les flux de travail de liste, les flux de travail réutilisables et les flux de travail de site. Les flux de travail de site n'étaient pas présents dans la version 2007 de SharePoint.
2.1. Les flux de travail de liste Le flux de travail de liste est le type le plus simple. Il est associé à une liste bien précise et n'est utilisable que pour les éléments de cette même liste. Etant donné que la liste cible doit être spécifiée dès la création flux de travail, vous pouvez à l'intérieur de celui-ci accéder à tous les champs de la liste. Ce type de flux de travail est pratique de par sa simplicité de création mais atteint relativement vite ses limites par manque de flexibilité.
2.2. Les flux de travail réutilisables Contrairement aux flux de travail de liste, les flux de travail réutilisables sont associés avec un type de contenu (ou content type en anglais) et non plus avec une liste précise. Cela leur procure une flexibilité beaucoup plus grande. En effet un content type peut être associé avec une ou plusieurs listes et de manière complètement dynamique. Il n'est plus nécessaire de connaitre la cible du workflow dès sa création. Lors de la création de ce type de flux de travail il vous est demandé de choisir un type de contenu cible et comme pour la liste cela signifie que tous les champs de ce type de contenu seront disponibles à l'intérieur du flux de travail. La flexibilité de ce type de flux de travail va encore plus loin, en effet vous pourriez penser qu'il est donc nécessaire de créer un type de contenu particulier avec toutes les colonnes nécessaire à votre flux de travail. Cela aurait pour effet de rendre votre flux de travail utilisable uniquement pour ce type de contenu et ses enfants. En réalité ce n'est pas le cas, vous pouvez développer un flux de travail sur le type de contenu "élément"
car est le parent de tout autre type de contenu de SharePoint. Parfait pour l'idée, mais vous voilà limité aux champs du content type " éléments ", autrement dit la colonne titre et quelques autres colonnes système. C'est là qu'intervient la notion de colonnes d'association. Il s'agit de colonnes que vous allez définir à l'intérieur de votre flux de travail. Ces colonnes seront automatiquement ajoutées à l'intérieur de la liste avec laquelle votre flux de travail sera associé. De cette manière vous garantissez à votre flux de travail l'existence des colonnes dont il a besoin quel que soit l'endroit où il sera utilisé. Sympathique non ?
2.3. Les flux de travail de site Grande nouveauté de SharePoint 2010. Jusqu'à présent un flux de travail ne pouvait être démarré qu'à partir d'un élément de liste. Cela n'est plus vrai grâce au flux de travail de site. Comme leur nom l'indique, les flux de travail de site sont associés avec un site dans SharePoint. Un exemple fréquemment rencontré est la demande d'appréciation d'un site. Vous souhaitez donc permettre au visiteur d'un site de vous donner leurs commentaires sur celui-ci. Dans ce cas, vous n'avez aucunement besoin d'une liste ou d'un élément dans cette liste. Le flux de travail devra simplement poser quelques questions via un formulaire et vous l'envoyer par mail. Voici un exemple concret où l'utilisation des flux de travail de site est bien pratique.
3. La création de flux de travail Vous venez d'en apprendre un peu plus sur les différents types de flux de travail, mais cela ne vous dit pas comment procéder pour leur création. Il existe différents outils pour créer des flux de travail, du plus simple au plus complexe. Le plus simple est d'utiliser SharePoint lui-même et les flux de travail préexistant. La méthode la plus complexe est l'utilisation de Visual Studio 2010 et le développement programmatique de flux de travail. Entre ces deux extrêmes vous retrouvez SharePoint Designer 2010 qui permet de fabriquer des flux de travail personnalisés relativement puissants sans nécessiter la moindre connaissance en programmation. Pour moi, sans aucun doute, il s'agit de l'outil parfait pour un grand nombre de flux de travail. D'autant plus que l'intégration entre SharePoint Designer, Visual Studio 2010 et même Visio 2010 est tellement forte qu'il est possible d'importer/exporter un workflow entre ces différents outils.
3.1. Dans SharePoint lui-même La première manière et la plus simple de définir des flux de travail est d'utiliser ceux fournis de base avec SharePoint Server 2010. Evidemment la personnalisation de ceux-ci
est plus que limitée mais aucun travail supplémentaire n'est demandé. Les flux de travail existant sont entre autres la demande d'approbation et la collecte de signature. A mon sens ces flux de travail sont trop peu flexibles pour satisfaire une majorité de besoin.
3.2. Etendre les flux de travail SharePoint Nous venons de voir que les flux de travail existant dans SharePoint n'étaient pas personnalisables. Est-ce que cela signifie que nous devions créer un nouveau flux de travail d'approbation alors que l'existant répond peut être à 80% de nos besoins. Et bien non ! Il est possible dans SharePoint Designer 2010 de copier un flux de travail existant et de le personnaliser. Nous pouvons donc commencer la création d'un flux de travail à partir d'un autre. Attention que nous parlons bien d'une copie et non pas d'un héritage. Si le flux de travail original est modifié, les autres ne le seront pas automatiquement.
3.3. SharePoint Designer 2010 La nouvelle version de cet outil a grandement été améliorée par Microsoft. Tant au niveau des fonctionnalités du produit qu'au niveau de l'interface utilisateur. De plus cet outil est téléchargeable gratuitement (tout comme SharePoint Designer 2007 depuis quelques mois). SharePoint Designer 2007 offre la possibilité à des utilisateurs avancés, non développeurs, de venir créer des flux de travail complexes et de les partager avec les utilisateurs de la ferme SharePoint. Contrairement à la version précédente, la création et la maintenance de flux de travail est complètement fondue dans l'interface de l'application. Contrairement à la version 2007 où tout se faisait au travers d'un assistant parfois compliqué à appréhender.
Si vous vous connectez à votre site et cliquez sur le lien flux de travail sur la gauche, vous verrez apparaitre la liste des workflows réutilisables dans votre site. Cliquez sur une liste précise pour voir les workflows qui lui sont attachés. Pour vous présenter la nouvelle interface de création de flux de travail dans SharePoint Designer, nous allons créer un nouveau flux de travail de site qui comme dit précédemment nous permettra de collecter des commentaires d'utilisateurs. Afin de faciliter notre exemple nous demanderons à l'utilisateur de remplir un seul champ de type texte et nous allons envoyer son contenu par mail. Dans le ruban de SharePoint Designer, vous retrouvez trois boutons correspondant aux trois types de flux de travails présentés au début de cet article. Nous choisirons de créer un flux de travail de site. Vous voici face à l'interface de développement de flux de travail, complètement différente de la version précédente. Cette fois vous avez deux possibilités pour ajouter des actions : le glisser/déposer, et encore plus rapide taper directement le début du nom de l'action souhaitée. Vous pouvez également diviser vos flux de travail en étape afin de rendre sa lecture plus facile.
D'où allons-nous prendre le commentaire soumis par l'utilisateur alors que nous n'avons pas d'éléments de liste à notre disposition ? Nous allons utiliser des "paramètres de formulaire d'initiation". Il s'agit de données que l'utilisateur doit remplir lors du démarrage du processus. Ces valeurs seront ensuite utilisables à l'intérieur du flux de travail.
Nous ajouterons une seule action qui enverra un mail avec le commentaire de l'utilisateur. Configurez cette action afin de définir un destinataire, un sujet et le corps du message.
Vous avez remarqué qu'il est possible d'ajouter des éléments dynamiques provenant du contexte du flux de travail comme par exemple le nom de la personne ayant démarré le workflow ou le site en cours. Vous pouvez également utiliser le paramètre d'initiation que vous avez créé plus tôt.
Publiez à présent votre travail dans SharePoint 2010 à l'aide du bouton "Publier" du ruban, testez votre flux travail depuis le menu "action de site" de SharePoint
SharePoint Designer 2010 offre une multitude d'actions prédéfinies et il est donc impossible de les passer toutes en revue dans cet article. Cependant j'aimerais insister sur une action en particulier que je trouve extrêmement pratique. Il s'agit de l'étape d'usurpation d'identité. Par défaut un flux de travail tourne sur l'identité de la personne connectée. Autrement dit le flux de travail possède exactement les mêmes permissions que la personne connectée. Si le flux de travail doit écrire dans une liste, alors l'utilisateur doit posséder des permissions d'écriture sur cette liste. Ce n'est pas toujours souhaité. Cette étape permet donc d'impersonaliser le flux de travail et de le faire tourner avec des droits supérieurs à l'utilisateur connecté.
Comme dit un peu plus haut, SharePoint Designer 2010 est livré avec beaucoup d'actions existantes, évidemment ces actions ne peuvent pas toujours répondre à des besoins métiers bien précis. Est-ce que cela signifie qu'ils faille dans ce cas créer un workflow complet dans Visual Studio ? Pas du tout, il est possible de créer des actions supplémentaires pour SharePoint Designer dans Visual Studio et de les mettre à disposition des autres développeurs.
3.4. Visio 2010
Dans beaucoup de cas, la personne qui définit le flux de travail n'est pas la personne qui sera en charge de le créer. Dans ce cas, l'analyste fournit un schéma du flux de travail au développeur. Visio 2010 est l'outil parfait pour la réalisation de diagramme. Une fois que le développeur reçoit le document de l'analyste, il doit répliquer ce document dans SharePoint Designer. Cela représente une perte de temps surtout dans le cas de processus complexes. Visio 2010 est livré un Template permettant de définir des flux de travail pour SharePoint. L'analyste pourra donc venir disposer sur son diagramme des actions existantes dans SharePoint designer, les relier entre elles, ajouter des conditions, etc. … Il pourra au final exporter ce document dans un format d'échange entre Visio et SharePoint Designer. Ce fichier pourra alors être importé dans SharePoint Designer.
3.5. Visual Studio 2010 La manière la plus complexe, mais bien sûr la moins limitée de création de flux de travail est l'utilisation de Visual Studio 2010. Cette méthode de création nécessite des
connaissances de programmation et plus particulièrement de la plateforme Microsoft.net Visual Studio 2010 contient un Template de projet pour la création de flux de travail.
Visual Studio 2010 fournit une interface graphique permettant la composition du flux de travail de manière visuelle. Vous pouvez ensuite ajouter du code sur chaque action.
3.6. Modification des formulaires avec InfoPath 2010 Chaque interaction entre l'utilisateur et le flux de travail se fait au travers de formulaires. Par exemple lors de l'association du flux de travail avec une liste, lors du démarrage d'un flux de travail ou lors de la réponse à une tâche. Dans SharePoint 2010, ces formulaires sont des formulaires InfoPath. Leur personnalisation est extrêmement simple. Il suffit de cliquer sur un lien dans SharePoint Designer 2010 pour obtenir le formulaire en mode édition.
Ensuite vous pouvez modifier votre formulaire dans InfoPath et le republier à l'aide d'un seul clic également.
Plus loin que les flux de travail, tous les formulaires SharePoint peuvent être personnalisé très simplement à l'aide de InfoPath 2010. Cela fait partie, pour moi, des grandes améliorations de SharePoint. Si vous souhaitez avoir plus d'informations sur l'édition de formulaire avec InfoPath 2010, je vous invite à lire cet article
4. Conclusion Pour conclure cet article, je dirai que la gamme 2010 des outils Microsoft offre une très grande flexibilité et simplicité dans la création de flux de travail pour SharePoint 2010. Il serait fortement dommage de s'en priver pour vos futurs développements !