Ich arbeite mit einem State-Machine-Workflow und verwende den ExternalDataExchange-Service, um Ereignisse im Host zu behandeln und über Eventargs Daten in den Workflow zu bekommen.Wie erhalte ich Daten aus einem Workflow für Zustandsautomaten, bevor der Workflow in den abgeschlossenen Zustand übergeht?
Jetzt muss ich jedoch Daten aus dem Workflow bekommen und ich habe Schwierigkeiten.
Die Ausgabeparameter sind nur im Ereignis "Workflow abgeschlossen" verfügbar, aber mein Workflow ist nicht vollständig. Der Host löst ein Ereignis mit einigen Daten aus und wartet im Wesentlichen darauf, dass der Workflow die Verarbeitung des Ereignisses beendet (manueller Scheduler). Bei meiner speziellen Behandlung des Ereignisses im Workflow wird eine Validierung durchgeführt, und sollte diese Validierung fehlschlagen, wird NICHT in den nächsten Status gewechselt, sondern ich muss die Validierungsergebnisse an die Hostanwendung zurücksenden können.
Ein Beispiel dafür, was ich versuche, dies würde so aussehen zu erreichen:
wirdOrderWorkflow
PendingOrderState
ImportOrderEvent
- If the order passes validation move to CompletedState
- Else return the validation results to the host (how?)
CompletedState
Es sollte auch darauf hingewiesen, dass mein Gastgeber in der Tat ist eine Anwendung ASP.NET MVC, so ich versuche, Vermeiden Sie die direkte Verbindung von Ereignissen auf meinem Controller/meiner Seite, um lokale Dienste vom Workflow-Aufruf aus zu behandeln, aber ich bin nicht völlig dagegen, wenn es so gemacht werden muss.
Cool! Ich mag die Tatsache, dass Sie IDictionary als eine der Schwächen verwendet haben, die ich mit WF Interace Service aus dem WF Pro Buch sehe, ist, dass Parameterlisten ziemlich lang werden können, wenn Sie Daten ein- und auslagern müssen. –