TrackingProfile クラス

定義

注意事項

The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*

ルート ワークフロー インスタンスの実行パスにおける、追跡サービスへの通知対象となるポイントを定義します。

public ref class TrackingProfile
[System.Serializable]
public class TrackingProfile
[System.Serializable]
[System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
public class TrackingProfile
[<System.Serializable>]
type TrackingProfile = class
[<System.Serializable>]
[<System.Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")>]
type TrackingProfile = class
Public Class TrackingProfile
継承
TrackingProfile
属性

次のコード例は、TrackingProfile コンストラクターを使用して TrackingProfile を作成し、オブジェクトのプロパティを使用してワークフローの実行を追跡する方法を示しています。 このコードでは、ActivityTrackPointsVersion、および WorkflowTrackPoints プロパティを使用しています。

このコード例は、Program.cs ファイルに含まれている、SQLTrackingService を使用したクエリを示す SDK サンプルの一部です。 詳細については、「 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

注釈

注意

ここでは、廃止された型と名前空間について説明します。 詳細については、「.NET 4.5 での Windows Workflow Foundation の新機能」を参照してください。

ワークフロー インスタンスは実行時に、追跡イベントをランタイム追跡インフラストラクチャに送出します。 ランタイム追跡インフラストラクチャは TrackingProfile を使ってこれらの追跡イベントをフィルター処理し、そのフィルター処理に基づいて追跡レコードを追跡サービスに返します。 フィルター対象となる追跡イベントには、アクティビティ ステータス イベント、ワークフロー ステータス イベント、およびユーザー イベントの 3 種類があります。 特定のActivityTrackPointsアクティビティステータスイベントに一致するオブジェクト、特定のワークフローステータスイベントWorkflowTrackPointに一致するWorkflowTrackPointsオブジェクト、および特定のユーザーイベントにUserTrackPoint一致するオブジェクトをプロパティにUserTrackPoints追加ActivityTrackPointできます。 追跡ポイントの照合時に、ランタイム追跡インフラストラクチャは追跡サービスに関連した TrackingChannel を介して、追跡イベントに関連したデータを追跡サービスに返します。 データは、照合された追跡ポイントの種類に応じて ActivityTrackingRecordWorkflowTrackingRecord、または UserTrackingRecord で返されます。

追跡サービスは、抽象 TrackingService クラスのメソッドを実装することにより、サービスに関連付けられた TrackingChannel、および特定のワークフロー インスタンス (または特定のワークフロー型) に関連付けられた TrackingProfile をランタイム追跡インフラストラクチャが要求するための機能を提供します。 さらに、追跡サービスは抽象 TrackingChannel クラスを実装することにより、ランタイム追跡インフラストラクチャが追跡レコードを送る際のチャネルを提供する必要もあります。

追跡サービスが追跡プロファイル オブジェクトをランタイムに返すと、ワークフローは実行を開始し、追跡プロファイルはシリアル化されます。 追跡プロファイルのシリアル化が失敗した場合、例外がワークフロー インスタンスに出されます。 例外が処理されない場合、ワークフロー インスタンスは終了します。 追跡プロファイルがランタイムに渡される前に、Schema プロパティを使って追跡プロファイルを検証することができます。

TrackingProfile に従って XML を書式設定する TrackingProfileSerializer を使用すれば、Schema を XML にシリアル化できます。 こうすれば、便利な形式でプロファイルを保存し、非プログラミング的な方法でプロファイルを作成することができます。 たとえば、SqlTrackingService クラスに基づいて作成されたすべての追跡サービスと同様に、SQL 追跡サービスはシリアル化されたバージョンの追跡プロファイルを保存します。

コンストラクター

TrackingProfile()
古い.

TrackingProfile の新しいインスタンスを初期化します。

プロパティ

ActivityTrackPoints
古い.

アクティビティ ステータス イベントをフィルター処理するためにランタイム追跡インフラストラクチャによって使われるアクティビティ追跡ポイントのコレクションを取得します。

UserTrackPoints
古い.

ユーザー イベントをフィルター処理するためにランタイム追跡インフラストラクチャによって使われるユーザー追跡ポイントのコレクションを取得します。

Version
古い.

追跡プロファイルのバージョンを取得または設定します。

WorkflowTrackPoints
古い.

ワークフロー ステータス イベントをフィルター処理するためにランタイム追跡インフラストラクチャによって使われるワークフロー追跡ポイントのコレクションを取得します。

メソッド

Equals(Object)
古い.

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()
古い.

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()
古い.

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()
古い.

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()
古い.

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください