Ejemplo de Monitor de flujos de trabajo

Download sample

El Monitor de flujos de trabajo es una herramienta que se utiliza para mostrar información de estado de flujos de trabajo y actividades sobre los flujos de trabajo finalizados y en ejecución actualmente. El monitor lee información de seguimiento de la base de datos de seguimiento y muestra el estado actual de los flujos de trabajo y las actividades, así como la ejecución del flujo de trabajo actual utilizando el control del diseñador de flujos de trabajo.

Para que el Monitor de flujos de trabajo funcione correctamente, los tipos de flujo de trabajo que tengan información de seguimiento en la base de datos deben estar en la GAC o en el mismo directorio que el archivo ejecutable del Monitor de flujos de trabajo. Si falta alguno de los tipos, obtendrá un error al cargar la definición de flujo de trabajo. Además, tendrá que crear una nueva base de datos de seguimiento y ejecutar los flujos de trabajo para que el Monitor de flujos de trabajo detecte correctamente los tipos de flujo de trabajo.

Consulte las secciones siguientes sobre cómo agregar el servicio de seguimiento de SQL al tiempo de ejecución de los flujo de trabajo para que se realice el seguimiento de los eventos de seguimiento hasta la base de datos de seguimiento de SQL.

Configurar un host para la supervisión

Para que el monitor muestre flujos de trabajo y actividades, deben estar a su disposición el diseñador y el código de serialización. Todos los tipos de actividad y flujo de trabajo se deben registrar en la caché de ensamblados global (GAC) utilizando gacutil.exe, o en el mismo directorio que WorkflowMonitor.exe. Además, SqlTrackingQuery requiere acceso a los tipos para leer los flujos de trabajo, la información de actividad y la definición de flujo de trabajo de las tablas SqlTrackingService.

El procedimiento siguiente muestra cómo configurar la base de datos de seguimiento que la aplicación de Monitor de flujos de trabajo utiliza.

Para crear la base de datos de seguimiento de SQL

  1. Utilizando Microsoft SQL Server 2005 Express, SQL Server 2000 o versiones posteriores, o SQL Server 2000 Desktop Engine (MSDE), cree una nueva base de datos denominada Tracking mediante la instrucción de consulta SQL:

    CREATE DATABASE Tracking

    Nota   Si utiliza T:System.Workflow.Runtime.Tracking.SqlTrackingService y T:System.Workflow.Runtime.Hosting.SqlWorkflowPersistenceService en una aplicación de flujo de trabajo, es recomendable utilizar una base de datos única para la persistencia y el seguimiento.

  2. En el área de trabajo del Analizador de consultas SQL, seleccione la base de datos que creó en el paso 1, en la lista de bases de datos disponibles.

  3. En el menú Archivo, haga clic en Abrir y abra el script de SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<lenguaje>\Tracking_Schema.sql.

  4. Ejecute la consulta haciendo clic en Ejecutar o presionando F5 para crear las tablas del servicio de seguimiento de SQL.

  5. En el menú Archivo, haga clic en Abrir y abra el script de SQL %WINDIR%\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\<lenguaje>\Tracking_Logic.sql.

  6. Ejecute la consulta haciendo clic en Ejecutar o presionando F5 para crear los procedimientos almacenados del servicio de seguimiento de SQL.

Configurar la aplicación host

Para configurar una aplicación host para utilizar SqlTrackingService, agregue el servicio SqlTrackingService a la colección de servicios WorkflowRuntime mediante programación o mediante un archivo de configuración. Establezca la propiedad ConnectionString para el nombre del servidor y la base de datos. Establecer la propiedad IsTransactional del servicio SqlTrackingService en false, para que los datos disponibles al monitor estén actualizados (si la propiedad IsTransactional está establecida en true, la información se pone en lotes antes de escribirse en la base de datos.)

Para agregar el servicio SqlTrackingService mediante programación en el servicio, use el siguiente ejemplo de código:

C#:

WorkflowRuntime workflowRuntime = new WorkflowRuntime();

SqlTrackingService sqlTrackingService = new SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;");

sqlTrackingService.IsTransactional = false;

workflowRuntime.AddService(sqlTrackingService);

workflowRuntime.StartRuntime();

Visual Basic:

Dim workflowRuntime As New WorkflowRuntime()

