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

Nullable<WorkflowStatus>

WorkflowStatus Jedna z wartości lub 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

SqlTrackingQueryOptionsogranicza zestaw SqlTrackingWorkflowInstance obiektów zwracanych przez wywołanie do SqlTrackingQuery.GetWorkflows tych wystąpień przepływu pracy, które mają Type określony przez WorkflowTypeelement , które mają stan określony przez , określone przez WorkflowStatus StatusMaxDateTimeStatusMinDateTime i , 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 stan, który jest zgodny WorkflowStatus , jeśli ostatni WorkflowTrackingRecord odebrany 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. W związku z tym wystąpienie TrackingProfile 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 stan WorkflowStatus.Created.

W poniższej tabeli przedstawiono mapowanie wartości TrackingWorkflowEvent i WorkflowStatus wartości.

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 wartość ma wartość null (Nothing), zestaw SqlTrackingWorkflowInstance zwracanych obiektów nie będzie ograniczany przez stan. Innymi słowy SqlTrackingWorkflowInstance obiekt zostanie zwrócony dla dowolnego wystąpienia przepływu pracy zgodnego z parametrami określonymi przez inne właściwości SqlTrackingQueryOptions.

Dotyczy