This documentation is archived and is not being maintained.

WorkflowStatus Enumeration

Specifies the status of a workflow instance.

Namespace:  System.Workflow.Runtime
Assembly:  System.Workflow.Runtime (in System.Workflow.Runtime.dll)

public enum WorkflowStatus

Member nameDescription
RunningThe workflow instance is running.
CompletedThe workflow instance has completed.
SuspendedThe workflow instance has been suspended by a SuspendActivity activity, by a call to WorkflowInstance.Suspend,or by the workflow runtime engine.
TerminatedThe workflow instance has been terminated by a

TerminateActivity activity, by a call to WorkflowInstance.Terminate, or by the workflow runtime engine.

CreatedThe workflow instance has been created by a call to one of the overloaded WorkflowRuntime.CreateWorkflow methods.

The following code example demonstrates how you can use the WorkflowStatus values to set the WorkflowStatus property. Each value constrains the SqlTrackingWorkflowInstance in a different way.

This code example is part of the Workflow Monitor SDK Sample from the DatabaseService.cs file. For more information, see Workflow Monitor.

internal List<SqlTrackingWorkflowInstance> GetWorkflows(string workflowEvent, DateTime from, DateTime until, TrackingDataItemValue trackingDataItemValue)
{
    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.Empty == workflowEvent) || (null == 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);
    }
}

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Show: