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.
Un flujo de trabajo es un conjunto de unidades elementales denominadas actividades que se almacenan como un modelo que describe un proceso real. Los flujos de trabajo proporcionan una manera de describir el orden de ejecución y las relaciones dependientes entre partes de trabajo de corta o larga duración. Este trabajo pasa por el modelo de principio a fin y las actividades pueden ejecutarse por personas o por funciones del sistema.
Motor de ejecución de flujos de trabajo
Cada instancia de flujo de trabajo en ejecución se crea y mantiene mediante un motor en tiempo de ejecución en proceso con el que interactúa el proceso host a través de uno de los siguientes:
Un WorkflowInvoker, que invoca el flujo de trabajo como un método.
Un WorkflowApplication para un control explícito sobre la ejecución de una única instancia de flujo de trabajo.
Una clase WorkflowServiceHost para las interacciones basadas en mensajes en escenarios de varias instancias.
Cada una de estas clases ajusta el tiempo de ejecución de la actividad principal, representado como una clase ActivityInstance responsable de la ejecución de la actividad. Puede haber varios ActivityInstance objetos dentro de un dominio de aplicación que se ejecuten simultáneamente.
Cada uno de los tres objetos de interacción del host anteriores se crea a partir de un árbol de actividades denominadas programa de flujo de trabajo. Con estos tipos o un host personalizado que encapsula ActivityInstance, los flujos de trabajo se pueden ejecutar dentro de cualquier proceso de Windows, incluidas aplicaciones de consola, aplicaciones basadas en formularios, servicios de Windows, ASP.NET sitios web y servicios de Windows Communication Foundation (WCF).
Componentes de flujo de trabajo en el proceso de host
Interacción entre componentes de flujo de trabajo
En el diagrama siguiente se muestra cómo interactúan los componentes de flujo de trabajo entre sí.
En el diagrama anterior, el Invoke método de la WorkflowInvoker clase se usa para invocar varias instancias de flujo de trabajo. WorkflowInvoker se usa para flujos de trabajo ligeros que no necesitan administración del host; Los flujos de trabajo que necesitan administración desde el host (como Bookmark la reanudación) deben ejecutarse mediante Run en su lugar. No es necesario esperar a que se complete una instancia de flujo de trabajo antes de invocar otra; el motor en tiempo de ejecución admite la ejecución simultánea de varias instancias de flujo de trabajo. Los flujos de trabajo invocados son los siguientes:
Una actividad Sequence que contiene una actividad secundaria WriteLine. Una Variable de la actividad primaria se enlaza a un InArgument de la actividad secundaria. Para obtener más información sobre las variables, los argumentos y el enlace, vea Variables y argumentos.
Una actividad personalizada llamada
ReadLine. Un argumento OutArgument de la actividadReadLinese devuelve al método Invoke de llamada.Actividad personalizada que deriva de la CodeActivity clase abstracta. CodeActivity puede acceder a las características en tiempo de ejecución (como el seguimiento y las propiedades) mediante el CodeActivityContext que está disponible como parámetro del método Execute. Para obtener más información sobre estas características en tiempo de ejecución, consulte Seguimiento y rastreo de flujos de trabajo y Propiedades de ejecución de flujos de trabajo.