Article d’origine publié le jeudi 30 août 2012

Bonjour. Je m’appelle JongHwa Lim et je suis responsable de programme dans l’équipe de SharePoint Designer (ou SPD).jonghwal's pic

Aujourd’hui, j’aimerais vous présenter une fonctionnalité ayant été grandement améliorée entre SharePoint Designer 2010 et SharePoint Server 2010. Il s’agit de la fonctionnalité de compression/décompression de flux de travail. Un scénario, connu par ceux qui utilisaient cette fonctionnalité dans SharePoint Designer 2010, consistait à développer un flux de travail dans un environnement de développement, puis à le déployer dans un environnement de production. Malheureusement, il restait un problème : cette fonctionnalité prenait uniquement en charge les types de flux de travail réutilisables dans SharePoint Designer 2010.

Mais à présent, dans SharePoint Designer 2013 tout comme dans SharePoint Server 2013 et le service de flux de travail Azure, les trois types de flux de travail sont pris en charge : les flux de travail de liste, de site et réutilisables. C’est très pratique. Cela signifie que vous n’avez plus besoin de vous limiter uniquement aux flux de travail réutilisables et que l’ancienne procédure dans laquelle vous deviez faire migrer vos flux de travail de liste vers des flux de travail réutilisables pour pouvoir les compresser n’est plus d’actualité.

En guise d’exemple, je vais construire un flux de travail, puis vous expliquer comment il peut être réutilisé dans un site cible.

Exemple : un flux de travail de liste de demandes de congés

Partons du principe que vous allez créer un flux de travail de liste sur un environnement de développement. Le flux de travail a deux listes : une liste des congés et une listes de demandes de congés. La liste de congés conserve le nombre de congés restant pour tous les employés et la liste de demandes de congés correspond à l’emplacement où le demandeur va créer un élément de demande pour demander l’approbation des congés.

Création des listes nécessaires (environnement de développement)

Nous avons besoin de deux listes. J’ai donc créé deux listes comme indiqué ci-dessous. Remarquez que nous allons utiliser les paramètres par défaut pour la « Liste des tâches » et la « Liste d’historique ».

clip_image001

clip_image002

Création d’un flux de travail de liste sur une liste de demandes de congés

À présent que les listes nécessaires sont prêtes, utilisez SPD pour vous connecter au serveur, cliquez sur « Flux de travail de liste », puis sélectionnez la liste « Demandes de congés ». La boîte de dialogue illustrée ci-dessous sera affichée. Assurez-vous de sélectionner le type « Flux de travail SharePoint 2013 » après avoir saisi le nom du flux de travail.

clip_image003

Remplissage de la logique et publication du flux de travail

Dans le canevas de SPD, vous pouvez sélectionner le concepteur de texte ou, si Visio Professional est installé, le concepteur visuel pour créer le flux de travail. Dans ce blog, je vais utiliser un concepteur de texte, mais si vous préférez utiliser le concepteur visuel, sachez qu’un autre billet de blog sur le concepteur visuel sera bientôt disponible pour vous.

Veuillez ajouter la logique suivante. En général, elle est assez simple, excepté quelques points. Elle se compose de cinq étapes. Le titre de chaque étape explique en quoi elle consiste, mais pour vous les expliquer en détail, je les ai décrites ci-dessous :

  • L’étape « Vérifier s’il reste des congés » récupère les jours de congés restant pour l’initiateur et le compare aux jours de congés demandés.
  • L’étape « Processus d’approbation » demande l’approbation pour les jours de congés restant.
  • L’étape « Approuvée » une fois l’approbation obtenue, met à jour la liste de congés avec la nouvelle valeur calculée.
  • L’étape « Rejetée » envoie un message électronique indiquant le rejet de la demande.
  • L’étape « Congés insufisants » envoie un message électronique indiquant les jours de congés restant insuffisants.

image

clip_image005

Ce qui est difficile, c’est de faire en sorte que les interfaces utilisateur de recherche récupèrent les jours de congés restant dans la liste de congés ou mettent à jour cette liste.

clip_image006

clip_image007

Vous pouvez choisir d’activer l’option « commencer automatiquement par la création d’élément » si cela est plus opportun.

clip_image008

Et lorsque vous publiez le flux de travail, l’association de flux de travail est créée tandis que la colonne d’état est faite en arrière-plan.

