Partager via


SqlTrackingQueryOptions.WorkflowStatus Propriété

Définition

Obtient ou définit la valeur WorkflowStatus utilisée pour contraindre l'ensemble d'objets SqlTrackingWorkflowInstance retourné par un appel à 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)

Valeur de propriété

Une des valeurs WorkflowStatus ou null (Nothing en Visual Basic). La valeur par défaut est null (Nothing).

Exemples

L'exemple de code suivant illustre la définition de la propriété WorkflowStatus. Cet exemple est tiré de l'exemple du Kit de développement logiciel Workflow Monitor (SDK). Pour plus d’informations, consultez Exemple de moniteur de flux de travail.

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

Remarques

SqlTrackingQueryOptions contraint l'ensemble d'objets SqlTrackingWorkflowInstance retourné par un appel à SqlTrackingQuery.GetWorkflows aux instances de workflow qui ont le Type spécifié par WorkflowType, qui ont l'état spécifié par WorkflowStatus pendant la période spécifiée par StatusMinDateTime et StatusMaxDateTime, et qui ont des données extraites qui correspondent au moins à l'un des objets TrackingDataItemValue spécifiés par TrackingDataItems.

Une instance de workflow est considérée comme ayant un état qui correspond à WorkflowStatus si le dernier WorkflowTrackingRecord reçu pour cette instance de workflow avant ou pendant la période spécifiée a sa propriété WorkflowTrackingRecord.TrackingWorkflowEvent définie à une valeur TrackingWorkflowEvent qui mappe à la valeur System.Workflow.Runtime.WorkflowStatus spécifiée par WorkflowStatus. Par conséquent, le TrackingProfile pour l'instance de workflow doit avoir un WorkflowTrackPoint configuré pour la valeur System.Workflow.Runtime.Tracking.TrackingWorkflowEvent appropriée. Seules les valeurs TrackingWorkflowEvent envoyées dans des enregistrements de suivi de workflow peuvent être mises en correspondance. Si aucun enregistrement de suivi de workflow n'a été envoyé pour l'instance de workflow, celle-ci est considérée comme ayant un état WorkflowStatus.Created.

Le tableau suivant indique le mappage entre les valeurs TrackingWorkflowEvent et WorkflowStatus.

Valeur de TrackingWorkflowEvent Valeur 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 est null (Nothing), l'ensemble d'objets SqlTrackingWorkflowInstance retourné ne sera pas contraint par état ; en d'autres termes, un objet SqlTrackingWorkflowInstance sera retourné pour toute instance de workflow qui correspond aux paramètres spécifiés par les autres propriétés de SqlTrackingQueryOptions.

S’applique à