Procédure : créer un service de workflow avec des activités de messagerie
Cette rubrique décrit comment créer un service de workflow simple, à l'aide d'activités de messagerie. Elle est consacrée à la mécanique de création d'un service de workflow, simplement constitué d'activités de messagerie. Dans un service réel, le workflow contient de nombreuses autres activités. Le service implémente une opération nommée Echo, qui prend une chaîne et la retourne à l'appelant. Cette rubrique est la première d'une série de deux. La rubrique suivante, Procédure : accéder à un service à partir d'une application de workflow, explique comment créer une application de workflow capable d'appeler le service créé dans cette rubrique.
Pour créer un projet de service de workflow
Démarrez Visual Studio 2012.
Cliquez sur le menu Fichier, sélectionnez Nouveau, puis Projet pour afficher la boîte de dialogue Nouveau projet. Sélectionnez Workflow dans la liste des modèles installés et Application de service de workflow WCF dans la liste des types de projet. Nommez le projet
MyWFService
et utilisez l'emplacement par défaut, comme indiqué dans l'illustration suivante.Cliquez sur le bouton OK pour fermer la boîte de dialogue Nouveau projet.
Lorsque le projet est créé, le fichier Service1.xamlx s'ouvre dans le concepteur, comme indiqué dans l'illustration suivante.
Cliquez avec le bouton droit sur l'activité intitulée Service séquentiel et sélectionnez Supprimer.
Pour implémenter le service de workflow
Sélectionnez l'onglet Boîte à outils dans la partie gauche de l'écran pour afficher la boîte à outils et cliquez sur la punaise pour garder la fenêtre ouverte. Développez la section Messagerie de la boîte à outils pour afficher les activités de messagerie et les modèles d’activité de messagerie, comme indiqué dans l’illustration suivante.
Glissez-déposez un modèle ReceiveAndSendReply sur le concepteur de workflow. Cela crée une activité Sequence, avec une activité Receive suivie d'une activité SendReply, comme indiqué dans l'illustration suivante.
Remarque : l'activité SendReply possède une propriété Request qui est définie sur
Receive
, le nom de l'activité Receive à laquelle répond l'activité SendReply.Dans l'activité Receive, tapez
Echo
dans la zone de texte intitulée OperationName. Cela définit le nom de l'opération que le service implémente.Avec l'activité Receive sélectionnée, ouvrez la fenêtre des propriétés, si elle n'est pas déjà ouverte, en cliquant sur le menu Affichage et en sélectionnant Fenêtre Propriétés. Faites défiler la Fenêtre Propriétés vers le bas pour trouver CanCreateInstance, puis activez la case à cocher, comme indiqué dans l'illustration suivante. Ce paramètre active l'hôte de service de workflow pour créer une nouvelle instance du service (si requis) lorsqu'un message est reçu.
Sélectionnez l'activité Sequence et cliquez sur le bouton Variables dans l'angle inférieur gauche du concepteur. Cela affiche l'éditeur de variables. Cliquez sur le lien Créer une variable pour ajouter une variable pour stocker la chaîne envoyée à l'opération. Nommez la variable
msg
et définissez son type de Variable à la valeur Chaîne, comme indiqué dans l'illustration suivante.Cliquez encore sur le bouton Variables pour fermer l'éditeur de variables.
Cliquez sur le lien Définir dans la zone de texte Contenu de l'activité Receive pour afficher la boîte de dialogue Définition du contenu. Activez la case d’option Paramètres, cliquez sur le lien Ajouter un nouveau paramètre, tapez
inMsg
dans la zone de texte nom, sélectionnez Chaîne dans la zone de liste déroulante Type, et tapezmsg
dans la zone de texte Affecter à, comme le montre l’illustration suivante.Cela spécifie que l'activité Receive reçoit le paramètre de chaîne et que les données sont liées à la variable
msg
. Cliquez sur OK pour fermer la boîte de dialogue Définition du contenu.Cliquez sur le lien Définir dans la zone Contenu de l'activité SendReply pour afficher la boîte de dialogue Définition du contenu. Activez le bouton radio Paramètres, cliquez sur le lien Ajouter un nouveau paramètre, tapez
outMsg
dans la zone de texte nom, sélectionnez Chaîne dans la zone de liste déroulante Type, etmsg
dans la zone de texte Valeur, comme le montre l’illustration suivante.Cela spécifie que l'activité SendReply envoie un message ou un type de contrat de message et que les données sont liées à la variable
msg
. Comme il s'agit d'une activité SendReply, cela signifie que les données dansmsg
sont utilisées pour remplir le message que l'activité renvoie au client. Cliquez sur OK pour fermer la boîte de dialogue Définition du contenu.Enregistrez et générez la solution en cliquant sur le menu Générer, puis en sélectionnant Générer la solution.
Configurer le projet du service de workflow
Le service de workflow est terminé. Cette section explique comment configurer la solution de service de workflow pour en faciliter l'hébergement et l'exécution. Cette solution utilise le serveur de développement ASP.NET pour héberger le service.
Pour définir les options de démarrage du projet
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur MyWFService et sélectionnez Propriétés pour afficher la boîte de dialogue Propriétés du projet.
Sélectionnez l'onglet Web et sélectionnez Page spécifique sous Action de démarrage, puis tapez
Service1.xamlx
dans la zone de texte, comme indiqué dans l'illustration suivante.Cela héberge le service défini dans Service1.xamlx dans le serveur de développement ASP.NET.
Appuyez sur Ctrl+F5 pour lancer le service. L'icône du serveur de développement ASP.NET s'affiche dans la partie inférieure droite du Bureau, comme le montre l'image suivante.
En outre, le navigateur affiche la page d’aide du service WCF pour le service.
Passez maintenant à la rubrique Procédure : accéder à un service à partir d'une application de workflow pour créer un client de workflow qui appelle ce service.