TrackingProfile.ActivityTrackPoints Property


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

Gets the collection of activity track points used by the runtime tracking infrastructure to filter activity status events.

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

public ActivityTrackPointCollection ActivityTrackPoints { get; }

Property Value

Type: System.Workflow.Runtime.Tracking.ActivityTrackPointCollection

An ActivityTrackPointCollection that specifies the points in a workflow instance for which the runtime tracking infrastructure should send an ActivityTrackingRecord to the tracking service.

A workflow instance emits activity status events to the runtime tracking infrastructure whenever the ActivityExecutionStatus of an activity instance changes. The runtime tracking infrastructure uses the ActivityTrackPoints property to filter these activity status events to determine when to send an ActivityTrackingRecord to the tracking service. You can add an ActivityTrackPoint to the ActivityTrackPoints property to specify points of interest in the potential execution path of the workflow instance for which you want the runtime infrastructure to send an ActivityTrackingRecord.

An ActivityTrackPoint does not actually define a physical point in a workflow instance, but instead defines a set of match parameters that can be used by the runtime tracking infrastructure to match an activity status event for which it should send an ActivityTrackingRecord. Therefore, the same ActivityTrackPoint can be matched many times during the lifespan of a workflow instance. An ActivityTrackPoint can also specify data to be extracted from the workflow instance and returned in the ActivityTrackingRecord.

The following code example demonstrates how you can create a TrackingProfile using the TrackingProfile constructor and use the object's properties to help track the execution of a workflow. The example code uses the ActivityTrackPoints, Version, and WorkflowTrackPoints properties.

This code example is part of the Query using SQLTrackingService SDK sample from the Program.cs file. For more information, see Query Using 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)

    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)

    workflowTrack.MatchingLocation = workflowLocation;

    TrackingProfileSerializer serializer = new TrackingProfileSerializer();
    StringWriter writer = new StringWriter(new StringBuilder(), CultureInfo.InvariantCulture);
    serializer.Serialize(writer, profile);
    String trackingprofile = writer.ToString();

.NET Framework
Available since 3.0
Return to top