WorkflowInstance Klasse

Definition

WorkflowInstance ist eine einfache Pro-Instanz-Laufzeit zum Ausführen eines Workflowprogramms. Sie dient dazu, eine neue Workflowinstanz oder eine Workflowinstanz aus einer vorhandenen Instanz zu erstellen. Die APIs, welche die WorkflowInstance.WorkflowInstanceControl verfügbar macht, stellen den minimalen Satz von Laufzeitsteuerelementen dar, von denen Vorgänge auf höherer Ebene implementiert werden können. Dieser API-Satz stellt die ganze Bandbreite der Laufzeitfunktionalität dar. Die WorkflowInstance ist eine abstrakte Klasse und benötigt die Implementierung der abstrakten Methoden eines Hosts, um Hostfunktionen (wie etwa Synchronisierung, Dauerhaftigkeit, Nachverfolgung und Erweiterungen) bereitzustellen.

public ref class WorkflowInstance abstract
public abstract class WorkflowInstance
type WorkflowInstance = class
Public MustInherit Class WorkflowInstance
Vererbung
WorkflowInstance
Abgeleitet

Hinweise

WorkflowInstance ist Single Thread und geht davon aus, dass der Host den gesamten Zugriff darauf synchronisiert. Ein Versuch, mehrere APIs gleichzeitig aufzurufen, führt dazu, dass eine InvalidOperationException ausgegeben wird.

Intern hat eine WorkflowInstance zwei Zustände: den Zustand der Ausführung und den angehaltenen Zustand. Die einzige Möglichkeit, die Laufzeit zu einem Wechsel vom angehaltenen Zustand in den Zustand der Ausführung zu bringen, besteht darin, Run aufzurufen. Alle Aktionen (außer PAUSE) können nur ausgeführt werden, während sich die Laufzeit im angehaltenen Zustand befindet. Die Laufzeit wird in den folgenden Situationen spontan angehalten:

  • Ein schwerwiegender Laufzeitfehler ist aufgetreten. Der Host wird durch OnRequestAbort signalisiert (hierbei wird kein Übergang zum angehaltenen Zustand signalisiert) und wird dann durch OnNotifyPaused benachrichtigt.

  • Eine Ausnahme im Workflow wurde nicht abgefangen und hat den Stamm verlassen. Der Host wird durch die OnNotifyUnhandledException-Methode benachrichtigt.

  • Dem Planer sind Arbeitselemente ausgegangen. Er befindet sich jetzt im Zustand Idle. Der Host wird durch die OnNotifyPaused-Methode benachrichtigt. Beachten Sie, dass dem Planer Arbeitselemente ausgegangen sein könnten, da sich die Instanz im Leerlauf befindet oder abgeschlossen ist. Mithilfe des State-Werts der Controller-Eigenschaft kann zwischen den beiden Werten unterschieden werden.

Der Host kann einen Wechsel vom Zustand der Ausführung in den angehaltenen Zustand anfordern, indem er die RequestPause-Methode oder PauseWhenPersistable-Methode der WorkflowInstance.WorkflowInstanceControl-Instanz aufruft, die von der Controller-Eigenschaft zurückgegeben wurde. Diese Anforderung liefert keine bestimmte Antwort. Das bedeutet, dass der Host nicht versuchen sollte, einen OnNotify* oder OnRequestAbort mit einer bestimmten Anforderung zum Anhalten zu korrelieren. Als Reaktion auf eine Pausenanforderung kann die Laufzeit in den angehaltenen Status wechseln und OnNotifyPaused aufrufen, während der Planer immer noch ausstehende Arbeitsaufgaben zu bewältigen hat. Der State-Wert der Controller-Eigenschaft kann verwendet werden, um zu bestimmen, ob der Planer keine weitere Arbeit aufweist oder von einer Pausenanforderung unterbrochen wurde.

Die RequestPause-Methode der WorkflowInstance.WorkflowInstanceControl-Instanz, die von der Controller-Eigenschaft zurückgegeben wurde, ist die einzige Methode, die aufgerufen werden kann, während sich die WorkflowInstance im Status der Ausführung befindet. Alle anderen Methoden lösen eine InvalidOperationException aus, wenn sie aufgerufen werden. Aufgrund der Regeln für den Wechsel der WorkflowInstance von einem Zustand in einen anderen kann das allgemeine Konzept für den Zustand der Ausführung und den angehaltenen Zustand wie folgt definiert werden:

  • Wird ausgeführt: der Zustand zwischen einem-Befehl Run und der nächsten WorkflowInstance. OnNotify *.

  • Angehalten: der Zustand zwischen der letzten WorkflowInstance. OnNotify * und dem nächsten-Befehl Run .

Konstruktoren

WorkflowInstance(Activity)

Initialisiert eine neue Instanz der WorkflowInstance-Klasse mit der angegebenen Workflowdefinition.

WorkflowInstance(Activity, WorkflowIdentity)

Initialisiert eine neue Instanz der WorkflowInstance-Klasse mit der angegebenen Workflowdefinition und Definitionsidentität.