Compression des listes en packages STP

Vous pouvez utiliser plusieurs méthodes pour garantir que le serveur cible dispose des listes et schémas nécessaires, mais exploiter un package STP est une pratique recommandée. Alors compressons la liste de congés et la liste de demandes de congés dans un package STP.

Vous pouvez le faire en utilisant l’interface utilisateur du serveur ou celle de SPD, comme indiqué ci-dessous.

clip_image009

clip_image010

Puis vous verrez l’écran suivant, dans lequel vous pourrez sélectionner le package des contenus et saisir son nom.

clip_image011

Remarquez que le flux de travail de liste SharePoint 2013 n’est pas compressé avec les autres, que vous ayez sélectionné « Inclure du contenu » ou non.

Si l’opération réussit, vous accéderez à un emplacement où vous pourrez télécharger le package.

clip_image012

Cliquez sur le lien et téléchargez le package pour l’utiliser plus tard.

En cas de réussite, vous devez maintenant avoir deux packages STP : un pour la liste de demandes de congés et un autre pour la liste de congés (la liste contenant les jours de congés restant).

Compression du flux de travail dans un package WSP

Pour compresser le flux de travail de liste, accédez à la page de synthèse du flux de travail et cliquez sur le bouton « Enregistrer comme modèle » dans le ruban.

clip_image013

La boîte de dialogue suivante sera affichée.

clip_image014

La bibliothèque « Éléments de site » se trouve dans le volet de navigation. Elle contient le package de flux de travail de liste (vous devrez peut-être actualiser la page pour afficher le package).

Sur le ruban, utilisez le bouton « Exporter le fichier » pour enregistrer le package sur l’ordinateur local.

clip_image015

Déploiement des packages STP

Ouvrez le site (ou l’environnement de production) cible dans votre navigateur et accédez à « Paramètres du site ». Le menu « Modèles de listes » se trouve sous le groupe « Galeries de concepteur web ».

clip_image016

En utilisant « Télécharger un document » sous le menu « Fichiers », téléchargez les deux packages STP.

clip_image017

Création de listes à l’aide des modèles de listes déployés

Vous pouvez créer les deux listes à partir des modèles de listes déployés. Accédez à « Contenus du site » dans le menu de navigation du serveur, puis cliquez sur « Ajouter une application ». Vous devriez trouver les icônes « Congés » et « Demandes de congés ».

clip_image018

Création des listes « Congés » et « Demandes de congés » en utilisant ces menus.

Déploiement et activation du package WSP

Le déploiement du package WSP est légèrement différent du déploiement de modèles de listes STP. Vous devez le télécharger vers la bibliothèque « Solutions » sous le groupe « Galeries de concepteur web » dans les paramètres du site.

clip_image019

Puis, une boîte de dialogue s’affichera pour vous inviter à activer le package (la solution).

clip_image020

Activation de la fonctionnalité

Une fois la solution activée, une nouvelle fonctionnalité apparaîtra dans « Gérer les fonctionnalités du site » sous « Actions du site » ou « Paramètres du site ».

clip_image021

Et voilà. Vous pouvez trouver ce flux de travail en utilisant le nom que vous avez saisi en le compressant. Cliquez sur le bouton « Activer », puis attendez jusqu’à ce que le bouton soit remplacé par « Désactiver », à moins que l’icône soit affichée, ce qui signifie que la fonctionnalité est activée.

clip_image022

Ouverture du flux de travail à partir de SPD (facultatif)

Il existe des cas où vous pouvez souhaiter mettre à jour le flux de travail dans le site cible. Ce n’est pas un problème. C’est exactement comme pour votre environnement de développement. Vous pouvez trouver le flux de travail déployé correctement répertorié dans SPD.

clip_image023

Il s’ouvrira sans problème. Vous pouvez constater que les valeurs de la page de synthèse restent identiques. Bien évidemment, la logique est également préservée.

image

Exécution du flux de travail (facultatif)

Après avoir exécuté le flux de travail à partir du serveur, il est possible que vous trouviez deux colonnes portant le même nom (colonne d’état de flux de travail). Il s’agit d’un problème connu. Une colonne provient du serveur source (compressé dans le STP) et l’autre est créée dans le site cible. Veuillez mettre à jour l’affichage de la liste pour masquer l’ancienne colonne.

