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.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.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.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. El código de ejemplo utiliza las propiedades ActivityTrackPoints, Version y WorkflowTrackPoints.The example code uses the ActivityTrackPoints, Version, and WorkflowTrackPoints properties.

Este ejemplo de código pertenece a la consulta generada con el ejemplo del SDK de SQLTrackingService del archivo Program.cs.This code example is part of the Query using SQLTrackingService SDK sample from the Program.cs file. Para obtener más información, vea consulta mediante 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

Comentarios

Nota

En esta documentación se describen los tipos y espacios de nombres que están obsoletos.This material discusses types and namespaces that are obsolete. Para obtener más información, vea Tipos en desuso en Windows Workflow Foundation 4.5.For more information, see Deprecated Types in 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.During its run time, a workflow instance emits tracking events to the runtime tracking infrastructure. 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.The runtime tracking infrastructure uses a TrackingProfile to filter these tracking events and returns tracking records based on this filtering to a tracking service. 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.There are three kinds of tracking events that can be filtered: activity status events, workflow status events, and user events. Puede agregar objetos ActivityTrackPoint a la propiedad ActivityTrackPoints para coincidir con eventos de estado de actividad concretos; objetos WorkflowTrackPoint a la propiedad WorkflowTrackPoints para coincidir con eventos de estado de flujo de trabajo concretos; y objetos UserTrackPoint a la propiedad UserTrackPoints para coincidir con eventos de usuario concretos.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. 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.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. Los datos se devuelven en ActivityTrackingRecord, WorkflowTrackingRecord o UserTrackingRecord, en función del tipo de punto de seguimiento con el que se coincidió.The data is returned in either an ActivityTrackingRecord, a WorkflowTrackingRecord, or a UserTrackingRecord depending on the type of track point that was matched.

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.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. 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.A tracking service must also implement the abstract TrackingChannel class to provide the channel over which the runtime tracking infrastructure can send tracking records.

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.When the tracking service returns a tracking profile object to the runtime, the workflow starts to execute, and the tracking profile is serialized. 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.If the serialization of the tracking profile fails, an exception is raised to the workflow instance. Si no se controla la excepción, la instancia de flujo de trabajo finaliza.If the exception is not handled, the workflow instance is terminated. El perfil de seguimiento se puede validar antes de pasarlo al tiempo de ejecución con la propiedad Schema.The tracking profile can be validated before passing it to the runtime using the Schema property.

TrackingProfile se puede serializar en XML con TrackingProfileSerializer, que da formato al XML según Schema.A TrackingProfile can be serialized to XML by using the TrackingProfileSerializer, which formats the XML according to the Schema. Esto proporciona un formato adecuado para el almacenamiento de perfiles y para crear un perfil sin programación.This provides a convenient format for profile storage and for authoring a profile in a non-programmatic manner. 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.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.

Constructores

TrackingProfile()

Inicializa una nueva instancia de la clase TrackingProfile.Initializes a new instance of TrackingProfile.

Propiedades

ActivityTrackPoints

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.Gets the collection of activity track points used by the runtime tracking infrastructure to filter activity status events.

UserTrackPoints

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.Gets the collection of user track points used by the runtime tracking infrastructure to filter user events.

Version

Obtiene o establece la versión del perfil de seguimiento.Gets or sets the version of the tracking profile.

WorkflowTrackPoints

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.Gets the collection of workflow track points used by the runtime tracking infrastructure to filter workflow status events.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a

Consulte también