Compartilhar via


TrackingProfile.ActivityTrackPoints Propriedade

Definição

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

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

Valor da propriedade

Um ActivityTrackPointCollection que especifica os pontos em uma instância de fluxo de trabalho para a qual a infraestrutura de acompanhamento de runtime deve enviar um ActivityTrackingRecord 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 atividade para a infraestrutura de acompanhamento de runtime sempre que a ActivityExecutionStatus de uma instância de atividade é alterada. A infraestrutura de acompanhamento de runtime usa a ActivityTrackPoints propriedade para filtrar esses eventos de status de atividade para determinar quando enviar um ActivityTrackingRecord para o serviço de acompanhamento. Você pode adicionar um ActivityTrackPoint à ActivityTrackPoints propriedade para especificar pontos de interesse no caminho de execução potencial da instância de fluxo de trabalho para a qual deseja que a infraestrutura de runtime envie um ActivityTrackingRecord.

Um ActivityTrackPoint não define realmente um ponto físico em uma instância de fluxo de trabalho, mas define um conjunto de parâmetros de correspondência que podem ser usados pela infraestrutura de acompanhamento de runtime para corresponder a um evento de status de atividade para o qual ele deve enviar um ActivityTrackingRecord. Portanto, o mesmo ActivityTrackPoint pode ser correspondido muitas vezes durante o tempo de vida de uma instância de fluxo de trabalho. Um ActivityTrackPoint também pode especificar dados a serem extraídos da instância de fluxo de trabalho e retornados no ActivityTrackingRecord.

Aplica-se a

Confira também