Extremo de administración de flujo de trabajo
Este tema es aplicable a Windows Workflow Foundation 4.
El extremo de administración de flujo de trabajo permite a los desarrolladores llamar a las operaciones de control para controlar de forma remota instancias de flujo de trabajo hospedadas mediante WorkflowServiceHost. Esta característica se puede utilizar para realizar operaciones de control mediante programación como la suspensión, la reanudación y la finalización.
Administración de instancias de flujo de trabajo
.NET Framework versión 4 define un nuevo contrato llamado IWorkflowInstanceManagement. Este contrato define una serie de operaciones de control que le permiten controlar de forma remota instancias de flujo de trabajo hospedadas por WorkflowServiceHost. WorkflowControlEndpoint es un extremo estándar que proporciona una implementación del contrato IWorkflowInstanceManagement. WorkflowControlClient es una clase que se usa para enviar operaciones de control a WorkflowControlEndpoint.
Las instancias de flujo de trabajo pueden presentar uno de los estados siguientes:
- Activo
El estado de una instancia de flujo de trabajo antes de alcanzar el estado completado y cuando no se encuentra en estado suspendido. Cuando se encuentra en este estado, la instancia de flujo de trabajo se ejecuta y procesa los mensajes de aplicación.
- Suspendido
Cuando se encuentra en este estado, la instancia de flujo de trabajo no se ejecuta aunque haya actividades que no hayan comenzado a ejecutarse o se han ejecutado parcialmente.
- Completado
El 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 interfaz IWorkflowInstanceManagement 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 siguiente tabla, se enumeran las operaciones de control admitidas.
Operación de control | Descripción |
---|---|
Abort |
Detiene de forma obligatoria la ejecución de la instancia de flujo de trabajo. |
Cancelar |
Realiza una transición de una instancia de flujo de trabajo del estado activo o suspendido al estado completado. |
Run |
Ofrece a una instancia de flujo de trabajo la oportunidad de ejecutarse. |
Suspender |
Realiza una transición de una instancia de flujo de trabajo del estado activo al estado suspendido. |
Terminate |
Realiza una transición de una instancia de flujo de trabajo del estado activo o suspendido al estado completado. |
Unsuspend |
Realiza una transición de una instancia de flujo de trabajo del estado suspendido al estado activo. |
TransactedCancel |
Realiza la operación de cancelación en una transacción (procedente del cliente o creada localmente). Si el sistema mantiene el estado durable de la instancia de flujo de trabajo, la instancia de flujo de trabajo se debe conservar 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 durable de la instancia de flujo de trabajo, la instancia de flujo de trabajo se debe conservar 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 durable de la instancia de flujo de trabajo, la instancia de flujo de trabajo se debe conservar durante la ejecución de esta operación. |
TransactedTerminate |
Realiza la operación de finalización en una transacción (procedente del cliente o creada localmente). Si el sistema mantiene el estado durable de la instancia de flujo de trabajo, la instancia de flujo de trabajo se debe conservar durante la ejecución de esta operación. |
TransactedUnsuspend |
Realiza la operación de cancelación de la suspensión en una transacción (procedente del cliente o creada localmente). Si el sistema mantiene el estado durable de la instancia de flujo de trabajo, la instancia de flujo de trabajo se debe conservar durante la ejecución de esta operación. |
El contrato IWorkflowInstanceManagement no proporciona ningún medio para crear una nueva instancia de flujo de trabajo, sino solo para administrar las instancias de flujo de trabajo existentes. Para obtener más información sobre la creación remota de una instancia de flujo de trabajo nueva, vea Extensibilidad de host de servicio de flujo de trabajo.
WorkflowControlEndpoint
WorkflowControlEndpoint es un extremo estándar con un contrato fijo, IWorkflowInstanceManagement. Cuando se agrega a una instancia WorkflowServiceHost, este extremo se puede utilizar para enviar operaciones de comando a cualquier instancia de flujo de trabajo hospedada por la instancia del host. Para obtener más información sobre los extremos estándar, vea Standard Endpoints.
WorkflowControlClient
WorkflowControlClient es una clase que le permite enviar mensajes de control a una clase WorkflowControlEndpoint en una clase WorkflowServiceHost. Contiene un método para cada una de las operaciones admitidas por el contrato IWorkflowInstanceManagement salvo las operaciones de transacción. La clase WorkflowControlClient usa la transacción ambiente para determinar si se debería usar una operación de transacción.