Bagikan melalui


SqlTrackingQueryOptions.WorkflowStatus Properti

Definisi

Mendapatkan atau mengatur WorkflowStatus nilai yang digunakan untuk membatasi kumpulan SqlTrackingWorkflowInstance objek yang dikembalikan oleh panggilan ke 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)

Nilai Properti

Salah WorkflowStatus satu nilai atau null (Nothing dalam Visual Basic). Defaultnya adalah null (Nothing).

Contoh

Contoh berikut menunjukkan pengaturan properti WorkflowStatus. Contoh ini berasal dari sampel SDK Monitor Alur Kerja. Untuk informasi selengkapnya, lihat Sampel Monitor Alur Kerja.

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

Keterangan

SqlTrackingQueryOptions membatasi kumpulan SqlTrackingWorkflowInstance objek yang dikembalikan oleh panggilan ke SqlTrackingQuery.GetWorkflows instans alur kerja yang memiliki Type yang ditentukan oleh WorkflowType, yang memiliki status yang ditentukan oleh WorkflowStatus selama periode yang ditentukan oleh StatusMinDateTime dan StatusMaxDateTime, dan yang telah mengekstrak data yang cocok dengan setidaknya salah TrackingDataItemValue satu objek yang ditentukan oleh TrackingDataItems.

Instans alur kerja dianggap memiliki status yang cocok jika terakhir WorkflowTrackingRecord diterima untuk instans alur kerja tersebut sebelum atau selama periode waktu yang ditentukan memiliki properti yang WorkflowTrackingRecord.TrackingWorkflowEvent diatur ke TrackingWorkflowEvent nilai yang memetakan ke System.Workflow.Runtime.WorkflowStatus nilai yang ditentukan oleh WorkflowStatus.WorkflowStatus Oleh karena itu, TrackingProfile untuk instans alur kerja harus memiliki WorkflowTrackPoint yang dikonfigurasi untuk nilai yang sesuai System.Workflow.Runtime.Tracking.TrackingWorkflowEvent . Hanya TrackingWorkflowEvent nilai yang telah dikirim dalam rekaman pelacakan alur kerja yang dapat dicocokkan. Jika tidak ada rekaman pelacakan alur kerja yang dikirim untuk instans alur kerja, instans alur kerja dianggap memiliki status WorkflowStatus.Created.

Tabel berikut ini memperlihatkan pemetaan antara TrackingWorkflowEvent nilai dan WorkflowStatus nilai.

Nilai TrackingWorkflowEvent Nilai 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

Jika WorkflowStatus null (Nothing), kumpulan SqlTrackingWorkflowInstance objek yang dikembalikan tidak akan dibatasi oleh status; dengan kata lain, SqlTrackingWorkflowInstance objek akan dikembalikan untuk instans alur kerja apa pun yang cocok dengan parameter yang ditentukan oleh properti lain dari SqlTrackingQueryOptions.

Berlaku untuk