SqlTrackingQueryOptions.WorkflowStatus Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.