Ajouter un flux de travail à un complément SharePoint hébergé sur SharePoint

Cet article est le sixième d’une série sur les concepts de base du développement de compléments SharePoint hébergés par SharePoint. Vous devriez tout d’abord avoir pris connaissance de la rubrique Compléments SharePoint et des articles précédents de la série, disponibles dans la rubrique Commencer à créer des compléments SharePoint hébergés par SharePoint | Étapes suivantes.

Notes

Il est recommandé d’utiliser Microsoft Power Automate pour les applications et l’automatisation des processus. À partir de Visual Studio 2022, les modèles de flux de travail ont été supprimés des projets de complément SharePoint. Pour plus d’informations, consultez Conseils : migrer des flux de travail classiques vers des flux Power Automate dans SharePoint

Conseil

Si vous avez suivi cette série sur les compléments hébergés par SharePoint, vous disposez d'une solution Visual Studio que vous pouvez continuer à utiliser avec cette rubrique. Vous pouvez également télécharger le référentiel à l'adresse SharePoint_SP-hosted_Add-Ins_Tutorials et ouvrir le fichier BeforeWorkflow.sln.

Dans cet article, vous allez ajouter un flux de travail au complément SharePoint Orientation de l’employé qui informe le service des ressources humaines (RH) qu’un nouvel employé est prêt à remplir les formalités RH.

Ajouter un flux de travail à un complément

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet et sélectionnez Ajouter > Dossier. Nommez le dossier Flux de travail.

  2. Cliquez avec le bouton droit sur le nouveau dossier, puis choisissez Ajouter > Nouvel élément. La boîte de dialogue Ajouter un nouvel élément s'ouvre au niveau du nœud Office/SharePoint.

  3. Sélectionnez Flux de travail et attribuez-lui le nom Admission_RH. Quand vous êtes invité à sélectionner le type de flux de travail, sélectionnez Flux de travail de liste, puis Suivant.

  4. Sur la page suivante de l’Assistant, cochez la case Oui, associer… et définissez les valeurs suivantes pour les contrôles de la liste déroulante :

    • Bibliothèque ou liste à laquelle associer le flux de travail : Nouveaux employés à Seattle
    • Historique : <create new>
    • Liste des tâches : <create new>
  5. Sélectionnez Suivant.

  6. Sur la dernière page de l’assistant, activez uniquement l’option de démarrage automatique du workflow lorsqu’un élément est modifié.

  7. Sélectionnez Terminer.

    Les outils de développement Office pour Visual Studio effectuent ensuite les actions suivantes :

    • Ils créent un flux de travail Admission_RH dans le dossier Flux de travail, avec un fichier Workflow.xaml enfant ouvert dans le concepteur de flux de travail.
    • Ils créent une instance de liste WorkflowTaskList dans laquelle les tâches faisant partie du flux de travail sont créées et mises à jour.
    • Ils créent une instance de liste WorkflowHistoryList, qui consigne les différentes étapes de chaque exécution du flux de travail au moment où elles se produisent.

Concevoir le flux de travail

Le flux de travail envoie un e-mail à un responsable RH pour l’informer que le nouvel employé a terminé l’étape d’orientation Visite guidée du bâtiment et qu’il est prêt à remplir les formalités RH. Toute modification d’un élément existant de la liste Nouveaux employés à Seattle déclenche le flux de travail, mais le flux de travail ne fait rien tant que l’Étape de l’orientation de l’élément de la liste n’est pas définie sur Formalités RH. Si l’étape de l’orientation est correctement définie, un e-mail est envoyé à un responsable RH et une tâche est ajoutée à l’instance de liste WorkflowTaskList pour cet employé.

Notes

