SqlTrackingQueryOptions.WorkflowStatus Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví WorkflowStatus hodnotu, která se používá k omezení množiny SqlTrackingWorkflowInstance objektů vrácených voláním 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)
Hodnota vlastnosti
Jedna z WorkflowStatus hodnot nebo null (Nothing
v Visual Basic). Výchozí hodnota je null (Nothing
).
Příklady
Následující příklad ukazuje nastavení WorkflowStatus vlastnost. Tento příklad je z ukázky sady SDK pro monitorování pracovních postupů. Další informace naleznete v tématu Ukázka monitorování pracovního postupu.
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);
}
Poznámky
SqlTrackingQueryOptions omezuje sadu SqlTrackingWorkflowInstance objektů vrácených voláním na SqlTrackingQuery.GetWorkflows tyto instance pracovního postupu, které mají Type určený WorkflowType, které mají stav určený WorkflowStatus během zadaného StatusMinDateTime období a StatusMaxDateTimea které extrahovali data, která odpovídají alespoň jednomu z TrackingDataItemValue objektů určených TrackingDataItems.
Instance pracovního postupu je považována za stav, který odpovídá WorkflowStatus , pokud poslední WorkflowTrackingRecord přijatý pro danou instanci pracovního postupu před nebo během zadaného časového období má jeho WorkflowTrackingRecord.TrackingWorkflowEvent vlastnost nastavena TrackingWorkflowEvent na hodnotu, která se mapuje na hodnotu určenou System.Workflow.Runtime.WorkflowStatus WorkflowStatus. TrackingProfile Proto musí mít instance pracovního postupu nakonfigurovanou WorkflowTrackPoint odpovídající System.Workflow.Runtime.Tracking.TrackingWorkflowEvent hodnotu. Shodovat se dají jenom TrackingWorkflowEvent hodnoty odeslané v záznamech sledování pracovního postupu. Pokud pro instanci pracovního postupu nebyly odeslány žádné záznamy sledování pracovního postupu, považuje se instance pracovního postupu za stav WorkflowStatus.Created.
Následující tabulka ukazuje mapování mezi TrackingWorkflowEvent hodnotami a WorkflowStatus hodnotami.
Hodnota TrackingWorkflowEvent | Hodnota 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 |
Pokud WorkflowStatus je hodnota null (Nothing
), sada vrácených SqlTrackingWorkflowInstance objektů nebude omezena stavem. Jinými slovy, SqlTrackingWorkflowInstance objekt se vrátí pro libovolnou instanci pracovního postupu, která odpovídá parametrům zadaným jinými vlastnostmi SqlTrackingQueryOptions.