Partekatu bidez


Extremo de control de flujo de trabajo

El punto de conexión de control de flujo permite a los desarrolladores realizar operaciones para controlar, de manera remota, las instancias de flujo de trabajo hospedadas mediante WorkflowServiceHost. Esta característica se puede usar para realizar operaciones de control mediante programación, como suspender, reanudar y finalizar.

Advertencia

Si usa el punto de conexión de control de flujo de trabajo dentro de una transacción y el flujo de trabajo que se controla contiene una actividad Persist, la instancia de flujo de trabajo no responderá hasta que se agote el tiempo de espera de la transacción.

Administración de instancias de flujo de trabajo

.NET Framework 4.6.1 define un nuevo contrato denominado IWorkflowInstanceManagement. Este contrato define una serie de operaciones de control que permiten controlar de forma remota las instancias de flujo de trabajo hospedadas por WorkflowServiceHost. WorkflowControlEndpoint es un punto de conexión estándar que proporciona una implementación del IWorkflowInstanceManagement contrato. WorkflowControlClientes una clase que se usa para enviar las operaciones de control a .WorkflowControlEndpoint

Las instancias de flujo de trabajo pueden estar en uno de los estados siguientes:

Activo
Estado de una instancia de flujo de trabajo antes de que alcance el estado completado y cuando no esté en estado suspendido. Mientras se encuentra en este estado, la instancia de flujo de trabajo ejecuta y procesa los mensajes de la aplicación.

Suspendido
Aunque en este estado, la instancia de flujo de trabajo no se ejecuta incluso si hay actividades que no se han iniciado en ejecución o se han ejecutado parcialmente.

Completado
Estado final de una instancia de flujo de trabajo. La instancia de flujo de trabajo no se puede ejecutar después de alcanzar el estado completado.

IWorkflowInstanceManagement

La IWorkflowInstanceManagement interfaz define un conjunto de operaciones de control con versiones sincrónicas y asincrónicas. Las versiones de transacción requieren el uso de un enlace que reconoce las transacciones. En la tabla siguiente se enumeran las operaciones de control admitidas.

Operación de control Descripción
Abortar Detiene de forma forzada la ejecución de la instancia de flujo de trabajo.
Cancelar Realiza la transición de una instancia de flujo de trabajo del estado activo o suspendido al estado completado.
Correr Proporciona a una instancia de flujo de trabajo la oportunidad de ejecutarse.
Suspender Realiza la transición de una instancia de flujo de trabajo del estado activo al estado suspendido.
Terminar Realiza la transición de una instancia de flujo de trabajo del estado activo o suspendido al estado completado.
Unsuspend Realiza la transición de una instancia de flujo de trabajo del estado suspendido al estado activo.
TransactedCancel Realiza la operación Cancelar en una transacción (que fluye desde el cliente o se crea localmente). Si el sistema mantiene el estado duradero de la instancia de flujo de trabajo, la instancia de flujo de trabajo debe conservarse durante la ejecución de esta operación.
TransactedRun Realiza la operación de ejecución en una transacción (procedente del cliente o creada localmente). Si el sistema mantiene el estado duradero de la instancia de flujo de trabajo, la instancia de flujo de trabajo debe conservarse durante la ejecución de esta operación.
TransactedSuspend Realiza la operación de suspensión en una transacción (procedente del cliente o creada localmente). Si el sistema mantiene el estado duradero de la instancia de flujo de trabajo, la instancia de flujo de trabajo debe conservarse durante la ejecución de esta operación.
TransactedTerminate Realiza la operación Terminate en una transacción (que fluye desde el cliente o se crea localmente). Si el sistema mantiene el estado duradero de la instancia de flujo de trabajo, la instancia de flujo de trabajo debe conservarse durante la ejecución de esta operación.
TransactedUnsuspend Realiza la operación "Unsuspend" dentro de una transacción (proveniente del cliente o creada localmente). Si el sistema mantiene el estado duradero de la instancia de flujo de trabajo, la instancia de flujo de trabajo debe conservarse durante la ejecución de esta operación.

El IWorkflowInstanceManagement contrato no proporciona un medio para crear una nueva instancia de flujo de trabajo, solo para administrar las instancias de flujo de trabajo existentes. Para obtener más información sobre cómo crear de forma remota una nueva instancia de flujo de trabajo, consulte Extensibilidad del host del servicio de flujo de trabajo.

WorkflowControlEndpoint

WorkflowControlEndpoint es un punto de conexión estándar con un contrato fijo, IWorkflowInstanceManagement. Cuando se agrega a una WorkflowServiceHost instancia, este punto de conexión se puede usar para enviar operaciones de comandos a cualquier instancia de flujo de trabajo hospedada por la instancia de host. Para obtener más información sobre los puntos de conexión estándar, consulte Puntos de conexión estándar.

WorkflowControlClient

WorkflowControlClient es una clase que permite enviar mensajes de control a un WorkflowControlEndpoint en un WorkflowServiceHost. Contiene un método para cada una de las operaciones admitidas por el IWorkflowInstanceManagement contrato, excepto para las operaciones transaccionadas. WorkflowControlClient usa la transacción ambiente para determinar si se debe usar una operación con transacciones.