À divers moments de la conception du flux de travail, un losange bleu contenant un point d’exclamation ( Petit losange bleu contenant un point d’exclamation blanc ) apparaît sur un ou plusieurs éléments dans le concepteur de flux de travail. Ces symboles indiquent des erreurs temporaires. (Placez le curseur sur le symbole pour afficher un message court ou consultez la liste d’erreurs de Visual Studio pour en savoir plus.) Ce phénomène est dû au fait que le flux de travail n’est pas terminé. Ils devraient tous disparaître à la fin de cette procédure.

  1. Ouvrez le volet Boîte à outils de Visual Studio, développez le nœud SP - Liste, puis faites glisser LookupSPListItem dans la séquence dans le concepteur.

  2. Sélectionnez l’élément LookupSPListItem pour faire apparaître ses propriétés dans le volet Propriétés de Visual Studio. Définissez les propriétés ci-dessous sur les valeurs suivantes :

    • ItemID : (élément actif)
    • ListID : (liste actuelle)
    • DisplayName : LookupCurrentNewEmployee

    Le volet Propriétés doit maintenant avoir l’aspect suivant :

    Figure 1. Volet Propriétés de l’élément LookupSPListItem

    Volet Propriétés de l’activité du flux de travail Rechercher un élément de liste avec les propriétés ItemID, ListID et DisplayName définies.

  3. Sélectionnez un endroit quelconque en dehors du volet pour enregistrer les modifications. Le concepteur doit maintenant se présenter comme suit.

    Figure 2. Séquence dans le concepteur de flux de travail

    Concepteur de flux de travail avec une zone Séquence et, à l’intérieur, une activité nommée Rechercher le nouvel employé actuel

  4. Sélectionnez le lien Obtenir les propriétés de l’activité (récemment renommée) LookupCurrentNewEmployee dans le concepteur. Une activité GetDynamicValueProperties est alors ajoutée à la séquence.

  5. Sélectionnez Définir… dans l’activité GetDynamicValueProperties. La boîte de dialogue Propriétés s’ouvre.

  6. Dans Type d’entité, sélectionnez Élément de liste de nom_instance_liste, où nom_instance_liste correspond à Nouveaux employés à Seattle.

  7. Dans la colonne Chemin, sélectionnez la cellule du haut, puis Étape de l’orientation dans la liste déroulante.

  8. Sélectionnez la cellule sous Étape de l’orientation, puis Employé dans la liste déroulante.

  9. Sélectionnez Remplir les variables. Cela crée des variables nommées OrientationStage et Title et affecte chacune des valeurs des champs correspondants dans l’élément actuel de la liste Nouveaux employés à Seattle. La boîte de dialogue Propriétés doit maintenant ressembler à ce qui suit :

  10. Sélectionnez OK. L’aire du concepteur doit maintenant ressembler à ce qui suit :

    Figure 4. Concepteur de flux de travail

    Concepteur de flux de travail avec deux activités : Recherche d’élément de liste et Obtenir les valeurs dynamiques.

  11. Ouvrez le volet Boîte à outils dans Visual Studio, développez le nœud Flux de contrôle, puis faites glisser If au bas de la séquence, sous GetDynamicValueProperties.

  12. Dans la zone Condition du If, entrez OrientationStage=="HR paperwork".

  13. Ouvrez le volet Boîte à outils dans Visual Studio, développez le nœud SP - Utilitaires, puis faites glisser E-mail dans la zone Then de l’activité If.

  14. Sélectionnez l’activité E-mail. Dans le volet Propriétés, définissez les valeurs des propriétés Corps, Objet et À. À chaque fois, cliquez sur le bouton de légende . . . de la propriété et utilisez l’Éditeur d’expressions qui s’ouvre pour définir la valeur de la propriété, comme indiqué dans l’exemple ci-dessous. Il s’agit d’expressions de chaîne C#. Vous devez donc utiliser les guillemets comme dans l’exemple. Ici, l’élément Title est une variable affectée précédemment au champ Titre de l’élément de liste (qui contient le nom de l’employé).

    • Corps : Title + " is waiting in the lobby to fill out benefits and employment forms."
    • Objet : Title + " is ready for HR paperwork"
    • À : new System.Collections.ObjectModel.Collection<string>() {"your_O365_email"}

    Remplacez l’espace réservé your_O365_email par l’identité que vous utilisez pour vous connecter à votre compte de développeur Office 365. Par exemple, *alias*@*O365domain*.sharepoint.com. Il s’agit d’une chaîne C#. Vous devez donc l’insérer entre guillemets.

  15. Ouvrez le volet Boîte à outils de Visual Studio, développez le nœud Runtime, puis faites glisser TerminateWorkflow dans la zone Else de l’activité If.

  16. Sélectionnez l’activité TerminateWorkflow et, dans le volet Propriétés, définissez la Raison sur ce qui suit, y compris les guillemets: "Not at HR paperwork stage.". Le concepteur doit maintenant se présenter comme suit :

    Figure 5. Concepteur de flux de travail une fois le flux de travail terminé

    Concepteur de flux de travail avec les activités pour « Recherche d’élément de liste », « Obtenir la valeur dynamique » et une structure « If Then Else ». Envoyer un courrier électronique est l’activité dans la partie Then et Terminer le flux de travail est l’activité dans la partie Else.

