TrackingProfile 클래스

정의

경고

이 API는 현재 사용되지 않습니다.

추적 서비스가 알림을 받아야 하는 루트 워크플로 인스턴스의 잠재적 실행 경로에 관심 지점을 정의합니다.Defines points of interest in the potential execution path of a root workflow instance about which a tracking service should be notified.

public ref class TrackingProfile
[System.Serializable]
public class TrackingProfile
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
[System.Serializable]
public class TrackingProfile
type TrackingProfile = class
Public Class TrackingProfile
상속
TrackingProfile
특성

예제

다음 코드 예제에서는 TrackingProfile 생성자를 사용하여 TrackingProfile을 만드는 방법 및 해당 개체의 속성을 사용하여 워크플로 실행을 추적하는 방법을 보여 줍니다.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. 예제 코드에서는 ActivityTrackPoints, VersionWorkflowTrackPoints 속성을 사용합니다.The example code uses the ActivityTrackPoints, Version, and WorkflowTrackPoints properties.

이 코드 예제는 Program.cs 파일에 있는 Query using SQLTrackingService SDK 샘플의 일부입니다.This code example is part of the Query using SQLTrackingService SDK sample from the Program.cs file. 자세한 내용은 쿼리를 사용 하 여 SQLTrackingService합니다.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)
    {
        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

설명

참고

이 자료에서는 더 이상 사용되지 않는 형식과 네임스페이스에 대해 설명합니다.This material discusses types and namespaces that are obsolete. 자세한 내용은 Deprecated Types in Windows Workflow Foundation 4.5(Windows Workflow Foundation 4.5에서 사용되지 않는 형식)를 참조하세요.For more information, see Deprecated Types in Windows Workflow Foundation 4.5.

워크플로 인스턴스는 런타임 중에 추적 이벤트를 런타임 추적 인프라로 내보냅니다.During its run time, a workflow instance emits tracking events to the runtime tracking infrastructure. 런타임 추적 인프라는 TrackingProfile을 사용하여 이러한 추적 이벤트를 필터링하고 이 필터링을 기반으로 추적 레코드를 추적 서비스로 반환합니다.The runtime tracking infrastructure uses a TrackingProfile to filter these tracking events and returns tracking records based on this filtering to a tracking service. 필터링할 수 있는 세 종류의 추적 이벤트(활동 상태 이벤트, 워크플로 상태 이벤트 및 사용자 이벤트)가 있습니다.There are three kinds of tracking events that can be filtered: activity status events, workflow status events, and user events. ActivityTrackPoint 개체를 ActivityTrackPoints 속성에 추가하여 특정 활동 상태 이벤트를 일치시키고, WorkflowTrackPoint 개체를 WorkflowTrackPoints 속성에 추가하여 특정 워크플로 상태 이벤트를 일치시키고, UserTrackPoint 개체를 UserTrackPoints 속성에 추가하여 특정 사용자 이벤트를 일치시킬 수 있습니다.You can add ActivityTrackPoint objects to the ActivityTrackPoints property to match specific activity status events; WorkflowTrackPoint objects to the WorkflowTrackPoints property to match specific workflow status events; and UserTrackPoint objects to the UserTrackPoints property to match specific user events. 추적 지점이 일치하면 런타임 추적 인프라는 해당 서비스와 연결된 TrackingChannel을 통해 추적 이벤트와 연결된 데이터를 추적 서비스로 반환합니다.When a track point is matched, the runtime tracking infrastructure returns the data associated with the tracking event to the tracking service over the TrackingChannel associated with that service. 데이터는 일치된 추적 지점의 형식에 따라 ActivityTrackingRecord, WorkflowTrackingRecord 또는 UserTrackingRecord에 반환됩니다.The data is returned in either an ActivityTrackingRecord, a WorkflowTrackingRecord, or a UserTrackingRecord depending on the type of track point that was matched.

추적 서비스는 추상 TrackingService 클래스의 메서드를 구현하여 서비스와 연결된 TrackingChannel 및 특정 워크플로 인스턴스나 특정 워크플로 형식과 연결된 TrackingProfile을 요청하는 기능을 런타임 추적 인프라에 제공합니다.A tracking service implements the methods in the abstract TrackingService class to provide the functionality for the runtime tracking infrastructure to request a TrackingChannel associated with the service, and a TrackingProfile associated with a particular workflow instance or with a particular workflow type. 또한 추적 서비스는 추상 TrackingChannel 클래스를 구현하여 런타임 추적 인프라가 추적 레코드를 보낼 수 있는 채널을 제공해야 합니다.A tracking service must also implement the abstract TrackingChannel class to provide the channel over which the runtime tracking infrastructure can send tracking records.

추적 서비스가 추적 프로필 개체를 런타임에 반환하는 경우 워크플로가 실행되기 시작하며 추적 프로필이 serialize됩니다.When the tracking service returns a tracking profile object to the runtime, the workflow starts to execute, and the tracking profile is serialized. 추적 프로필의 serialization이 실패하면 워크플로 인스턴스에 예외가 발생합니다.If the serialization of the tracking profile fails, an exception is raised to the workflow instance. 예외가 처리되지 않으면 워크플로 인스턴스가 종료됩니다.If the exception is not handled, the workflow instance is terminated. Schema 속성을 사용하여 런타임에 전달하기 전에 추적 프로필의 유효성을 검사할 수 있습니다.The tracking profile can be validated before passing it to the runtime using the Schema property.

TrackingProfile에 따라 XML 형식을 지정하는 TrackingProfileSerializer를 사용하여 Schema을 XML로 serialize할 수 있습니다.A TrackingProfile can be serialized to XML by using the TrackingProfileSerializer, which formats the XML according to the Schema. 이는 프로필 스토리지 및 비프로그래밍 방식의 프로필 작성에 편리한 형식을 제공합니다.This provides a convenient format for profile storage and for authoring a profile in a non-programmatic manner. 예를 들어 SQL Tracking Service는 SqlTrackingService 클래스를 기반으로 만드는 모든 추적 서비스와 마찬가지로 추적 프로필의 serialize된 버전을 저장합니다.For example, the SQL Tracking Service stores serialized versions of its tracking profiles, as will any tracking service you create based on the SqlTrackingService class.

생성자

TrackingProfile()

TrackingProfile의 새 인스턴스를 초기화합니다.Initializes a new instance of TrackingProfile.

속성

ActivityTrackPoints

런타임 추적 인프라가 활동 상태 이벤트를 필터링하는 데 사용하는 활동 추적 지점 컬렉션을 가져옵니다.Gets the collection of activity track points used by the runtime tracking infrastructure to filter activity status events.

UserTrackPoints

런타임 추적 인프라가 사용자 이벤트를 필터링하는 데 사용하는 사용자 추적 지점 컬렉션을 가져옵니다.Gets the collection of user track points used by the runtime tracking infrastructure to filter user events.

Version

추적 프로필의 버전을 가져오거나 설정합니다.Gets or sets the version of the tracking profile.

WorkflowTrackPoints

런타임 추적 인프라가 워크플로 상태 이벤트를 필터링하는 데 사용하는 워크플로 추적 지점 컬렉션을 가져옵니다.Gets the collection of workflow track points used by the runtime tracking infrastructure to filter workflow status events.

메서드

Equals(Object)

지정한 개체가 현재 개체와 같은지를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 string을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상

추가 정보