SqlTrackingQueryOptions.WorkflowStatus Eigenschaft

Definition

Ruft den WorkflowStatus-Wert ab oder legt den Wert fest, der die Reihe der SqlTrackingWorkflowInstance-Objekte einschränkt, die durch einen Aufruf von GetWorkflows(SqlTrackingQueryOptions) zurückgegeben werden.

public:
 property Nullable<System::Workflow::Runtime::WorkflowStatus> WorkflowStatus { Nullable<System::Workflow::Runtime::WorkflowStatus> get(); void set(Nullable<System::Workflow::Runtime::WorkflowStatus> value); };
public System.Workflow.Runtime.WorkflowStatus? WorkflowStatus { get; set; }
member this.WorkflowStatus : Nullable<System.Workflow.Runtime.WorkflowStatus> with get, set
Public Property WorkflowStatus As Nullable(Of WorkflowStatus)

Eigenschaftswert

Eine der WorkflowStatus-Werte oder NULL (Nothing in Visual Basic). Der Standardwert ist NULL (Nothing).

Beispiele

Das folgende Beispiel veranschaulicht das Festlegen der WorkflowStatus-Eigenschaft. Dieses Beispiel stammt aus dem Workflow Monitor SDK-Beispiel. Weitere Informationen finden Sie unter Beispiel für den Workflowmonitor.

try
{
    List<SqlTrackingWorkflowInstance> queriedWorkflows = new List<SqlTrackingWorkflowInstance>();
    SqlTrackingQuery sqlTrackingQuery = new SqlTrackingQuery(connectionString);
    SqlTrackingQueryOptions sqlTrackingQueryOptions = new SqlTrackingQueryOptions();
    sqlTrackingQueryOptions.StatusMinDateTime = from.ToUniversalTime();
    sqlTrackingQueryOptions.StatusMaxDateTime = until.ToUniversalTime();
    // If QualifiedName, FieldName, or DataValue is not supplied, we will not query since they are all required to match
    if (!((string.Empty == trackingDataItemValue.QualifiedName) || (string.Empty == trackingDataItemValue.FieldName) || ((string.Empty == trackingDataItemValue.DataValue))))
        sqlTrackingQueryOptions.TrackingDataItems.Add(trackingDataItemValue);

    queriedWorkflows.Clear();

    if ("created" == workflowEvent.ToLower(CultureInfo.InvariantCulture))
    {
        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Created;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));
    }
    else if ("completed" == workflowEvent.ToLower(CultureInfo.InvariantCulture))
    {
        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Completed;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));
    }
    else if ("running" == workflowEvent.ToLower(CultureInfo.InvariantCulture))
    {
        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Running;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));
    }
    else if ("suspended" == workflowEvent.ToLower(CultureInfo.InvariantCulture))
    {
        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Suspended;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));
    }
    else if ("terminated" == workflowEvent.ToLower(CultureInfo.InvariantCulture))
    {
        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Terminated;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));
    }
    else if (("all" == workflowEvent.ToLower(CultureInfo.InvariantCulture)) || string.IsNullOrEmpty(workflowEvent))
    {
        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Created;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));

        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Completed;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));

        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Running;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));

        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Suspended;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));

        sqlTrackingQueryOptions.WorkflowStatus = WorkflowStatus.Terminated;
        queriedWorkflows.AddRange(sqlTrackingQuery.GetWorkflows(sqlTrackingQueryOptions));
    }
    return queriedWorkflows;
}
catch (Exception exception)
{
    throw new Exception("Exception in GetWorkflows", exception);
}

Hinweise

SqlTrackingQueryOptions schränkt die Reihe der SqlTrackingWorkflowInstance-Objekte, die durch einen Aufruf von SqlTrackingQuery.GetWorkflows zurückgegeben werden, auf die Workflowinstanzen ein, für die folgende Bedingungen gelten: Type wird durch WorkflowType angegeben, der Status wird durch WorkflowStatus, die Dauer der Einschränkung wird durch StatusMinDateTime und StatusMaxDateTime angegeben, und extrahierte Daten der Workflowinstanzen entsprechen mindesten einem der durch TrackingDataItemValue angegebenen TrackingDataItems-Objekte.

Der Status einer Workflowinstanz entspricht im folgenden Fall WorkflowStatus: Für den letzten WorkflowTrackingRecord, der für diese Workflowinstanz vor oder während des angegebenen Zeitraum empfangen wird, ist die WorkflowTrackingRecord.TrackingWorkflowEvent-Eigenschaft auf einen TrackingWorkflowEvent-Wert festgelegt, der dem durch System.Workflow.Runtime.WorkflowStatus angegebenen WorkflowStatus-Wert zugeordnet ist. Deshalb erfordert das TrackingProfile für die Workflowinstanz einen WorkflowTrackPoint, der für den entsprechenden System.Workflow.Runtime.Tracking.TrackingWorkflowEvent-Wert konfiguriert ist. Nur TrackingWorkflowEvent-Werte, die in Workflow-Verfolgungsdatensätzen gesendet wurden, können abgeglichen werden. Wenn keine Workflow-Verfolgungsdatensätze für diese Workflowinstanz gesendet wurden, gilt der Status der Workflowinstanz als WorkflowStatus.Created.

Die folgende Tabelle veranschaulicht die Zuordnung zwischen den TrackingWorkflowEvent-Werten und den WorkflowStatus-Werten.

TrackingWorkflowEvent-Wert WorkflowStatus-Wert
Aborted Running
Changed Running
Completed Completed
Created Created
Exception Running
Idle Running
Loaded Running
Persisted Running
Resumed Running
Started Running
Suspended Suspended
Terminated Terminated
Unloaded Running

Wenn WorkflowStatus NULL (Nothing) ist, wird die Reihe der zurückgegebenen SqlTrackingWorkflowInstance-Objekte nicht durch den Status eingeschränkt. Anders ausgedrückt, ein SqlTrackingWorkflowInstance-Objekt wird für jede Workflowinstanz zurückgegeben, die den Parametern entspricht, die von den sonstigen Eigenschaften von SqlTrackingQueryOptions angegeben werden.

Gilt für: