Procédure pas à pas : créer et déboguer une solution de flux de travail SharePoint

Cette procédure pas à pas montre comment créer un modèle de flux de travail séquentiel de base. Le flux de travail vérifie une propriété d’une bibliothèque de documents partagée pour déterminer si un document a été révisé. Si le document a été révisé, le flux de travail se termine.

Cette procédure pas à pas décrit les tâches suivantes :

  • Création d’un projet de flux de travail séquentiel de définition de liste SharePoint dans Visual Studio.

  • Création d’activités de flux de travail.

  • Gestion des événements d’activité de flux de travail.

Notes

Cette procédure pas à pas utilise un projet de flux de travail séquentiel. Toutefois, le processus est identique pour un projet de flux de travail de machine à états.

Il est possible que votre ordinateur affiche des noms ou des emplacements différents de ceux dans les instructions suivantes pour certains éléments de l’interface utilisateur de Visual Studio. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnaliser l’IDE Visual Studio.

Prérequis

Vous devez disposer des éléments suivants pour exécuter cette procédure pas à pas :

  • Éditions prises en charge de Microsoft Windows et SharePoint.

  • Visual Studio.

Ajouter des propriétés à la bibliothèque de documents partagés SharePoint

Pour effectuer le suivi de l’état de révision des documents dans la bibliothèque Documents partagés, nous allons créer trois nouvelles propriétés pour les documents qui sont partagés sur notre site SharePoint : Status, Assignee et Review Comments. Nous définissons ces propriétés dans la bibliothèque Documents partagés.

Pour ajouter des propriétés à la bibliothèque de documents partagés SharePoint

  1. Ouvrez un site SharePoint comme Web.http://<system name>/SitePages/Home.aspx dans un navigateur web.

  2. Dans la barre de lancement rapide, choisissez Documents partagés.

  3. Choisissez Bibliothèque dans le ruban Outils de bibliothèque, puis choisissez le bouton Créer une colonne sur le ruban pour créer une colonne.

  4. Nommez la colonne État du document, définissez son type sur Choix (menu de sélection), spécifiez les trois options suivantes, puis choisissez le bouton OK :

    • Révision nécessaire

    • Révision terminée

    • Modifications demandées

  5. Créez deux colonnes supplémentaires que vous nommez Personne responsable et Commentaires de révision. Définissez le type de colonne Personne responsable comme ligne unique de texte et le type de colonne Commentaires de révision comme plusieurs lignes de texte.

Permettre la modification des documents sans devoir les extraire

Il est plus facile de tester le modèle de flux de travail quand vous pouvez modifier les documents sans devoir les extraire. Dans la procédure suivante, vous allez configurer le site SharePoint pour activer cette option.

Pour permettre la modification de documents sans les extraire

  1. Dans la barre de lancement rapide, choisissez le lien Documents partagés.

  2. Dans le ruban Outils de bibliothèque, choisissez l’onglet Bibliothèque, puis le bouton Paramètres de la bibliothèque pour afficher la page Paramètres de la bibliothèque de documents.

  3. Dans la section Paramètres généraux, choisissez le lien Paramètres de contrôle de version pour afficher la page Paramètres de contrôle de version.

  4. Vérifiez que le paramètre Forcer l’extraction des documents avant modification est défini sur Non. Si ce n’est pas le cas, définissez-le sur Non, puis choisissez le bouton OK.

  5. Fermez le navigateur.

Créer un projet de flux de travail séquentiel SharePoint

Un flux de travail séquentiel est un ensemble d’étapes qui s’exécute dans l’ordre jusqu’à la fin de la dernière activité. Dans cette procédure, nous créons un flux de travail séquentiel qui s’applique à notre liste Documents partagés. L’Assistant de flux de travail permet d’associer le flux de travail soit à la définition de site, soit à la définition de liste. Vous pouvez déterminer quand le début du flux de travail.

