Compartir a través de


TrackingProfile Clase

Definición

Precaución

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

Define los puntos de interés en la ruta de acceso de ejecución potencial de una instancia de flujo de trabajo raíz sobre la que se debería notificar a un servicio de seguimiento.

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
Herencia
TrackingProfile
Atributos

Ejemplos

El ejemplo de código siguiente muestra cómo puede crear TrackingProfile mediante el constructor TrackingProfile y utilizar las propiedades del objeto para ayudar a realizar el seguimiento de la ejecución de un flujo de trabajo. El código de ejemplo utiliza las propiedades ActivityTrackPoints, Version y WorkflowTrackPoints.

Este ejemplo de código pertenece a la consulta generada con el ejemplo del SDK de SQLTrackingService del archivo Program.cs. Para obtener más información, vea Consulta mediante 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

Comentarios

Nota

En esta documentación se describen los tipos y espacios de nombres que están obsoletos. Para obtener más información, vea Tipos en desuso en Windows Workflow Foundation 4.5.

Durante su tiempo de ejecución, una instancia de flujo de trabajo emite eventos de seguimiento a la infraestructura de seguimiento en tiempo de ejecución. La infraestructura de seguimiento en tiempo de ejecución utiliza TrackingProfile para filtrar estos eventos de seguimiento y devuelve registros de seguimiento basados en este filtro a un servicio de seguimiento. Hay tres tipos de eventos de seguimiento que se pueden filtrar: eventos de estado de actividad, eventos de estado de flujo de trabajo y eventos de usuario. Puede agregar ActivityTrackPoint objetos a la ActivityTrackPoints propiedad para que coincidan con eventos de estado de actividad específicos; WorkflowTrackPoint objetos a la WorkflowTrackPoints propiedad para que coincidan con eventos de estado de flujo de trabajo específicos y UserTrackPoint objetos a la UserTrackPoints propiedad para que coincidan con eventos de usuario específicos. Cuando se encuentra una coincidencia con un punto de seguimiento, la infraestructura de seguimiento en tiempo de ejecución devuelve los datos asociados al evento de seguimiento al servicio de seguimiento a través del TrackingChannel asociado a ese servicio. Los datos se devuelven en ActivityTrackingRecord, WorkflowTrackingRecord o UserTrackingRecord, en función del tipo de punto de seguimiento con el que se coincidió.

Un servicio de seguimiento implementa los métodos de la clase abstracta TrackingService para proporcionar la funcionalidad necesaria para que la infraestructura de seguimiento en tiempo de ejecución pueda solicitar un TrackingChannel asociado al servicio y un TrackingProfile asociado a una instancia de flujo de trabajo determinada o a un tipo de flujo de trabajo determinado. Un servicio de seguimiento también debe implementar la clase abstracta TrackingChannel para proporcionar el canal a través del cual la infraestructura de seguimiento en tiempo de ejecución puede enviar registros de seguimiento.

Cuando el servicio de seguimiento devuelve un objeto de perfil de seguimiento al tiempo de ejecución, el flujo de trabajo empieza a ejecutarse y se serializa el perfil de seguimiento. Si se produce algún error en la serialización del perfil de seguimiento, se genera una excepción en la instancia de flujo de trabajo. Si no se controla la excepción, la instancia de flujo de trabajo finaliza. El perfil de seguimiento se puede validar antes de pasarlo al tiempo de ejecución con la propiedad Schema.

TrackingProfile se puede serializar en XML con TrackingProfileSerializer, que da formato al XML según Schema. Esto proporciona un formato adecuado para el almacenamiento de perfiles y para crear un perfil sin programación. Por ejemplo, el servicio de seguimiento de SQL almacena versiones serializadas de sus perfiles de seguimiento, al igual que todos los servicios de seguimiento que cree basados en la clase SqlTrackingService.

Constructores

TrackingProfile()
Obsoletos.

Inicializa una nueva instancia de la clase TrackingProfile.

Propiedades

ActivityTrackPoints
Obsoletos.

Obtiene la colección de puntos de seguimiento de actividad utilizados por la infraestructura de seguimiento en tiempo de ejecución para filtrar eventos de estado de actividad.

UserTrackPoints
Obsoletos.

Obtiene la colección de puntos de seguimiento de usuario utilizados por la infraestructura de seguimiento en tiempo de ejecución para filtrar eventos de usuario.

Version
Obsoletos.

Obtiene o establece la versión del perfil de seguimiento.

WorkflowTrackPoints
Obsoletos.

Obtiene la colección de puntos de seguimiento de flujo de trabajo utilizados por la infraestructura de seguimiento en tiempo de ejecución para filtrar eventos de estado de flujo de trabajo.

Métodos

Equals(Object)
Obsoletos.

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()
Obsoletos.

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()
Obsoletos.

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()
Obsoletos.

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()
Obsoletos.

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a

Consulte también