Compartir a través de


SqlTrackingQueryOptions.WorkflowStatus Propiedad

Definición

Obtiene o establece el valor WorkflowStatus que se utiliza para restringir el conjunto de objetos SqlTrackingWorkflowInstance devueltos por una llamada a 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 de propiedad

Uno de los valores WorkflowStatus o null (Nothing en Visual Basic). El valor predeterminado es null (Nothing).

Ejemplos

En el siguiente ejemplo se muestra cómo establecer la propiedad WorkflowStatus. Este ejemplo pertenece al SDK del monitor de flujo de trabajo. Para obtener más información, consulte Ejemplo de monitor de flujo de trabajo.

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

Comentarios

SqlTrackingQueryOptions restringe el conjunto de objetos SqlTrackingWorkflowInstance devueltos por una llamada a SqlTrackingQuery.GetWorkflows a las instancias de flujo de trabajo que tienen Type especificado por WorkflowType, que tienen el estado especificado por WorkflowStatus durante el período especificado por StatusMinDateTime y StatusMaxDateTime y que extrajeron datos que coinciden por lo menos con uno de los objetos TrackingDataItemValue especificados por TrackingDataItems.

Se considera que una instancia de flujo de trabajo tiene un estado que coincide con WorkflowStatus si el último WorkflowTrackingRecord recibido para esa instancia de flujo de trabajo antes o durante el período de tiempo especificado tiene su propiedad WorkflowTrackingRecord.TrackingWorkflowEvent establecida en un valor TrackingWorkflowEvent que se asigna al valor System.Workflow.Runtime.WorkflowStatus especificado por WorkflowStatus. Por consiguiente, TrackingProfile para la instancia de flujo de trabajo debe tener WorkflowTrackPoint configurado para el valor System.Workflow.Runtime.Tracking.TrackingWorkflowEvent adecuado. Sólo se puede coincidir con valores TrackingWorkflowEvent enviados en registros de seguimiento del flujo de trabajo. Si no se envió ningún registro de seguimiento del flujo de trabajo para la instancia de flujo de trabajo, se considera que ésta tiene un estado de WorkflowStatus.Created.

En la siguiente tabla se muestra la asignación entre los valores de TrackingWorkflowEvent y los de WorkflowStatus.

Valor de 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

Si WorkflowStatus tiene un valor null (Nothing), el estado no restringirá el conjunto de objetos SqlTrackingWorkflowInstance devueltos; en otras palabras, se devolverá un objeto SqlTrackingWorkflowInstance para cualquier instancia de flujo de trabajo que coincida con los parámetros especificados por las otras propiedades de SqlTrackingQueryOptions.

Se aplica a