Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este tema es aplicable a Windows Workflow Foundation 4.
Windows Workflow Foundation (WF) genera el nivel de abstracción para desarrollar aplicaciones interactivas de ejecución prolongada. Las unidades de trabajo se encapsulan como actividades. Las actividades se ejecutan en un entorno que proporcione los medios para el control de flujo, el control de excepciones, la propagación de errores, la persistencia de los datos de estado, la carga y descarga de flujos de trabajo en progreso de la memoria, el seguimiento y el flujo de la transacción.
Arquitectura de la actividad
Las actividades se desarrollan como tipos CLR que derivan de Activity, CodeActivity o NativeActivity, o sus variantes que devuelven un valor, Activity, CodeActivity o NativeActivity. Desarrollar actividades que derivan de Activity le permite al usuario ensamblar objetos WorkflowElement existentes previamente para crear las unidades de trabajo que se ejecutan en el entorno del flujo de trabajo. CodeActivity, por otro lado, permite crear la lógica de ejecución en código administrado usando principalmente CodeActivityContext para el acceso a los argumentos de actividad. Desarrollar actividades que derivan de NativeActivity permite a los usuarios tener acceso al tiempo de ejecución a través de ActivityExecutionContext para funciones como la programación de elementos secundarios, la creación de marcadores, invocar el trabajo asincrónico, el registro de transacciones y mucho más.
La creación de actividades que derivan de Activity es declarativo. Estas actividades se pueden crear en XAML. En el siguiente ejemplo, una actividad llamada Prompt
se crea usando otras actividades para el cuerpo de ejecución.
<Activity x:Class='Prompt'
xmlns:x='https://schemas.microsoft.com/winfx/2006/xaml'
xmlns:z='https://schemas.microsoft.com/netfx/2008/xaml/schema'
xmlns:my='clr-namespace:XAMLActivityDefinition;assembly=XAMLActivityDefinition'
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns="https://schemas.microsoft.com/2009/workflow">
<z:SchemaType.Members>
<z:SchemaType.SchemaProperty Name='Text' Type=' InArgument(s:String)' />
<z:SchemaType.SchemaProperty Name='Response' Type='OutArgument(s:String)' />
</z:SchemaType.Members>
<Sequence>
<my:WriteLine Text='[Text]' />
<my:ReadLine Bookmark='r1' Result='[Response]' />
</Sequence>
</Activity>
Contexto de ejecución de actividad
ActivityExecutionContext es la interfaz del autor de la actividad en el tiempo de ejecución del flujo de trabajo y proporciona acceso a la amplia variedad de características del tiempo de ejecución. En el siguiente ejemplo, se define una actividad que usa el contexto de ejecución para crear un marcador (el mecanismo que permite a una actividad registrar un punto de continuación en su ejecución y que puede reanudarse mediante el paso de datos a la actividad por parte de un host).
public class SimpleReadLine : WorkflowElement
{
protected override void Execute(ActivityExecutionContext context)
{
context.CreateBookmark(this. DisplayName,
new ActivityExecutionCallback(OnReadComplete));
}
void OnReadComplete(ActivityExecutionContext context, object state)
{
string dataRead = (string)state;
Console.WriteLine("You entered: {0}", dataRead);
}
}
Ciclo de vida de la actividad
La instancia de una actividad empieza en el estado En ejecución. A menos que se encuentren excepciones, permanece en este estado hasta que todas las actividades secundarias se hayan terminado de ejecutar y se hayan completado otros trabajos pendientes (objetos Bookmark, por ejemplo). Una vez llegado este punto, cambia al estado Cerrado. El elemento primario de una instancia de actividad puede pedir a un elemento secundario que cancele; si el elemento secundario puede cancelarse, se completa en el estado Cancelado. Si una excepción se produce durante la ejecución, el tiempo en ejecución coloca WorkflowElement en el estado de error y propaga la excepción a la cadena primaria de actividades. A continuación se describen tres estados de realización de una actividad:
Cerrado: la actividad ha completado su trabajo y ha salido.
Cancelado: la actividad ha abandonado su trabajo sin contratiempos y ha salido. En este estado, el trabajo no se revierte de manera explícita.
Con errores: la actividad ha encontrado un error y ha salido sin completar su trabajo.
Las actividades permanecen en el estado En ejecución cuando se conservan o descargan.