SqlTrackingQueryOptions.WorkflowStatus Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém ou define o valor WorkflowStatus que é usado para restringir o conjunto de objetos SqlTrackingWorkflowInstance retornados por uma chamada para 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)
Valor da propriedade
Um dos WorkflowStatus valores ou nulo (Nothing
no Visual Basic). O padrão é nulo (Nothing
).
Exemplos
O exemplo a seguir demonstra como definir a propriedade WorkflowStatus. Este exemplo é do exemplo do SDK do Monitor de Fluxo de Trabalho. Para obter mais informações, consulte Exemplo do Monitor de Fluxo de Trabalho.
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);
}
Comentários
SqlTrackingQueryOptions restringe o conjunto de SqlTrackingWorkflowInstance objetos retornados por uma chamada para SqlTrackingQuery.GetWorkflows para as instâncias de fluxo de trabalho que têm o Type especificado por WorkflowType, que têm o status especificado por WorkflowStatus durante o período especificado por StatusMinDateTime e StatusMaxDateTimee que extrairam dados que correspondem a TrackingDataItemValue pelo menos um dos objetos especificados por TrackingDataItems.
Uma instância de fluxo de trabalho é considerada como tendo um status que corresponda WorkflowStatus se o último WorkflowTrackingRecord recebido para essa instância de fluxo de trabalho antes ou durante o período de tempo especificado tiver sua WorkflowTrackingRecord.TrackingWorkflowEvent propriedade definida como um TrackingWorkflowEvent valor que mapeia para o System.Workflow.Runtime.WorkflowStatus valor especificado por WorkflowStatus. Portanto, o TrackingProfile para a instância de fluxo de trabalho deve ter um WorkflowTrackPoint configurado para o valor apropriado System.Workflow.Runtime.Tracking.TrackingWorkflowEvent . Somente TrackingWorkflowEvent os valores que foram enviados nos registros de acompanhamento de fluxo de trabalho podem ser correspondidos. Se nenhum registro de acompanhamento de fluxo de trabalho tiver sido enviado para a instância de fluxo de trabalho, a instância de fluxo de trabalho será considerada com um status de WorkflowStatus.Created.
A tabela a seguir mostra o mapeamento entre TrackingWorkflowEvent valores e WorkflowStatus valores.
Valor trackingWorkflowEvent | Valor de 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 |
Se WorkflowStatus for nulo (Nothing
), o conjunto de SqlTrackingWorkflowInstance objetos retornados não será restrito por status; em outras palavras, um SqlTrackingWorkflowInstance objeto será retornado para qualquer instância de fluxo de trabalho que corresponda aos parâmetros especificados pelas outras propriedades de SqlTrackingQueryOptions.