Share via


Ejemplo de cancelación de un flujo de trabajo

Download sample

En este ejemplo se muestra cómo salir de un flujo de trabajo que está esperando por un evento externo que nunca transcurrirá. El flujo de trabajo es un ejemplo de creación de informes de gastos que envía un informe de gastos y espera a la aprobación. Sin embargo, el ejemplo se ha creado de forma que el evento de aprobación no llegue nunca.

La aplicación de consola de host implementa una característica de cancelación de flujo de trabajo que provoca la salida del flujo de trabajo que no finaliza. La diferencia entre esta característica y una llamada al método Terminate para finalizar un flujo de trabajo es que la finalización es una salida forzada y anómala que no ejecuta ningún excepción ni controlador de compensación. El método empleado en este ejemplo permite que los controladores de excepciones y de compensación deshagan y, en última instancia, finalicen el flujo de trabajo.

Para hacerlo, la aplicación host consulta en el tiempo de ejecución para detectar qué actividad está bloqueando el flujo de trabajo. El nombre de cola del flujo de trabajo se devuelve en el método GetWorkflowQueueData. A esta cola se envía, a través del método EnqueueItem, una excepción no controlada por el flujo de trabajo.

Nota

En este ejemplo, el evento inactivo se utiliza para determinar si el flujo de trabajo está detenido en espera de un evento, pero una aplicación más eficaz debería confirmar que el flujo de trabajo no está inactivo por otras razones.

El resultado del ejemplo será el siguiente:

Resultado de ejemplo de cancelación de un flujo de trabajo

Para generar el ejemplo

  1. Para descargar el ejemplo, haga clic en Descargar ejemplo.

    Así se extrae el proyecto de ejemplo en su disco duro local.

  2. Haga clic en Inicio, señale Programas, señale Microsoft Windows SDK y, a continuación, haga clic en CMD Shell.

  3. Vaya al directorio de origen del ejemplo.

  4. En el símbolo del sistema, escriba MSBUILD <nombre del archivo de solución>.

Para ejecutar el ejemplo

  • En la ventana del símbolo del sistema del SDK, ejecute el archivo .exe de la carpeta CancelWorkflow\bin\debug (o la carpeta CancelWorkflow\bin para la versión de VB del ejemplo), que se encuentra bajo la carpeta principal del ejemplo.

Configuración de bases de datos

Los servicios SQL instalados por Windows Workflow Foundation utilizan Microsoft SQL Server para almacenar información. Puede utilizar SQL Server 2005 Express, SQL Server 2000 o versiones posteriores, o SQL Server 2000 Desktop Engine (MSDE) para estas tareas.

El programa de instalación de Windows Workflow Foundation no instala las bases de datos necesarias para estos servicios; sin embargo, el programa de instalación instala los scripts de SQL para crear y configurar las bases de datos para estos servicios.

En los pasos siguientes se describe cómo crear y configurar las bases de datos utilizadas por los servicios de este ejemplo.

Para crear y configurar la base de datos de SQL Server

  1. Utilice Microsoft SQL Server 2005 Express, SQL Server 2000 o versiones posteriores, o SQL Server 2000 Desktop Engine (MSDE), para crear una base de datos nueva denominada SqlPersistenceService mediante la instrucción de consulta de SQL

    CREATE DATABASE SqlPersistenceService

    Nota   Cuando se utilizan SqlTrackingService y SqlWorkflowPersistenceService en una aplicación de flujo de trabajo, es recomendable utilizar una única base de datos tanto para persistencia como para 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>\SqlPersistenceService_Schema.

  4. Ejecute la consulta haciendo clic en Ejecutar o presionando F5 para crear las tablas del servicio de persistencia 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>\SqlPersistenceService_Logic.

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

Consulte también

Referencia

GetWorkflowQueueData
EnqueueItem
WorkflowQueueInfo
TerminateActivity
Terminate

Otros recursos

Ejemplos de host
Hosting the Windows Workflow Foundation Runtime

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.