About WF Tracking Profiles...

Some people have asked me recently about tracking profiles and how to author them so I thought to post what I told them here.

Tracking Profiles

Tracking Profiles are the mechanism by which the Windows Workflow Foundation (WF) Tracking Services communicate to the WF Tracking runtime what events/data the service(s) is interested in. You can author tracking profiles in a declarative way by creating a tracking profile xml file, or by code using the Tracking Profile Object Model. There are three types of events that you can track;

  • Workflow events which are events on the workflow instance level, like started, created, suspended, resumed, terminated and other workflow events,
  • Activity events which are events on the activity level, like executing or closed activity status events, you can also decide to track workflow or activity data along with these events. For instance you could ask for specific activity property value with a specific activity event or you can decide to track all activities properties,
  • User events which are custom events where workflow authors can send out tracking data from the workflow code by calling any of the TrackData methods on the Activity and pass the object they want to track and optionally a sting key to accompany this tracked object

The concept of Tracking profiles is there to allow administrators and business users to configure the amount of data they wish to track. Users can modify tracking profiles at runtime based on business requirements without making any code changes to either the workflow or runtime service components. Tracking profiles can ask for specific pieces of data to track about specific workflows or can be generic to various set of workflow types. Check the WF Tracking samples here for code samples that shows how to create tracking profiles and use them in tracking services.

Tracking Profile Designer

Authoring tracking profiles that are specific to workflow types require the author’s knowledge of the composition of the workflow. The author might not be familiar with the detailed design of the workflow yet interested in specific amount of information about the workflow. One of the ways to empower the tracking profile author, who is in many cases the business analyst, is to give him the ability to visually author, inspect, or edit workflow tracking profiles without requiring him to learn the Tracking profile APIs and the workflow internals. Therefore, we shipped a Tracking Profile Designer sample with the WF SDK that shows you how you can build a tool to allow you to visually author, inspect, or edit Workflow Tracking Profiles. Check it out here.