Procédure : accéder à un service à partir d’une application de workflow

Cette rubrique décrit comment appeler un service de workflow à partir d'une application console de workflow. Elle dépend de la réalisation effective de la rubrique Procédure : Créer un service de workflow avec des activités de messagerie. Cette rubrique décrit comment appeler un service de workflow à partir d’une application de workflow, mais les mêmes méthodes peuvent être utilisées pour appeler n’importe quel service WCF (Windows Communication Foundation) à partir d’une application de workflow.

Créer un projet d'application console de workflow.

  1. Démarrez Visual Studio 2012.

  2. Chargez le projet MyWFService que vous avez créé dans la rubrique Procédure : Créer un service de workflow avec des activités de messagerie.

  3. Cliquez avec le bouton droit sur la solution MyWFService dans l’Explorateur de solutions, puis sélectionnez Ajouter, Nouveau projet. Sélectionnez Workflow dans les Modèles installés et Application console de workflow dans la liste des types de projet. Nommez le projet MyWFClient et utilisez l'emplacement par défaut, comme indiqué dans l'illustration suivante.

    Add New Project Dialog

    Cliquez sur le bouton OK pour fermer la boîte de dialogue Ajouter un nouveau projet.

  4. Après avoir créé le projet, le fichier Workflow1.xaml s'ouvre dans le concepteur. Cliquez sur l’onglet Boîte à outils pour ouvrir la boîte à outils si elle n’est pas déjà ouverte, puis cliquez sur la punaise pour garder la fenêtre de la boîte à outil ouverte.

  5. Appuyez sur Ctrl+F5 pour créer et lancer le service. Comme auparavant, le Serveur de développement ASP.NET se lance et le navigateur affiche la page d’aide de WCF. Notez l'URI de cette page, car vous devez l'utiliser dans l'étape suivante.

    Browser displaying WCF help page and URI

  6. Cliquez avec le bouton droit sur le projet MyWFClient dans l’Explorateur de solutions et sélectionnez Ajouter>Référence de service. Cliquez sur le bouton Découvrir pour rechercher les services de la solution active. Cliquez sur le triangle à côté de Service1.xamlx dans la liste des services. Cliquez sur le triangle à côté de Service1 pour répertorier les contrats implémentés par le service Service1. Développez le nœud Service1 dans la liste Services. L’opération Echo est affichée dans la liste Opérations, comme le montre l’illustration suivante.

    Add Service Reference Dialog

    Conservez l’espace de noms par défaut et cliquez sur OK pour fermer la boîte de dialogue Ajouter une référence de service. La boîte de dialogue suivante s'affiche.

    Add Service Reference Notification dialog

    Cliquez sur OK pour fermer la boîte de dialogue. Appuyez ensuite sur Ctrl+Maj+B pour générer la solution. Notez qu’une nouvelle section nommée MyWFClient.ServiceReference1.Activities a été ajoutée dans la boîte à outils. Développez cette section ; l’activité Echo a été ajoutée comme indiqué dans l’illustration suivante.

    Echo activity in the toolbox

  7. Faites glisser une activité Sequence sur l'aire du concepteur. Elle se trouve sous la section Flux de contrôle de la boîte à outils.

  8. Avec le focus sur l’activité Sequence, cliquez sur le lien Variables et ajoutez une variable de chaîne nommée inString. Donnez à la variable la valeur par défaut "Hello, world" ainsi qu’une variable de chaîne nommée outString, comme indiqué dans le diagramme suivant.

    Adding an inString variable

  9. Faites glisser et déposez une activité Echo dans Sequence. Dans la fenêtre des propriétés, liez l’argument inMsg à la variable inString et l’argument outMsg à la variable outString, comme indiqué dans l’illustration suivante. Cela transmet la valeur de la variable inString à l'opération, puis prend la valeur de retour et la place dans la variable outString.

    Binding the arguments to variables

  10. Faites glisser et déposez une activité WriteLine sous l’activité Echo pour afficher la chaîne retournée par l’appel du service. L’activité WriteLine se trouve dans le nœud Primitives de la boîte à outils. Liez l’argument Text de l’activité WriteLine à la variable outString en tapant outString dans la zone de texte sur l’activité WriteLine. Le workflow doit maintenant ressembler à l'illustration suivante.

    The complete client workflow

  11. Cliquez avec le bouton droit sur la solution MyWFService et sélectionnez Définir les projets de démarrage. Activez la case d’option Plusieurs projets de démarrage et sélectionnez Démarrer pour chaque projet dans la colonne Action, comme indiqué dans l’illustration suivante.

    Startup projects options

  12. Appuyez sur Ctrl+F5 pour lancer à la fois le service et le client. Le Serveur de développement ASP.NET héberge le service, le navigateur affiche la page d’aide de WCF, et l’application de workflow cliente est lancée dans une fenêtre de console et affiche la chaîne retournée par le service (« Hello, world »).

Voir aussi