Partilhar via


SqlTrackingQueryOptions.WorkflowStatus Propriedade

Definição

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.

Aplica-se a