2010-06-15 9 views
3

En utilisant ce MSDN Article comme exemple de mise en pause et de reprise, on pourrait supposer que ce serait assez simple. Voilà comment je suis « pause » le flux de travail ...Comment charger un flux de travail correctement après l'avoir suspendu/persistant?

LastWfGuid = workflow.Id; 
workflow.Unload(); 

assez simple, il est censé persister au magasin d'instance (que j'ai déjà mis en avant ces deux lignes) et je ne vois entrées dans le Vue d'instance et InstancesTable. Quand je suis prêt à reprendre le flux de travail que je fais ...

workflow = new WorkflowApplication(myActivity, myWfArgs); 
workflow.InstanceStore = wfStore; 
workflow.Load(LastWfGuid); 

À ce moment-là, je reçois un InvalidOperationException avec le message d'exception ...

Workflow inputs cannot be used with Load or LoadRunnableInstance, since they are only provided to new instances. 

Si je ne peux pas charger un workflow précédemment conservé, comment puis-je le réactiver? Je ai essayé simplement caling Persist() à la place de Unload() et de l'extérieur, il semble ok et je ne reçois aucune exception. Mais, le workflow continue à fonctionner, ce qui n'est pas ce que je cherche. Je veux faire une pause puis reprendre mon flux de travail.

Répondre

3

Supprimez l'argument myWfArgs lors de la création de WorkflowApplication utilisée pour charger l'instance de flux de travail existante. Juste comme ça:

workflow = new WorkflowApplication(myActivity); 
workflow.InstanceStore = wfStore; 
workflow.Load(LastWfGuid); 
+0

Juste par curiosité, comment cela réglerait-il mon problème de charge? Y at-il une raison pour laquelle cela empêcherait un curriculum vitae? – jlafay

+0

C'est génial car il fait ce que j'ai besoin de faire. Il fait une pause et reprend à la demande. Le seul problème que j'ai avec cette approche est comment puis-je passer dans mes arguments que j'ai besoin ou font-ils partie de l'état quand persisté? – jlafay

+1

Toutes les données transmises au workflow lors du démarrage, ainsi que dans les variables de portée à ce moment, sont enregistrées et rechargées dans le cadre de l'état du workflow. – Maurice