SqlTrackingQueryOptions.WorkflowStatus Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.