SqlTrackingQueryOptions.WorkflowStatus Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 Workflowmonitorbeispiel.
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.