Pour créer un projet de flux de travail séquentiel SharePoint

  1. Démarrez Visual Studio.

  2. Dans la barre de menus, choisissez Fichier>Nouveau>Projet pour afficher la boîte de dialogue Nouveau projet.

  3. Développez le nœud SharePoint sous Visual C# ou Visual Basic, puis sélectionnez le nœud 2010.

  4. Dans le volet Modèles, sélectionnez le modèle Projet SharePoint 2010.

  5. Dans la zone Nom, entrez MySharePointWorkflow, puis choisissez le bouton OK.

    L’Assistant Personnalisation de SharePoint s’affiche.

  6. Dans la page Spécifier le site et le niveau de sécurité pour le débogage, choisissez l’option Déployer en tant que solution de batterie de serveurs, puis le bouton Terminer pour accepter le niveau de confiance et le site par défaut.

    Cette étape définit le niveau de confiance de la solution en tant que solution de batterie de serveurs. Il s’agit de la seule option disponible pour les projets de flux de travail. Pour plus d’informations, consultez Considérations relatives aux solutions bac à sable (sandbox).

  7. Dans l’Explorateur de solutions, choisissez le nœud du projet. Dans la barre de menus, choisissez Projet>Ajouter un nouvel élément.

  8. Sous Visual C# ou Visual Basic, développez le nœud SharePoint, puis sélectionnez le nœud 2010.

  9. Dans le volet Modèles, choisissez le modèle Flux de travail séquentiel (solution de batterie de serveurs uniquement), puis cliquez sur le bouton Ajouter.

    L’Assistant Personnalisation de SharePoint s’affiche.

  10. Dans la page Spécifier le nom du flux de travail pour le débogage, acceptez le nom par défaut (MySharePointWorkflow - Workflow1). Conservez la valeur par défaut pour le type de modèle de flux de travail, Flux de travail de liste, puis choisissez le bouton Suivant.

  11. Dans la page vous demandant Souhaitez-vous que Visual Studio associe automatiquement le flux de travail dans une session de débogage ?, choisissez le bouton Suivant pour accepter l’ensemble des paramètres par défaut.

    Cette étape associe automatiquement le flux de travail à la bibliothèque Documents partagés.

  12. Dans la page Spécifier les conditions de démarrage du flux de travail, conservez les options par défaut qui sont sélectionnées dans la section Comment le flux de travail doit-il commencer ? et choisissez le bouton Terminer.

    Cette page vous permet de spécifier le moment du démarrage de votre flux de travail. Par défaut, le flux de travail démarre soit quand un utilisateur le démarre manuellement dans SharePoint, soit lorsqu’un élément est créé qui est associé au flux de travail.

Créer des activités de flux de travail

Les flux de travail contiennent une ou plusieurs activités qui représentent des actions à effectuer. Utilisez le concepteur de flux de travail pour organiser les activités d’un flux de travail. Dans cette procédure, nous allons ajouter deux activités au flux de travail : HandleExternalEventActivity et OnWorkFlowItemChanged. Ces activités permettent de superviser l’état de révision des documents qui figurent dans la liste Documents partagés

Pour créer des activités de flux de travail

  1. Le flux de travail doit s’afficher dans le concepteur de flux de travail. Si ce n’est pas le cas, ouvrez Workflow1.cs ou Workflow1.vb dans l’Explorateur de solutions.

  2. Dans le concepteur, choisissez l’activité OnWorkflowActivated1.

  3. Dans la fenêtre Propriétés, entrez onWorkflowActivated à côté de la propriété Appelé, puis choisissez la touche Entrée.

    L’éditeur de code s’ouvre et une méthode de gestionnaire d’événements nommée onWorkflowActivated est ajoutée au fichier de code Workflow1.

  4. Revenez au concepteur de flux de travail, ouvrez la boîte à outils, puis développez le nœud Flux de travail Windows v3.0.

  5. Dans le nœud Flux de travail Windows v3.0 de la Boîte à outils, effectuez l’un des ensembles d’étapes suivants :

    1. Ouvrez le menu contextuel de l’activité While, puis choisissez Copier. Dans le concepteur de flux de travail, ouvrez le menu contextuel de la ligne sous l’activité onWorkflowActivated1, puis choisissez Coller.

    2. Faites glisser l’activité While de la Boîte à outils vers le concepteur de flux de travail, et connectez-la à la ligne sous l’activité onWorkflowActivated1.

  6. Choisissez l’activité WhileActivity1.

  7. Dans la fenêtre Propriétés, définissez Condition sur Condition de code.

  8. Développez la propriété Condition, entrez isWorkflowPending à côté de la propriété enfant Condition, puis choisissez la touche Entrée.

    L’éditeur de code s’ouvre et une méthode nommée isWorkflowPending est ajoutée au fichier de code Workflow1.

  9. Revenez au concepteur de flux de travail, ouvrez la boîte à outils, puis développez le nœud Flux de travail SharePoint.

  10. Dans le nœud Flux de travail SharePoint de la boîte à outils, effectuez l’une des procédures suivantes :

    • Ouvrez le menu contextuel de l’activité OnWorkflowItemChanged, puis choisissez Copier. Dans le concepteur de flux de travail, ouvrez le menu contextuel de la ligne dans l’activité whileActivity1, puis choisissez Coller.

    • Faites glisser l’activité OnWorkflowItemChanged de la Boîte à outils vers le concepteur de flux de travail, et connectez-la à la ligne dans l’activité whileActivity1.

  11. Choisissez l’activité onWorkflowItemChanged1.

  12. Dans la fenêtre Propriétés, définissez les propriétés comme indiqué dans le tableau suivant.

    Propriété Valeur
    CorrelationToken workflowToken
    Invoked onWorkflowItemChanged

Gérer les événements d’activité

Enfin, vérifiez l’état du document à partir de chaque activité. Si le document a été révisé, le flux de travail se termine.