Exécuter et tester le complément

  1. Utilisez la touche F5 pour déployer et exécuter votre complément. Visual Studio effectue une installation temporaire du complément sur votre site SharePoint de test et exécute immédiatement le complément. La console Hôte de service de test du Gestionnaire de flux de travail s’ouvre également.

  2. Quand la page par défaut du complément s’ouvre, ouvrez l’un des éléments pour le modifier et définissez la valeur Étape de l’orientation sur Formalités RH.

    Dans la console de l’hôte de service de test, une indication apparaît pour signaler que le flux de travail a démarré. Peu après, une autre indication signale qu’il est terminé. Voici un exemple :

    Figure 6. Console Test Service Host

    Fenêtre d’hôte de service de test de flux de travail avec une ligne indiquant que le flux de travail a démarré, suivie d’une ligne indiquant qu’il est terminé. Le GUID de l’instance de flux de travail se trouve au début de chaque ligne.

    Notes

    Si la console Test Service Host ne s’ouvre pas, vous devrez peut-être activer le débogage du flux de travail. Cliquez avec le bouton droit sur le nom du projet dans l’Explorateur de solutions et sélectionnez Propriétés. Ouvrez l’onglet SharePoint dans le volet Propriétés, puis cochez la case Activer le débogage de flux de travail.

  3. Accédez à la boîte de réception (Outlook) de votre compte de développeur Office 365. Vous y trouverez un e-mail avec l’objet « Employé est prêt pour les formalités RH » où Employé correspond au nom de l’employé pour lequel vous avez modifié l’élément. Le corps du message indique « Employé attend dans le hall d’accueil pour remplir les formulaires administratifs. » Voici un exemple :

    Figure 7. E-mail envoyé par le flux de travail

    Message électronique dans Outlook à partir du flux de travail avec l’objet « Cassie Hicks est prête pour les formalités RH » et le corps « Cassie Hicks attend dans le hall pour remplir les formulaires d’avantages et d’emploi ».

    Conseil

    Si le flux de travail commence mais ne se termine jamais et que l’e-mail n’est pas envoyé, essayez de terminer la session de débogage et appuyez plusieurs fois sur F5 avant de conclure qu’une partie de votre code est incorrecte. Il arrive que le problème provienne de SharePoint Online. Si les problèmes persistent, essayez d’ajouter un type de contenu nommé ListFieldsContentType, s’il n’en existe pas déjà un, à la section ContentTypes du fichier schema.xml. Voici un exemple de marques de révision :

    <ContentType ID="0x0100781dd48170b94fdc9706313c82b3d04c" Name="ListFieldsContentType" Hidden="TRUE"></ContentType>

    Copiez l’intégralité de la section FieldRefs du type de contenu NewEmployee dans ce nouveau type de contenu. Enregistrez le projet, retirez-le et réappuyez sur F5.

  4. Pour mettre fin à la session de débogage, fermez la fenêtre du navigateur ou arrêtez le débogage dans Visual Studio. Chaque fois que vous appuyez sur F5, Visual Studio retire la version précédente du complément et installe la plus récente.

  5. Vous allez travailler avec ce complément et la solution Visual Studio dans d'autres articles. Il est donc recommandé de retirer le complément une dernière fois lorsque vous avez terminé de travailler et n'allez pas le réutiliser pendant un moment. Cliquez avec le bouton droit sur le projet dans l' Explorateur de solutions et sélectionnez Retirer.

Étapes suivantes

Dans l’article suivant de cette série, vous allez ajouter une page et un style personnalisés au complément SharePoint hébergé par SharePoint.