Dim sqlTrackingService As New SqlTrackingService("Initial Catalog=Tracking;Data Source=localhost;Integrated Security=SSPI;")

sqlTrackingService.IsTransactional = false

workflowRuntime.AddService(sqlTrackingService)

workflowRuntime.StartRuntime()

Para agregar el servicio SqlTrackingService mediante un archivo de configuración, el código de la aplicación host debe especificar el nombre de la sección de configuración en el constructor WorkflowRuntime, y el archivo de configuración (por ejemplo, app.config) debe contener la información de configuración de WorkflowRuntime. Por ejemplo:

Aplicación host

C#:
WorkflowRuntime workflowRuntime = new WorkflowRuntime("WorkflowRuntimeConfigurationSection");
workflowRuntime.StartRuntime();

Visual Basic:
Dim workflowRuntime As New WorkflowRuntime("WorkflowRuntimeConfigurationSection")
workflowRuntime.StartRuntime()

Archivo de configuración

<configuration>
    <configSections>
        <section name="WorkflowRuntimeConfigurationSection" type="System.Workflow.Runtime.Configuration.WorkflowRuntimeSection, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </configSections>
    <WorkflowRuntimeConfigurationSection Name="WorkflowRuntimeConfigurationSectionName" UnloadOnIdle="false">
        <Services>
            <add type="System.Workflow.Runtime.Tracking.SqlTrackingService, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  ConnectionString="Initial Catalog=TrackingStore;Data Source=localhost;Integrated Security=SSPI;" IsTransactional="false" UseDefaultProfile="true" />
        </Services>
    </WorkflowRuntimeConfigurationSection>
</configuration>

Interfaz de usuario del monitor

La interfaz del monitor tiene tres paneles principales:

  • Panel Flujos de trabajo

  • Panel Actividades

  • Panel Vista de flujo de trabajo

El monitor lee todos los flujos de trabajo cuyo seguimiento se ha realizado. Para especificar el nombre de equipo y la base de datos, utilice el cuadro de diálogo Configuración. Para abrir este cuadro de diálogo, haga clic en Configuración en el menú Monitor o haga clic en el botón Configuración de la barra de herramientas.

Barra de herramientas de opciones de búsqueda de flujos de trabajo

Esta barra de herramientas muestra las opciones de búsqueda de la herramienta. Puede realizar búsquedas utilizando una combinación de estado del flujo de trabajo e intervalo de tiempo en que se dio el estado. También puede hacer búsquedas realizando el seguimiento de valores de elementos de datos. También puede realizar búsquedas por el id. del flujo de trabajo. Como ejemplo, puede buscar flujos de trabajo finalizados que se finalizaron el día anterior, en que el elemento de seguimiento de datos PurchaseAmount tenía el valor 500 en la actividad CheckCredit.

Nota

De manera predeterminada, el perfil de seguimiento predeterminado SqlTrackingService extrae todos los eventos de flujos de trabajo, actividades y puntos de seguimiento de usuario. No extrae ningún dato de seguimiento de flujos de trabajo. Por lo tanto, no puede realizar búsquedas por Elemento de datos de seguimiento hasta que actualice el perfil del seguimiento predeterminado o el perfil del seguimiento asociado al tipo específico que está ejecutando. Puede usar un script de SQL disponible con este ejemplo, UpdateV1DefaultTrackingProfile.sql, para actualizar el perfil del seguimiento predeterminado y extraer la propiedad Name de las actividades.

Debe hacerlo con el elemento siguiente del perfil de seguimiento:

<Extracts>
    <WorkflowDataTrackingExtract>
        <Member>Name</Member>
    </WorkflowDataTrackingExtract>
</Extracts>

Panel Flujos de trabajo

Este panel muestra todos los flujos de trabajo de la base de datos de seguimiento junto con el estado de cada uno de ellos. Cuando se selecciona un flujo de trabajo, en la base de datos de seguimiento se consulta el estado actual de todas las actividades finalizadas y en ejecución de ese flujo de trabajo; estas actividades se muestran en el panel Actividad.

Panel Actividades

Este panel muestra todas las actividades y el estado de actividad del flujo de trabajo seleccionado en el panel Flujos de trabajo.

Panel Vista de flujo de trabajo

