다음을 통해 공유


SqlTrackingQueryOptions.StatusMaxDateTime 속성

정의

DateTime와 함께 WorkflowStatus 호출에서 반환되는 SqlTrackingWorkflowInstance 개체 집합을 제한하는 데 사용되는 기간의 상한을 지정하는 GetWorkflows(SqlTrackingQueryOptions)을 가져오거나 설정합니다.

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

속성 값

DateTime에 지정된 상태와 워크플로 인스턴스를 일치시키는 데 사용되는 기간의 상한을 지정하는 WorkflowStatus입니다. 기본값은 DateTime.MinValue입니다.

예제

다음 예제에서는 StatusMaxDateTime 속성을 설정하는 방법을 보여 줍니다. 이 예제는 Workflow Monitor 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);
}

설명

SqlTrackingQueryOptionsSqlTrackingWorkflowInstance 호출에서 반환되는 SqlTrackingQuery.GetWorkflows 개체 집합을 Type에 지정된 WorkflowType이고, WorkflowStatusStatusMinDateTime에 지정된 기간 중에 StatusMaxDateTime에 지정된 상태가 있고, TrackingDataItemValue에 지정된 TrackingDataItems 개체 중 하나 이상과 일치하는 추출된 데이터가 있는 워크플로 인스턴스로 제한합니다.

DateTime에 지정된 StatusMaxDateTime 값은 경계를 포함합니다. 워크플로 인스턴스의 상태를 일치시키는 방법에 대한 자세한 내용은 WorkflowStatus 속성을 참조하십시오.

참고

WorkflowStatus를 null로 설정하면 StatusMaxDateTimeStatusMinDateTime은 무시됩니다. GetWorkflows를 호출하면 모든 워크플로 인스턴스가 반환됩니다.

적용 대상