SqlTrackingQueryOptions.WorkflowStatus Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.