Partager via


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.

Remarque

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 consulté les articles sur les compléments hébergés par SharePoint, votre solution Visual Studio vous sera utile pour continuer à parcourir cette rubrique. Vous pouvez également télécharger le référentiel sur 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 sélectionnez 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é.

Remarque

À différents moments lors de la conception de votre flux de travail, un symbole de losange bleu avec un point d’exclamation dans celui-ci ( petite forme de diamant bleu avec un point d’exclamation blanc. ) s’affiche sur un ou plusieurs éléments du concepteur de workflow. Ces symboles indiquent des erreurs temporaires. (Placez le curseur sur le symbole pour afficher un bref message ou recherchez plus d’informations dans la liste d’erreurs de Visual Studio.) Il s’agit des effets secondaires de l’incomplétude du workflow. 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 afficher ses propriétés dans le volet Propriétés de Visual Studio. Définissez ces propriétés de la manière suivante :

    • 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 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. Cliquez n’importe où en dehors du volet pour enregistrer vos modifications. L’aire de conception doit maintenant ressembler à ceci.

    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 le texte Définir... dans l’activité GetDynamicValueProperties . La boîte de dialogue Propriétés s’ouvre.

  6. Définissez le Type d’entité sur Élément de liste delist_instance_name, où list_instance_name est New Employees in 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. Des variables nommées Étape de l’orientation et Titre sont créées et chacune des valeurs des champs correspondants est affectée dans l’élément actuel de la liste Nouveaux employés à Seattle. La boîte de dialogue Propriétés doit maintenant ressembler à ceci :

  10. Sélectionnez OK. L’aire de conception doit maintenant ressembler à ceci :

    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 À. Dans chaque cas, choisissez le bouton de légende . . . pour la propriété et utilisez l’Éditeur d’expressions qui s’ouvre pour définir la valeur de la propriété comme dans le tableau suivant. 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 de la manière suivante, en n’oubliant pas les guillemets : "Not at HR paperwork stage.". Le concepteur doit maintenant ressembler à ceci :

    Figure 5. Concepteur de flux de travail en fin de flux de travail

    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. Appuyez sur 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 celui-ci. La console Test Service Host du Gestionnaire de workflow s’ouvre.

  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 Test Service Host, un indicateur vous informe que le flux de travail a commencé. Peu après, une autre indication signale qu’il est terminé. Voici un exemple :

    Figure 6. Console hôte de service de test

    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.

    Remarque

    Si la console de l’hôte de service de test ne s’ouvre pas, il vous faudra 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 de l’e-mail indique : « L’employé attend dans la salle d’attente pour remplir les prestations et les formulaires d’emploi. » Voici un exemple :

    Figure 7. Message électronique 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 terminer 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 dernière.

  5. Vous allez travailler avec ce complément et la solution Visual Studio dans d’autres articles. Nous vous recommandons donc de retirer le complément une dernière fois quand vous avez terminé de travailler et que vous ne comptez 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.