Partilhar via


TrackingProfile.WorkflowTrackPoints Propriedade

Definição

Obtém a coleção de pontos de controle de fluxo de trabalho usado pela infraestrutura de controle de runtime para filtrar eventos de status do fluxo de trabalho.

public:
 property System::Workflow::Runtime::Tracking::WorkflowTrackPointCollection ^ WorkflowTrackPoints { System::Workflow::Runtime::Tracking::WorkflowTrackPointCollection ^ get(); };
public System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection WorkflowTrackPoints { get; }
member this.WorkflowTrackPoints : System.Workflow.Runtime.Tracking.WorkflowTrackPointCollection
Public ReadOnly Property WorkflowTrackPoints As WorkflowTrackPointCollection

Valor da propriedade

Um WorkflowTrackPointCollection que especifica os pontos em uma instância de fluxo de trabalho para a qual a infraestrutura de acompanhamento de runtime deve enviar um WorkflowTrackingRecord para o serviço de acompanhamento.

Exemplos

O exemplo de código a seguir demonstra como você pode criar um TrackingProfile usando o TrackingProfile construtor e usar as propriedades do objeto para ajudar a acompanhar a execução de um fluxo de trabalho. O código de exemplo usa as ActivityTrackPointspropriedades , Versione WorkflowTrackPoints .

Este exemplo de código faz parte da consulta usando o exemplo do SDK do SQLTrackingService do arquivo Program.cs. Para obter mais informações, consulte Consulta usando SQLTrackingService.

private static void CreateAndInsertTrackingProfile()
{
    TrackingProfile profile = new TrackingProfile();
    ActivityTrackPoint activityTrack = new ActivityTrackPoint();
    ActivityTrackingLocation activityLocation = new ActivityTrackingLocation(typeof(Activity));
    activityLocation.MatchDerivedTypes = true;
    IEnumerable<ActivityExecutionStatus> statuses = Enum.GetValues(typeof(ActivityExecutionStatus)) as IEnumerable<ActivityExecutionStatus>;
    foreach (ActivityExecutionStatus status in statuses)
    {
        activityLocation.ExecutionStatusEvents.Add(status);
    }

    activityTrack.MatchingLocations.Add(activityLocation);
    profile.ActivityTrackPoints.Add(activityTrack);
    profile.Version = version;

    WorkflowTrackPoint workflowTrack = new WorkflowTrackPoint();
    WorkflowTrackingLocation workflowLocation = new WorkflowTrackingLocation();
    IEnumerable<TrackingWorkflowEvent> eventStatuses = Enum.GetValues(typeof(TrackingWorkflowEvent)) as IEnumerable<TrackingWorkflowEvent>;
    foreach (TrackingWorkflowEvent status in eventStatuses)
    {
        workflowLocation.Events.Add(status);
    }

    workflowTrack.MatchingLocation = workflowLocation;
    profile.WorkflowTrackPoints.Add(workflowTrack);

    TrackingProfileSerializer serializer = new TrackingProfileSerializer();
    StringWriter writer = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture);
    serializer.Serialize(writer, profile);
    string trackingprofile = writer.ToString();
    InsertTrackingProfile(trackingprofile);
}
Shared Sub CreateAndInsertTrackingProfile()
    Dim profile As TrackingProfile = New TrackingProfile()

    Dim activityTrack As ActivityTrackPoint = New ActivityTrackPoint()
    Dim activityLocation As ActivityTrackingLocation = New ActivityTrackingLocation(GetType(Activity))
    activityLocation.MatchDerivedTypes = True
    Dim statuses As IEnumerable(Of ActivityExecutionStatus) = CType(System.Enum.GetValues(GetType(ActivityExecutionStatus)), IEnumerable(Of ActivityExecutionStatus))
    For Each status As ActivityExecutionStatus In statuses
        activityLocation.ExecutionStatusEvents.Add(status)
    Next

    activityTrack.MatchingLocations.Add(activityLocation)
    profile.ActivityTrackPoints.Add(activityTrack)
    profile.Version = version

    Dim workflowTrack As WorkflowTrackPoint = New WorkflowTrackPoint()
    Dim workflowLocation As WorkflowTrackingLocation = New WorkflowTrackingLocation()
    Dim eventStatuses As IEnumerable(Of TrackingWorkflowEvent) = CType(System.Enum.GetValues(GetType(TrackingWorkflowEvent)), IEnumerable(Of TrackingWorkflowEvent))
    For Each status As TrackingWorkflowEvent In eventStatuses
        workflowLocation.Events.Add(status)
    Next

    workflowTrack.MatchingLocation = workflowLocation
    profile.WorkflowTrackPoints.Add(workflowTrack)

    Dim serializer As TrackingProfileSerializer = New TrackingProfileSerializer()
    Dim writer As StringWriter = New StringWriter(New StringBuilder(), CultureInfo.InvariantCulture)
    serializer.Serialize(writer, profile)
    Dim trackingProfile As String = writer.ToString()
    InsertTrackingProfile(trackingProfile)
End Sub

Comentários

Uma instância de fluxo de trabalho emite eventos de status de fluxo de trabalho para a infraestrutura de acompanhamento de runtime sempre que ocorre um TrackingWorkflowEvent indicando que o status de uma instância de fluxo de trabalho foi alterado. A infraestrutura de acompanhamento de runtime usa a WorkflowTrackPoints propriedade para filtrar esses eventos de status de fluxo de trabalho para determinar quando enviar um WorkflowTrackingRecord para o serviço de acompanhamento. Você pode adicionar um WorkflowTrackPoint à WorkflowTrackPoints propriedade para especificar pontos de interesse no caminho de execução potencial da instância de fluxo de trabalho para a qual deseja enviar.WorkflowTrackingRecord

Um WorkflowTrackPoint não define realmente um ponto físico em uma instância de fluxo de trabalho, mas define um ou mais TrackingWorkflowEvent valores que podem ser usados pela infraestrutura de acompanhamento de runtime para corresponder a eventos de status de fluxo de trabalho. Portanto, o mesmo WorkflowTrackPoint pode ser correspondido muitas vezes durante o tempo de vida de uma instância de fluxo de trabalho. Um WorkflowTrackPoint também pode especificar quaisquer anotações a serem retornadas no WorkflowTrackingRecord.

Aplica-se a

Confira também