2011-02-11 1 views
1

Y a-t-il un moyen de s'abonner d'une manière ou d'une autre à l'événement d'instance de workflow lorsque mon flux de travail est hébergé en tant que service?WF 4.0 WorkflowServiceHost et instaure des événements (Aborted, Completed, Idle, etc.)

J'ai créé mon workflowservicehost et l'ai ouvert, plus tard mon application cliente l'appellera et une nouvelle instance de workflow sera créée, complétée, inactive etc. selon le code de workflow à l'intérieur.

Mais workflowservicehost a uniquement des événements ouverts et fermés qui ne sont pas liés à l'instance à l'intérieur. Lorsque j'ai utilisé la classe workflowapplication pour l'hébergement, il n'y a pas eu de problème car workflowapplication a terminé, abandonné, les propriétés inactives.

Je voudrais utiliser ces événements pour la journalisation personnalisée, comme la mise à jour d'un tableau sur l'état du flux de travail. Pour obtenir ce à partir d'une base de données de suivi standard n'est pas une option car j'utilise des codes de statut personnalisés liés à l'objectif de mon flux de travail.

Répondre

3

Vous pouvez effectuer le suivi de workflows individuels dans un WorkflowServiceHost en créant un TrackingParticipant personnalisé. Si nécessaire, vous pouvez ajouter un TrackingProfile pour filtrer les événements qui vous intéressent et même extraire des variables de votre flux de travail.

Voir here pour plus d'informations pour commencer.

+0

Dans WF 3.5, je peux accéder à la classe WorkflowRuntimeBehavior à partir de la propriété WorkflowServiceHost.Description.Behaviors. Et ce comportement contient une référence pour l'ancienne classe WF 3.0 WorkflowRuntime. Est-ce que la même chose est exclue de WF 4? –

+0

Oui. WF4 est une chose complètement différente sans compatibilité ascendante. C'est l'une des choses qui a complètement changé. – Maurice

Questions connexes