次の方法で共有


TrackingProfile.WorkflowTrackPoints プロパティ

定義

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

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

プロパティ値

ワークフロー インスタンスの追跡ポイントを指定する WorkflowTrackPointCollection。ランタイム追跡インフラストラクチャは、WorkflowTrackingRecord を追跡サービスに送信します。

次のコード例は、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

注釈

ワークフロー インスタンスのステータスが変化したことを示す TrackingWorkflowEvent が発生するたびに、ワークフロー インスタンスはワークフロー ステータス イベントをランタイム追跡インフラストラクチャに送出します。 ランタイム追跡インフラストラクチャは WorkflowTrackPoints プロパティを使ってこれらのワークフロー ステータス イベントをフィルター処理することにより、WorkflowTrackingRecord を追跡サービスにいつ送るかを判別します。 WorkflowTrackPointWorkflowTrackPoints プロパティに追加して、ワークフロー インスタンスの実行パスにおける追跡ポイントを指定し、その WorkflowTrackingRecord を送信できます。

WorkflowTrackPoint はワークフロー インスタンス内の物理的ポイントを実際に定義するのではなく、ワークフロー ステータス イベント照合のためにランタイム追跡インフラストラクチャによって使われる 1 つ以上の TrackingWorkflowEvent 値を定義します。 そのため、ワークフロー インスタンスの実行中に同じ WorkflowTrackPoint を何度も照合できます。 また、WorkflowTrackPoint は、WorkflowTrackingRecord で返される任意の注釈を指定することもできます。

適用対象

こちらもご覧ください