Existe-t-il une alternative à l’utilisation du package STP ?

La solution sera déployée correctement tant que le site cible dispose des listes requises (celles utilisées dans la logique de flux de travail conjointement à la tâche de flux de travail et aux listes d’historique de flux de travail). Cependant, il est préférable de créer les listes et les colonnes de liste référencées dans le flux de travail, en utilisant le même modèle de liste et le même type de champ. Si des types ne correspondent pas, il est possible que le package ne fonctionne pas durant l’activation de la fonctionnalité ou que le flux de travail ne parvienne pas à démarrer.

Que va-t-il se passer si le package de flux de travail est déployé sur un site où les listes « Congés » ou « Demandes de congés » n’existent pas ?

Vous ne pourrez pas activer la fonctionnalité du site.

clip_image025

Le message d’erreur n’est pas très détaillé, mais si vous consultez le journal ULS, vous pourrez trouver certains indices comme :

« Désolé... Le flux de travail XAML n’a pas pu procéder à la validation, car l’erreur suivante est survenue : Échec de la création de 'ListId' à partir du texte '$ListId:Lists/Vacation; »

Cependant, après l’échec de l’activation de la fonctionnalité, la réactivation de la fonctionnalité peut échouer de nouveau, même si vous avez créé les listes requises. Ceci est dû au fait que votre définition de flux de travail est déployée de façon incomplète. Veuillez donc procéder ainsi :

  • Ouvrez SPD et supprimez la définition du flux de travail ayant provoqué une erreur durant l’activation de la fonctionnalité.
  • Désactivez la solution, puis supprimez-la.
  • Téléchargez la solution, puis activez-la.
  • Activez la fonctionnalité du site.

Ceci devrait résoudre le problème.

Problèmes connus

Voici les problèmes connus relatifs à la compression de flux de travail.

  • Vous devez être certain que les URL de listes relatives (par ex. ‘Lists/Vacation’) sont identiques. Si vous créez une liste avec un nom donné, puis modifiez son nom, l’URL de cette liste ne sera pas modifié, car il est basé sur le nom d’affichage d’origine. Ainsi, même si vous avez compressé le flux de travail basé sur le nom de la liste mis à jour, le flux de travail recherchera tout de même l’URL selon l’ancien nom du site cible. C’est pourquoi, lorsque vous recréez les listes dans le site cible, vous devez vérifier que vous avez donné à vos listes leurs noms originaux, et non pas leurs noms mis à jour. Ainsi, les URL des listes seront préservées. Une fois les listes recréées, vous pouvez remplacer leurs noms par les noms mis à jour.
  • Les flux de travail portant des noms Unicode ou DBCS seront compressés en fichiers WSP dotés du nom par défaut, codé en dur, suivant : « WorkflowSolution.wsp ».
  • Pour pouvoir consulter la liste des solutions mise à jour, vous devez actualiser manuellement la page après avoir accédé aux éléments de site.
  • Si le serveur cible ne dispose pas des listes Tâches de flux de travail et Historique de flux de travail, l’erreur ci-dessous peut se produire lorsque vous cliquez sur le flux de travail depuis la page Paramètres de flux de travail. Ceci se produit lorsque vous déployez le flux de travail sur un serveur cible où aucun flux de travail n’a jamais été créé. Pour résoudre ce problème, vous pouvez créer et publier un flux de travail fictif à partir de SPD pour créer les listes Tâches de flux de travail et Historique de flux de travail. Puis, vous pourrez ouvrir le flux de travail déployé à partir de SPD, paramétrer les listes Tâches de flux de travail et Historique de flux de travail, puis publier de nouveau le flux de travail.clip_image026
  • Le flux de travail du projet peut être compressé, tout comme un flux de travail de site normal. Cependant, pour être certain que cela va fonctionner, vous devez également ajouter au package les entités du projet telles que les EPT, les étapes, les colonnes personnalisées, etc. Veuillez consulter les consignes relatives au flux de travail de projet qui seront fournies par l’équipe Project.

Merci,

JongHwa

Ce billet de blog a été traduit de l’anglais. Vous trouverez la version originale sur Packaging List, Site, and Reusable Workflow and How to Deploy the Package