Поделиться через


SqlTrackingQueryOptions.StatusMinDateTime Свойство

Определение

Получает или задает структуру DateTime, которая вместе с свойством WorkflowStatus используется для ограничения набор объектов SqlTrackingWorkflowInstance, возвращаемых при вызове метода GetWorkflows(SqlTrackingQueryOptions).

public:
 property DateTime StatusMinDateTime { DateTime get(); void set(DateTime value); };
public DateTime StatusMinDateTime { get; set; }
member this.StatusMinDateTime : DateTime with get, set
Public Property StatusMinDateTime As DateTime

Значение свойства

Структура DateTime, указывающая нижний предел временного интервала, используемого для поиска совпадающих экземпляров рабочих процессов, имеющих состояние, указанное в свойстве WorkflowStatus. Значение по умолчанию — DateTime.MinValue.

Примеры

Следующий пример иллюстрирует задание свойства «StatusMinDateTime». Данный пример является частью примера SDK «Workflow Monitor». Дополнительные сведения см. в разделе Пример монитора рабочего процесса.

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

Комментарии

Класс SqlTrackingQueryOptions ограничивает набор объектов SqlTrackingWorkflowInstance, возвращаемых вызовом метода SqlTrackingQuery.GetWorkflows, теми экземплярами рабочего процесса, которые: имеют тип Type, заданный свойством WorkflowType; имеют состояние, заданное свойством WorkflowStatus, в течение периода, заданного свойствами StatusMinDateTime и StatusMaxDateTime; извлекли данные, соответствующие по крайней мере одному из объектов TrackingDataItemValue, заданных свойством TrackingDataItems.

Значение структуры DateTime, указанное в свойстве StatusMinDateTime является включительным. Дополнительные сведения совпадении состояния экземпляра рабочего процесса см. в разделе, посвященном свойству WorkflowStatus.

Примечание

Если элемент WorkflowStatus имеет значение «null», то элементы StatusMaxDateTime и StatusMinDateTime игнорируется. Все экземпляры рабочих процессов будут возвращены при вызове метода GetWorkflows.

Применяется к