2010-03-01 4 views
4

J'ai un service de workflow (défini de manière déclarative dans un fichier .xamlx) qui contient actuellement une activité de réception. Comme vous le savez, les services exposent généralement plus d'une opération. Et c'est ce que j'aimerais faire avec mon service aussi. Comment ajouter plus d'opérations à ce service? Sans WF, c'est vraiment facile. Ajoutez simplement autant de méthodes que vous le souhaitez et décorez-les avec OperationContract. Ensuite, le client peut appeler l'une des opérations proposées par le service. En revanche, dans WF4, lorsque j'essaie d'ajouter une autre activité de Recieve au service, je peux seulement l'ajouter avant ou après une activité existante. J'ai pensé que je pourrais utiliser l'activité Pick pour accomplir ceci, mais je devine juste. Est-ce ainsi que je le fais? Ou devrais-je ajouter un autre service de flux de travail et y ajouter l'activité de réception? (Cela ne semble pas du tout une bonne solution) Ou peut-être y a-t-il une bonne manière d'accomplir ceci?Comment définir plusieurs activités de réception au sein d'un même service de workflow (WF4)

P.S Comme vous pouvez le constater, je suis totalement nouveau pour WF en général, et WF4 en particulier.

Merci, Avi

Répondre

11

Avoir une seule activité Receive au début d'un flux de travail n'est pas rare, après tout il y a généralement un seul événement qui démarre un flux de travail. Et une fois démarré, il peut attendre que d'autres messages arrivent. Cependant, il n'y a aucune raison de ne pas écouter un flux de travail en même temps pour plusieurs éléments différents et, comme vous l'avez mentionné, une activité Choisir est la solution. Il suffit de déposer un Pick sur la surface de conception, ajouter autant de PickBrache avec des activités de réception que vous le souhaitez et vous êtes prêt à partir.

+1

Merci Maurice! Hey, attendez une seconde, vous êtes Maurice, le résolveur de problèmes :) Je lis votre blog pour apprendre des choses sur WF4. Merci beaucoup mon ami. –

+0

Oui c'est moi :-) lad vous aimez le blog, il y aura plus à venir bientôt. – Maurice

+0

OK, je l'ai fait et cela a fonctionné. Mais (je ne l'ai pas compris plus tôt) maintenant je comprends ce que vous avez dit auparavant, qu'il est assez courant qu'une activité de réception démarre un workflow et que d'autres activités de réception écoutent les messages suivants. C'est en fait exactement mon scénario. Le problème est que j'ai maintenant plusieurs (trois) activités de Reveive qui peuvent toutes être appelées à n'importe quel ordre désiré. Y a-t-il un moyen de s'assurer que le premier appel qu'un client peut effectuer ne se fera que sur un appel spécifique, et que les appels suivants ne seront effectués que sur les deux autres activités de réception? J'apprécie énormément votre aide. –

Questions connexes