Verwenden von Workflowänderungen in Workflows
Mit Workflowänderungen können während der Laufzeit Änderungen an einer ausgeführten Instanz eines Workflows gemacht werden. Wünschenswert sind diese Änderungen unter Umständen aufgrund von Auslassungen während der Entwurfszeit, Änderungen an Eigenschaften und Bindungen von Aktivitäten oder aufgrund der Notwendigkeit einer Geschäftslogik, die Geschäftsprozesse optimiert und genauere Modelle der Prozesse erstellt. Workflowänderungen sind nicht für Situationen vorgesehen, in denen umfassende Änderungen vorgenommen werden sollen, da dies zu einem Workflow führt, der beträchtlich von den ursprünglichen Entwurfsgrundsätzen abweicht. Entwerfen Sie in einem derartigen Fall einen neuen Workflow, anstatt Änderungen an einer ausgeführten Instanz vorzunehmen.
Workflowänderungen gelten für eine einzelne Instanz eines Workflows. Sie unterstützen keine typbasierten Änderungen, die in alle ausgeführten und zukünftigen Instanzen eines angegebenen Workflowtyps repliziert werden.
Workflowänderungen eignen sich für folgende Schritte:
Beispielsweise Ändern der Workflowstruktur, Hinzufügen oder Entfernen einer Aktivität.
Ändern der Flusssteuerung.
Nachfolgend finden Sie einige Beispiele allgemeiner Workflowänderungen:
Ändern eines von einer PolicyActivity-Aktivität verwendeten RuleSet.
Aktualisieren der RuleCondition-Definitionen zum Ändern des Verhaltens von Verzweigungsaktivitäten wie ConditionedActivityGroup und IfElseActivity.
Hinzufügen einer neuen benutzerdefinierten Aktivität oder einer InvokeWorkflowActivity-Aktivität, falls dem Workflow nach der Bereitstellung und dem Beginn der Ausführung ein neuer Geschäftsprozess hinzugefügt werden muss.
Deklaratives Erstellen von Änderungen mithilfe von Workflowmarkup von außerhalb des Workflows unter Verwendung von aktualisiertem Markup als Parameter für die Änderung.
Hinzufügen einer neuen EventDrivenActivity-Aktivität zum Antworten auf ein neues Ereignis (zum Beispiel ein zusätzlicher Zustimmungsschritt).
Die Übernahme einer Workflowänderung für einen ausgeführten Workflow kann an zwei verschiedenen Einstiegspunkten auftreten: in der Workflowcodedatei und außerhalb des Workflows (beispielsweise im Workflowhost). Weitere Informationen zum Übernehmen von Workflowänderungen finden Sie unter Gewusst wie: Anwenden von Workflowänderungen für Workflows.
Einschränkungen bezüglich Workflowänderungen
Nachfolgend sind einige der von Windows Workflow Foundation verordneten Einschränkungen bezüglich Workflowänderungen aufgeführt, die zu beachten sind:
Aktivitäten können einer Workflowinstanz hinzugefügt oder daraus entfernt werden, doch Eigenschaften in einer vorhandenen Aktivität können nur geändert werden, wenn es sich bei diesen Eigenschaften um deklarative Regelbedingungen oder Regelsätze handelt.
Bei benutzerdefinierten zusammengesetzten Aktivitätstypen, die untergeordnete Aktivitäten als Teil der Definition beinhalten, können keine untergeordneten Aktivitäten dynamisch hinzugefügt oder entfernt werden. Dies liegt daran, dass es sich bei derartigen benutzerdefinierten zusammengesetzten Aktivitäten um "Blackbox"-Aktivitäten handelt und während der Laufzeit keine grundlegenden Änderungen möglich sind.
Eine Aktivität, die sich nicht im Initialized-Zustand oder im Closed-Zustand befindet, kann während der Laufzeit nicht dynamisch entfernt werden.
Ein Workflowentwickler kann die Verwendung von Workflowänderungen über eine ActivityCondition, die an die Stammaktivität des Workflows angehängt ist, beschränken. Diese Aktivität wird von der Workflowlaufzeit dazu verwendet, zu bestimmen, ob Workflowänderungen für eine bestimmte Workflowinstanz zulässig sind.
Mit benutzerdefinierten zusammengesetzten Aktivitäten können vorgeschlagene Änderungen überprüft werden, wie zum Beispiel das Hinzufügen oder Entfernen von untergeordneten Aktivitäten. Dadurch können Aktivitätsentwickler feststellen, ob vorgeschlagene Workflowänderungen mit der gewünschten Funktion der Aktivität in Konflikt stehen. Diese Funktion wird über ein benutzerdefiniertes ActivityValidator bereitgestellt, in dem Entwickler die ValidateActivityChange-Methode überschreiben und die benutzerdefinierte Prüfungslogik für Workflowänderungen hinzufügen können.
Siehe auch
Konzepte
Gewusst wie: Anwenden von Workflowänderungen für Workflows
Weitere Ressourcen
Entwickeln von Workflowaktivitäten
Entwickeln von Workflows
Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.