Eigenschaften

Controller

Ruft die WorkflowInstance.WorkflowInstanceControl-Instanz für diese WorkflowInstance ab.

DefinitionIdentity

Ruft die Definitionsidentität der WorkflowInstance ab oder legt diese fest.

HostEnvironment

Ruft die Stammumgebung für die Argumente und Variablen der Workflowinstanz ab oder legt sie fest.

Id

Ruft den eindeutigen Bezeichner der Workflowinstanz ab.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die Workflowinstanz initialisiert wurde.

SupportsInstanceKeys

Ruft einen Wert ab, der angibt, ob der Host die Zuordnung von InstanceKeys mit einer Laufzeitinstanz unterstützt.

SynchronizationContext

Ruft den SynchronizationContext für die Planung der Workflowinstanz ab.

WorkflowDefinition

Ruft die Workflowdefinition der Workflowinstanz ab.

Methoden

BeginFlushTrackingRecords(TimeSpan, AsyncCallback, Object)

Wird von der Workflowlaufzeit aufgerufen, um damit zu beginnen, ausstehende Nachverfolgungsdatensätze asynchron an Nachverfolgungsteilnehmer zu senden.

DisposeExtensions()

Ruft Dispose() für alle Erweiterungen auf, die IDisposable implementieren.

EndFlushTrackingRecords(IAsyncResult)

Wird von der Workflowlaufzeit zum Beenden der Nachverfolgungsaktivität aufgerufen.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
FlushTrackingRecords(TimeSpan)

Wird von der Workflowlaufzeit aufgerufen, um ausstehende Nachverfolgungsdatensätze an Nachverfolgungsteilnehmer zu senden.

GetActivitiesBlockingUpdate(Object, DynamicUpdateMap)

Ruft die Liste der Aktivität ab, die das Update des Workflows blockiert.

GetExtension<T>()

Gibt eine Erweiterung des angegebenen Typs zurück.

GetExtensions<T>()

Gibt alle für den angegebenen Typ gefundenen Erweiterungen zurück.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Initialize(IDictionary<String,Object>, IList<Handle>)

Wird vom Host aufgerufen, um die Workflowinstanz mit den Argumentwerten und Ausführungseigenschaften zu initialisieren.

Initialize(Object)

Wird vom Host aufgerufen, um die Workflowinstanz mit dem Workflowlaufzeitzustand zu initialisieren.

Initialize(Object, DynamicUpdateMap)

Wird vom Host aufgerufen, um die Workflowinstanz mit dem Workflowlaufzeitzustand und der Update-Zuordnung zu initialisieren.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
OnBeginAssociateKeys(ICollection<InstanceKey>, AsyncCallback, Object)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass neue Instanzschlüssel dieser Instanz zugeordnet werden müssen.

OnBeginFlushTrackingRecords(AsyncCallback, Object)

Asynchroner Aufruf, um den Host zu bitten, ausstehende Nachverfolgungsdatensätze für Nachverfolgungsteilnehmer zu leeren.

OnBeginPersist(AsyncCallback, Object)

Asynchroner Aufruf, um den Host aufzufordern, den Workflow beizubehalten.

OnBeginResumeBookmark(Bookmark, Object, TimeSpan, AsyncCallback, Object)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Vorgang zur Lesezeichenwiederaufnahme beginnt.

OnDisassociateKeys(ICollection<InstanceKey>)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein bestimmter Satz Instanzschlüssel dieser Instanz nicht länger zugeordnet werden darf.

OnEndAssociateKeys(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Vorgang zum Zuordnen von Schlüsseln abgeschlossen wurde.

OnEndFlushTrackingRecords(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, wenn ein Vorgang zur Löschung von Nachverfolgungsdatensätzen abgeschlossen wurde.

OnEndPersist(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Beibehaltungsvorgang abgeschlossen wurde.

OnEndResumeBookmark(IAsyncResult)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Vorgang zur Lesezeichenwiederaufnahme abgeschlossen wurde.

OnNotifyPaused()

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass die Workflowinstanz vom Zustand der Ausführung in den angehaltenen Zustand gewechselt hat.

OnNotifyUnhandledException(Exception, Activity, String)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass eine nicht behandelte Ausnahme in der Workflowinstanz aufgetreten ist.

OnRequestAbort(Exception)

Wird von der Workflowlaufzeit aufgerufen, um den Host zu benachrichtigen, dass ein Abbruchvorgang für die Workflowinstanz angefordert wurde.

RegisterExtensionManager(WorkflowInstanceExtensionManager)

Wird vom Host aufgerufen, um den angegebenen Erweiterungs-Manager zu registrieren, zu überprüfen, dass alle erforderlichen Erweiterungen vorhanden sind, und die Auflistung der zu verwendenden Erweiterungen zu initialisieren.

ThrowIfReadOnly()

Löst eine InvalidOperationException aus, wenn die Workflowinstanz initialisiert wurde, wie von IsReadOnly bestimmt.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für