Este panel hospeda el control del diseñador de flujos de trabajo que se distribuye como parte de Windows Workflow Foundation. Permite al usuario expandir y contraer actividades compuestas y cambiar la vista de flujo de trabajo: vista principal, excepciones, eventos y compensación. Cuando se selecciona un flujo de trabajo en el panel Flujo de trabajo, el panel muestra una marca de verificación en todos las actividades completadas y un icono de reproducción en todas las actividades en ejecución.

Menús

Las opciones de menú del Monitor de flujos de datos son las siguientes:

Archivo (menú)

Salir: cierra el programa.

Menú Ver

Detalles del flujo de trabajo: si está habilitado, muestra los paneles Flujo de trabajo y Actividad.

Menú Monitor

Iniciar/Detener: inicia o detiene la supervisión.

Configuración: muestra el cuadro de diálogo Configuración.

Botones de barra de herramientas

Los botones de la barra de herramientas del Monitor de flujos de trabajo son los siguientes:

  • Configuración: muestra el cuadro de diálogo Configuración (para obtener más información, consulte la sección "Configuración").

  • Monitor activado: inicia la supervisión de la base de datos de seguimiento (vea "Utilizar el Monitor").

  • Monitor desactivado: detiene la supervisión de la base de datos de seguimiento (vea "Utilizar el Monitor").

  • Expandir todo: expande todas las actividades compuestas de la vista de flujo de trabajo.

  • Contraer todo: contrae todas las actividades compuestas de la vista de flujo de trabajo.

  • Nivel de zoom de flujo de trabajo: establece el nivel de zoom de la vista de flujo de trabajo.

Configuración

El cuadro de diálogo Configuración se usa para configurar el monitor. Puede especificar los campos siguientes:

  • SQL Server: equipo local o remoto en que se está ejecutando SQL Server.

  • Base de datos de seguimiento: base de datos que se utiliza para almacenar la información de seguimiento.

  • Intervalo de sondeo: número de milisegundos de espera antes de volver a sondear la base de datos.

  • Selección automática del más reciente al sondear: si está seleccionada, el panel Flujos de trabajo selecciona automáticamente el flujo de trabajo más reciente que se está ejecutando.

Nota

Los nombres del servidor y de la base de datos también aparecen en la barra de estado.

Utilizar el Monitor

El Monitor de flujos de trabajo sondea la base de datos de seguimiento, y muestra automáticamente el estado del flujo de trabajo y las actividades en los paneles Flujos de trabajo y Actividades, así como el progreso del flujo de trabajo en el panel Vista de flujo de trabajo. Para activar la supervisión, utilice el botón Monitor activado de la barra de herramientas, o haga clic en Iniciar del menú Monitor. Utilice el cuadro de diálogo Configuración para establecer el intervalo de sondeo. Al supervisar una base de datos de seguimiento, es útil mostrar el flujo de trabajo que se está ejecutando actualmente. Para ello, active la casilla de verificación Selección automática del más reciente al sondear del cuadro de diálogo Configuración.

Nota

Si está activada la supervisión, la palabra "Supervisión" aparece en la barra de estado.

El Monitor de flujos de trabajo utiliza las API de SqlTrackingQuery para la funcionalidad de consulta. La lista de flujos de trabajo y actividades se recupera a través de las API de SqlTrackingQuery. Las funcionalidades de búsqueda utilizan las API de SqlTrackingQuery.

Varias definiciones del mismo tipo de flujo de trabajo

El servicio SqlTrackingService conserva la definición de flujo de trabajo la primera vez que se utiliza un nuevo tipo de flujo de trabajo. Sin embargo, si la definición cambia y la versión del tipo sigue siendo la misma, en la base de datos de seguimiento no se conserva un nuevo registro. Por consiguiente, el monitor siempre muestra la primera definición de un tipo de flujo de trabajo.

Configuración del usuario

El Monitor de flujos de trabajo guarda la configuración(servidor de SQL Server, base de datos, intervalo de sondeo) en el archivo workflowmonitor.config en el directorio \Documents and Settings\<usuario>\Local Settings\Application Data\Microsoft Corporation\Windows Workflow Foundation SDK Application Samples\3.0.0.0.

Consulte también

Referencia

SqlTrackingService

Otros recursos

Using the SQLTrackingService
Task 4: Use the Windows Workflow Tracking Service
Ejemplo de seguimiento simple
Ejemplos de aplicaciones

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.