Frage

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

 ExternalDataExchangeService dataExchangeService;
 dataExchangeService = new ExternalDataExchangeService();
 workflowRuntime.AddService(dataExchangeService);

 PaymentProcessingService paymentProcessing;
 paymentProcessing = new PaymentProcessingService();
 dataExchangeService.AddService(paymentProcessing);

Mit dem obigen Code, unsere Anwendung paymentProcessing.RaiseXXXXEvent zu interaktiv mit der Workflow-Instanz verwenden kann. Meine Frage ist: Was ist das Prinzip ist ein solcher Mechanismus zu implementieren. Ich denke, das ist eine Art von Event Driven Mustern , aber wie kann ich diesen Mechanismus implementieren und warum? Bitte zeigen Sie mir die Richtung oder alle Verweise werden geschätzt.

Durch die Art und Weise, ist es der Mechanismus in jBPM? Does jBPM umfassen Sequenz Workflow und Zustandsmaschine Workflow wie Windows Workflow Foundation?

Danke!

War es hilfreich?

Lösung

WF definiert eine Reihe von Diensten, dass Kern Workflow Handgriff Thread-Scheduling, Workflow Persistenz, Transaktionen und Workflow-Tracking. Die Designer von WF konnte eingebettet die Umsetzung dieser Dienste in der Runtime-Engine selbst, aber sie entschied sich weise externalisieren sie setzen ihre Implementierungen in steckbare Dienstleistungen. Diese Orte, die Sie in Kontrolle . Du entscheidest die Dienste zu nutzen (einige sind optional) und der mit der Umsetzung für jeden Dienst zu verwenden.

WF unterstützt auch eine andere Art von Dienst als lokaler Service bekannt (manchmal Daten genannt Austausch service). Dies ist ein Service, die Sie selbst entwerfen und implementieren. Ein lokaler Dienst kann dazu dienen, fast jeden Zweck, sondern eine allgemeine Anwendung ist die Kommunikation zwischen Workflow-Instanzen zu erleichtern und die Host-Anwendung. Im Gegensatz dazu jeden Kern Workflow-Dienste haben einen Zweck (zum Beispiel Persistenz, Tracking), die von Microsoft definiert wurde. Sie können alternative Implementierungen entwickeln für jeden Kern-Service, sondern dass ihr definierten Zweck nicht ändert.

Um Ihren lokalen Service für Ihre Workflow-Instanz zu haben. Es gibt verschiedene Methoden, dies zu tun. Am einfachsten wäre es, die CallExternalMethodActivity zu bedienen und zu konfigurieren es.

Auch der Service sollte eine Schnittstelle und dekoriert mit [ExternalDataExchange].

Wenn Sie an dem Schreiben Ihre eigene Implementierung eines Core Service suchen, hier ist ein Link, die beschreiben, wie Sie Ihren eigenen Kern Workflow Service bieten .

http://msdn.microsoft. com / en-us / library / ms734705 (v = VS.90) aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top