0 votes

Est-il possible d'injecter des valeurs dans les arguments du flux de travail ?

J'ai un Workflow .net 4.0, que j'héberge moi-même (juste avec WorkflowInstance.Run) et lorsque je réhydrate le workflow, je voudrais initialiser certains de ses arguments internes afin que les activités suivantes puissent utiliser ces valeurs... Comment puis-je m'y prendre ?

0voto

Jeeva S Points 1266

Utiliser les Arguments (In/OutArgument) pour définir l'entrée ou la sortie pour le workflow (les activités aussi) .

voici l'échantillon de syntaxe

Dictionary <string, object> input = new Dictionary <string, object> (); 
input.Add( "UserName" , userName); 
input.Add ( "UserName", userName); 
WorkflowInstance myInstance = new WorkflowInstance(
new WorkflowConsoleApplication2.Sequence1(),input); 

WorkflowInstance myInstance = new WorkflowInstance (
new WorkflowConsoleApplication2.Sequence1 (), input);

dans votre plan de travail, définissez l'argument d'entrée et vous pourrez ensuite accéder à la valeur de l'argument.

0voto

Tim Lovell-Smith Points 2635

Normalement, les arguments sont à fournir à votre flux de travail avant que vous ne commenciez à exécuter le flux de travail la première fois.

Par exemple, vous pouvez avoir InArgument input1, InArgument input2, OutArugment output, et lorsque vous créez le flux de travail, vous passez toutes les entrées, et une variable pour que le flux de travail stocke toutes les sorties.

Une fois que le flux de travail est déjà en cours, il a des arguments, il ne s'attend pas à ce qu'ils soient modifiés par un facteur externe. (Et au cas où ce serait un point de confusion : normalement, il ne va pas non plus reprendre l'exécution au début de votre flux de travail - il va reprendre à un point de repère arbitraire au milieu). Alors, comment faire autrement pour transmettre des données à votre flux de travail au milieu de l'exécution ?

Je vous propose ici d'examiner les activités de messagerie. Les données entrent dans le flux de travail par le biais de la valeur OutArgument de ReceiveMessage. Comment est-elle arrivée là ? Elle a été définie par l'activité Receive. Mais comment l'activité de réception l'a obtenu pour le définir ? Eh bien, d'abord l'hôte du service dit à l'activité de réception de reprendre parce qu'il a un message. Puis l'activité de réception dit "quel message ai-je reçu ?". Personne n'a poussé des données dans cette activité comme par magie. Au contraire, une fois l'activité activée, elle sait qu'elle doit extraire des données d'une file d'attente quelque part.

J'espère que vous pourrez utiliser cette idée de 1) quelqu'un stocke les données nécessaires au flux de travail 2) le runtime ou l'hôte de service ou autre réactive le workflow 3) les activités récupèrent les données dont elles ont besoin lorsqu'elles s'exécutent (après réactivation) comme modèle pour votre solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X