WorkflowStatus Enumeration

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Note: This API is now obsolete.

Specifies the status of a workflow instance.

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

[ObsoleteAttribute("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public enum WorkflowStatus

Member nameDescription
Completed

The workflow instance has completed.

Created

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

Running

The workflow instance is running.

Suspended

The workflow instance has been suspended by a SuspendActivity activity, by a call to WorkflowInstance.Suspend,or by the workflow runtime engine.

Terminated

The workflow instance has been terminated by a

System_CAPS_noteNote

This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

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

.NET Framework
Available since 3.0
Return to top
Show: