Workflow Foundation > Trucs & Astuces > Récupérer la liste des instances d’un Workflow
       Accueil
       L'équipe


       Présentation
       Activités WF
       Articles
       Tutoriaux
       Trucs & Astuces


       Forum (MSDN)
       Téléchargements
       Ressources FR
       Annuaire des liens
       Formation (WW)


       Administration


 


Ne ratez pas le MSDN et TechNet Tour 2008 : votre nouveau rendez-vous Développeur dans votre région

Récupérer la liste des instances d’un Workflow

Depuis la bêta 2, il est possible de récupérer la liste des instances d’un Workflow, qu’elles soient persistés ou non.
La méthode suivante permet par exemple, dans un contexte d’application hôte Web, de renvoyer la liste des instances actives dans une liste :

[WebMethod]
public object[] GetInstances()
{
    WorkflowRuntime workflowRuntime = WorkflowWebRequestContext.Current.WorkflowRuntime;

    //recuperation du service de persistance afin de récuprer toutes les instances de Workflow en cours (persistés ou non)
    SqlWorkflowPersistenceService persistance = (SqlWorkflowPersistenceService)workflowRuntime.GetService(typeof(SqlWorkflowPersistenceService));
    IEnumerable<SqlPersistenceWorkflowInstanceDescription> instances = persistance.GetAllWorkflows();

    ArrayList res = new ArrayList();

    foreach (SqlPersistenceWorkflowInstanceDescription instance in instances)
       {
       res.Add(instance.WorkflowInstanceId.ToString());
       }

    return res.ToArray();
}