Pour gérer les événements d’activité

  1. Dans Workflow1.cs ou Workflow1.vb, ajoutez le champ suivant en haut de la classe Workflow1. Ce champ est utilisé dans une activité pour déterminer si le flux de travail est terminé.

    Boolean workflowPending = true;
    
  2. Ajoutez la méthode suivante à la classe Workflow1. Cette méthode vérifie la valeur de la propriété Document Status de la liste Documents pour déterminer si le document a été révisé. Si la propriété Document Status a la valeur Review Complete, la méthode checkStatus définit le champ workflowPending sur false pour indiquer que le flux de travail est prêt à se terminer.

    private void checkStatus()
    {
        if ((string)workflowProperties.Item["Document Status"] == "Review Complete")
        workflowPending = false;
    }
    
  3. Ajoutez le code suivant aux méthodes onWorkflowActivated et onWorkflowItemChanged pour appeler la méthode checkStatus. Quand le flux de travail démarre, la méthode onWorkflowActivated appelle la méthode checkStatus pour déterminer si le document a déjà été révisé. S’il n’a pas été révisé, le flux de travail se poursuit. Quand le flux de travail démarre, la méthode onWorkflowItemChanged appelle la méthode checkStatus pour déterminer si le document a été révisé. Si le champ workflowPending est défini sur true, l’exécution du flux de travail se poursuit.

    private void onWorkflowActivated(object sender, ExternalDataEventArgs e)
    {
        // Check the status.
        checkStatus();
    }
    
    private void onWorkflowItemChanged(object sender, ExternalDataEventArgs e)
    {
        // Check the status.
        checkStatus();
    }
    
  4. Ajoutez le code suivant à la méthode isWorkflowPending pour vérifier l’état de la propriété workflowPending. Chaque fois que le document est enregistré, l’activité whileActivity1 appelle la méthode isWorkflowPending. Cette méthode examine la propriété Result de l’objet ConditionalEventArgs pour déterminer si l’activité WhileActivity1 doit continuer ou se terminer. Si la propriété est définie sur true, l’activité continue. Dans le cas contraire, l’activité se termine et le flux de travail se termine.

    private void isWorkflowPending(object sender, ConditionalEventArgs e)
    {
        e.Result = workflowPending;
    }
    
  5. Enregistrez le projet.

Tester le modèle de flux de travail SharePoint

Quand vous démarrez le débogueur, Visual Studio déploie le modèle de flux de travail sur le serveur SharePoint et associe le flux de travail à la liste Documents partagés. Pour tester le flux de travail, démarrez une instance du flux de travail à partir d’un document dans la liste Documents partagés.

Pour tester le modèle de flux de travail SharePoint

  1. Dans Workflow1.cs ou Workflow1.vb, définissez un point d’arrêt à côté de la méthode onWorkflowActivated.

  2. Choisissez la touche F5 pour générer et exécuter la solution.

    Le site SharePoint s’affiche.

  3. Dans le volet de navigation de SharePoint, choisissez le lien Documents partagés.

  4. Dans la page Documents partagés, choisissez le lien Documents sous l’onglet Outils de bibliothèque, puis choisissez le bouton Charger un document.

  5. Dans la boîte de dialogue Charger un document, choisissez le bouton Parcourir, choisissez le fichier de document de votre choix, cliquez sur le bouton Ouvrir, puis sur le bouton OK.

    Cette opération charge le document sélectionné dans la liste Documents partagés et démarre le flux de travail.

  6. Dans Visual Studio, vérifiez que le débogueur s’arrête au point d’arrêt à côté de la méthode onWorkflowActivated.

  7. Choisissez la touche F5 pour continuer l’exécution.

  8. Vous pouvez modifier les paramètres du document ici. Toutefois, conservez les valeurs par défaut pour le moment en choisissant le bouton Enregistrer.

    Cette action vous renvoie à la page Documents partagés du site web SharePoint par défaut.

  9. Dans la page Documents partagés, vérifiez que la valeur sous la colonne MySharePointWorkflow - Workflow1 est définie sur En cours. Cela indique que le flux de travail est en cours et que le document est en attente de révision.

  10. Dans la page Documents partagés, choisissez le document, choisissez la flèche qui s’affiche, puis choisissez l’élément de menu Modifier les propriétés.

  11. Définissez État du document sur Révision terminée, puis choisissez le bouton Enregistrer.

    Cette action vous renvoie à la page Documents partagés du site web SharePoint par défaut.

  12. Dans la page Documents partagés, vérifiez que la valeur sous la colonne État du document est définie sur Révision terminée. Actualisez la page Documents partagés et vérifiez que la valeur sous la colonne MySharePointWorkflow - Workflow1 est définie sur Terminé. Cela indique que le flux de travail est terminé et que le document a été révisé.

Étapes suivantes

Pour en savoir plus sur la création de modèles de flux de travail, consultez les rubriques suivantes :