Udostępnij za pośrednictwem


SqlTrackingQueryOptions.WorkflowStatus Właściwość

Definicja

Pobiera lub ustawia WorkflowStatus wartość używaną do ograniczenia zestawu SqlTrackingWorkflowInstance obiektów zwracanych przez wywołanie metody GetWorkflows(SqlTrackingQueryOptions).

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)

Wartość właściwości

WorkflowStatus Jedna z wartości lub wartości null (Nothing w Visual Basic). Wartość domyślna to null (Nothing).

Przykłady

W poniższym przykładzie pokazano ustawienie właściwości WorkflowStatus. Ten przykład pochodzi z przykładowego zestawu SDK monitora przepływu pracy. Aby uzyskać więcej informacji, zobacz Przykład monitora przepływu pracy.

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);
}

Uwagi

SqlTrackingQueryOptions ogranicza zestaw SqlTrackingWorkflowInstance obiektów zwracanych przez wywołanie do SqlTrackingQuery.GetWorkflows tych wystąpień przepływu pracy, które mają Type określony przez WorkflowType, które mają stan określony przez , w okresie określonym przez WorkflowStatusStatusMinDateTime i StatusMaxDateTime, oraz, które wyodrębniły dane zgodne z co najmniej jednym z TrackingDataItemValue obiektów określonych przez TrackingDataItems.

Wystąpienie przepływu pracy jest uznawane za mające stan zgodny WorkflowStatus , jeśli ostatnio WorkflowTrackingRecord odebrane dla tego wystąpienia przepływu pracy przed lub w określonym przedziale czasu ma właściwość WorkflowTrackingRecord.TrackingWorkflowEvent ustawioną TrackingWorkflowEvent na wartość, która jest mapowany na System.Workflow.Runtime.WorkflowStatus wartość określoną przez WorkflowStatus. TrackingProfile W związku z tym dla wystąpienia przepływu pracy musi mieć WorkflowTrackPoint wartość skonfigurowaną dla odpowiedniej System.Workflow.Runtime.Tracking.TrackingWorkflowEvent wartości. Można dopasować tylko TrackingWorkflowEvent wartości, które zostały wysłane w rekordach śledzenia przepływu pracy. Jeśli dla wystąpienia przepływu pracy nie wysłano żadnych rekordów śledzenia przepływu pracy, wystąpienie przepływu pracy jest uznawane za mające stan WorkflowStatus.Created.

W poniższej tabeli przedstawiono mapowanie między wartościami i WorkflowStatus wartościamiTrackingWorkflowEvent.

Wartość TrackingWorkflowEvent Wartość WorkflowStatus
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

Jeśli WorkflowStatus parametr ma wartość null (Nothing), zwracany zestaw SqlTrackingWorkflowInstance obiektów nie będzie ograniczany przez stan; innymi słowy, SqlTrackingWorkflowInstance obiekt zostanie zwrócony dla każdego wystąpienia przepływu pracy zgodnego z parametrami określonymi przez inne właściwości SqlTrackingQueryOptionsklasy .

Dotyczy