Conceptos básicos del flujo de trabajo en SharePointSharePoint workflow fundamentals

Proporciona información general sobre la infraestructura del flujo de trabajo en SharePoint, incluida una vista de la arquitectura de la plataforma y el puente de interoperabilidad del flujo de trabajo.Provides a high-level overview of the workflow infrastructure in SharePoint, including a view of the platform architecture and the workflow interop bridge.

Información general sobre los flujos de trabajo de SharePointOverview of workflows in SharePoint

Los flujos de trabajo de SharePoint funcionan con Windows Workflow Foundation 4, cuyo diseño se modificó considerablemente desde las versiones anteriores. Windows Workflow Foundation (WF), a su vez, se ha desarrollado con la función de mensajería proporcionada por Windows Communication Foundation (WCF).SharePoint workflows are powered by Windows Workflow Foundation 4, which was substantially redesigned from earlier versions. Windows Workflow Foundation (WF), in turn, is built on the messaging functionality that is provided by Windows Communication Foundation (WCF).

Conceptualmente, los flujos de trabajo modelan procesos de negocio estructurados. Por lo tanto, los flujos de trabajo de Windows Workflow Foundation 4 constituyen una colección estructurada de "actividades" de flujo de trabajo, y cada una de ellas representa un componente funcional de un proceso de negocio.Conceptually, workflows model structured business processes. Therefore, Windows Workflow Foundation 4 workflows are a structured collection of workflow "activities," each of which represents a functional component of a business process.

La plataforma de flujo de trabajo de SharePoint usa el modelo de actividad de Windows Workflow Foundation 4 para representar un proceso de negocio basado en SharePoint. Además, SharePoint presenta un modelo de fase/puerta de nivel superior para la creación de flujos de trabajo.The workflow platform in SharePoint uses the Windows Workflow Foundation 4 activity model to represent a SharePoint-based business process. Additionally, SharePoint introduces a higher-level stage-gate model on which to create workflows.

Es importante tener en cuenta la relación entre las actividades de flujo de trabajo y lasacciones de SharePoint. Las actividades de flujo de trabajo representan los objetos administrados subyacentes cuyos métodos impulsan los comportamientos del flujo de trabajo. Las acciones de flujo de trabajo, por otro lado, son contenedores que encapsulan las actividades subyacentes y las presentan con un formato sencillo en SharePoint Designer. Los autores del flujo de trabajo interactúan con las acciones de flujo de trabajo, mientras que el motor de ejecución del flujo de trabajo actúa en las actividades correspondientes.It is important to note the relationship between workflow activities and SharePointactions. Workflow activities represent the underlying managed objects whose methods drive workflow behaviors. Workflow actions, on the other hand, are wrappers that encapsulate the underlying activities and present them in a user-friendly form in SharePoint Designer. Workflow authors interact with the workflow actions, whereas the workflow execution engine acts on the corresponding activities.

Las actividades, que son implementaciones de clases de actividades, se implementan de manera declarativa con XAML.The activities, which are implementations of activity classes, are implemented declaratively by using XAML.

Las actividades de flujo de trabajo se invocan con servicios web acoplados de forma imprecisa que usan API de mensajería para comunicarse con SharePoint. Estas API se han desarrollado con la función de mensajería proporcionada por Windows Communication Foundation (WCF).Workflow activities are invoked using loosely coupled web services that use messaging APIs to communicate with SharePoint. These APIs are built on the messaging functionality that is provided by Windows Communication Foundation (WCF).

El marco de mensajería es muy flexible y admite prácticamente cualquier modelo de mensajería que se necesite. Tenga en cuenta que en una granja de SharePoint, Windows Workflow Foundation y WCF se hospedan en Cliente del Administrador de flujos de trabajo 1.0.The messaging framework is very flexible and supports virtually any messaging pattern that you need. Note that on a SharePoint farm, Windows Workflow Foundation and WCF are hosted in Workflow Manager Client 1.0.

Tanto Cliente del Administrador de flujos de trabajo 1.0, SharePoint como SharePoint Designer 2013 proporcionan componentes fundamentales de la nueva infraestructura:Workflow Manager Client 1.0, SharePoint, and SharePoint Designer 2013 each provide significant parts of the new infrastructure:

  • Cliente del Administrador de flujos de trabajo 1.0 posibilita la administración de las definiciones del flujo de trabajo. También hospeda los procesos de ejecución para las instancias del flujo de trabajo.Workflow Manager Client 1.0 provides the management of workflow definitions. It also hosts the execution processes for workflow instances.

  • SharePoint proporciona el marco para los flujos de trabajo de SharePoint, que modelan los procesos de negocio basados en SharePoint que incluyen documentos, listas, usuarios y tareas de SharePoint. Además, los flujos de trabajo, las asociaciones, las actividades y otros metadatos del flujo de trabajo de SharePoint se almacenan y se administran en SharePoint.SharePoint provides the framework for SharePoint workflows, which model SharePoint-based business processes that involve SharePoint documents, lists, users, and tasks. Additionally, SharePoint workflows, associations, activities, and other workflow metadata are stored and managed in SharePoint.

  • SharePoint Designer 2013 es la principal herramienta de usuarios profesionales para crear definiciones de flujo de trabajo y publicarlas, al igual que en las versiones anteriores. También se puede usar para empaquetar una definición de flujo de trabajo con componentes asociados de SharePoint o sin ellos.SharePoint Designer 2013 is the primary business-user tool for creating workflow definitions and publishing them, as it was in previous versions. It can also be used to package a workflow definition with or without associated SharePoint components.

Arquitectura de la plataformaPlatform architecture

En la Figura 1, se muestra una vista general del marco de flujo de trabajo de SharePoint. En primer lugar, observe cómo la nueva infraestructura del flujo de trabajo presenta Cliente del Administrador de flujos de trabajo 1.0 como el nuevo host de ejecución de flujos de trabajo. Mientras que en las versiones anteriores la ejecución de flujos de trabajo se hospedaba en SharePoint, esto se modificó en SharePoint. Cliente del Administrador de flujos de trabajo 1.0 es externo a SharePoint y se comunica con protocolos comunes a través del bus de servicio Microsoft Azure, con la mediación de OAuth. Más allá de eso, SharePoint incluye las características que espera ver: elementos de contenido, eventos, aplicaciones, etc. Pero observe que también existe una implementación del host de flujo de trabajos de SharePoint 2010 (es decir, el motor Windows Workflow Foundation 3) para la compatibilidad con versiones anteriores. Puede leer más sobre este tema en Utilizar la interoperabilidad de flujo de trabajo para SharePoint.Figure 1 depicts a high-level view of the SharePoint workflow framework. Notice, first, how the new workflow infrastructure introduces Workflow Manager Client 1.0 as the new workflow execution host. Whereas in previous versions workflow execution was hosted in SharePoint itself, this has changed in SharePoint. Workflow Manager Client 1.0 is external to SharePoint and communicates using common protocols over the Microsoft Azure service bus, mediated by OAuth. Otherwise, SharePoint includes the feature that you would expect to see: content items, events, apps, and so on. But notice that there is also an implementation of the SharePoint 2010 workflow host (that is, the Windows Workflow Foundation 3 engine) for backward compatibility. You can read more about this in Use workflow interop for SharePoint.

Figura 1. Arquitectura de alto nivel de la infraestructura del flujo de trabajoFigure 1. High-level architecture of the workflow infrastructure

Arquitectura de flujo de trabajo de alto nivel

Cliente del Administrador de flujos de trabajo 1.0 se representa en SharePoint como un proxy de la aplicación de servicio de Cliente del Administrador de flujos de trabajo 1.0. Este componente permite a SharePoint comunicarse e interactuar con el servidor Cliente del Administrador de flujos de trabajo 1.0. OAuth proporciona la autenticación de servidor a servidor.Workflow Manager Client 1.0 is represented in SharePoint in the form of the Workflow Manager Client 1.0 Service Application Proxy. This component allows SharePoint to communicate and interact with the Workflow Manager Client 1.0 server. Server-to-server authentication is provided using OAuth.

Los eventos de SharePoint que escucha un flujo de trabajo, como itemCreated, itemUpdated, etc., se redirigen a Cliente del Administrador de flujos de trabajo 1.0 con el bus de servicio Microsoft Azure. Para el recorrido de vuelta, la plataforma usa la API de transferencia de estado de representación (REST, Representational State Transfer) de SharePoint para la devolver la llamada a SharePoint.SharePoint events for which a workflow is listening, like itemCreated, itemUpdated, and so on, are routed to Workflow Manager Client 1.0 using the Microsoft Azure service bus. For the return trip, the platform uses the SharePoint Representational State Transfer (REST) API to call back into SharePoint.

Existen también adiciones al modelo de objetos de flujo de trabajo de SharePoint, a las que en conjunto se denomina Administrador de servicios de flujo de trabajo. El administrador de servicios permite administrar y controlar los flujos de trabajo y su ejecución. Las principales zonas de interacción para el administrador de servicios son la implementación, la mensajería, el control de instancias y la interoperabilidad (por compatibilidad con versiones anteriores) con los flujos de trabajo de SharePoint 2010.There are also additions to the SharePoint workflow object model, called collectively the Workflow Services Manager, which allow you to manage and control your workflows and their execution. The primary zones of interaction for the services manager are deployment, messaging, instance control, and (for backward compatibility) interoperability with SharePoint 2010 workflows.

Por último, encontramos el componente de creación de flujos de trabajo. SharePoint Designer ahora puede crear e implementar flujos de trabajo de SharePoint 2010 y SharePoint. Visual Studio 2012 no solo proporciona una superficie de diseño para crear flujos de trabajo declarativos, sino que también permite crear soluciones y Complementos de SharePoint que integran completamente las funciones de Cliente del Administrador de flujos de trabajo 1.0.Finally, there is the workflow authoring component. SharePoint Designer can now create and deploy both SharePoint 2010 and SharePoint workflows. Visual Studio 2012 not only provides a designer surface for creating declarative workflows, but it can also create SharePoint Add-ins and solutions that fully integrate Workflow Manager Client 1.0 functionality.

Suscripciones y asociaciones del flujo de trabajoWorkflow subscriptions and associations

Como el cambio más importante en los flujos de trabajo de SharePoint es el traspaso del procesamiento de flujos de trabajo a hosts de flujos de trabajo externos, como Microsoft Azure, era esencial que los mensajes y eventos de SharePoint se conecten con la infraestructura del flujo de trabajo de Microsoft Azure. Además, era necesario que Microsoft Azure conecte la infraestructura a los datos de cliente. Las asociaciones de flujo de trabajo (basadas en el concepto de suscripciones de WF) son los componentes de la infraestructura de SharePoint que admiten estos requisitos.Because the most significant change to SharePoint workflows is the moving of workflow processing onto external workflow hosts like Microsoft Azure, it was essential for SharePoint messages and events to connect to the workflow infrastructure in Microsoft Azure. In addition, it was necessary for Microsoft Azure to connect the infrastructure to customer data. Workflow associations (which are built on the WF concept of subscriptions) are the SharePoint infrastructure pieces that support these requirements.

Servicio de publicación/suscripción de Microsoft AzureMicrosoft Azure publication/subscribe service

Antes de analizar las asociaciones y suscripciones del flujo de trabajo, es necesario examinar el servicio de publicación/suscripción de Microsoft Azure, que a menudo se conoce comopub/sub o, simplemente,PubSub. PubSub es un marco de mensajería asincrónico. Los emisores del mensaje (publicadores) no envían mensajes directamente a los receptores del mensaje (suscriptores). En cambio, los mensajes son representados por los publicadores como clases que no tienen conocimiento de los suscriptores del mensaje. Los suscriptores luego leen los mensajes publicados tras identificar los mensajes de interés, independientemente del publicador, según las suscripciones que crearon.Before you can discuss workflow associations and subscriptions, you must look at the Microsoft Azure publication/subscribe service, which is sometimes referred to as pub/sub, or simply PubSub. PubSub is an asynchronous messaging framework. Message senders (publishers) do not send messages directly to message receivers (subscribers). Instead, messages are rendered by publishers as classes that have no knowledge of the message subscribers. Subscribers, then, consume published messages by identifying messages of interest, regardless of the publisher, based on subscriptions that they have created.

Esta separación de la creación de mensajes del uso de mensajes permite una mayor escalabilidad y flexibilidad. Posibilita la mensajería multidifusión en el publicador y el uso de mensajes indiscriminado por parte del suscriptor.This decoupling of message creation from message consumption allows for scalability and flexibility. It enables multicast messaging on the publisher side, and for promiscuous message consumption on the subscriber side.

Nota

La característica PubSub forma parte de Microsoft Azure Service Bus, que ofrece opciones de conectividad para WCF y otros puntos de conexión de servicio.Note: The PubSub feature is a part of the Microsoft Azure Service Bus, which provides connectivity options for WCF and other service endpoints. Se incluyen los puntos de conexión REST, que se encuentran detrás de los límites de la traducción de direcciones de red (NAT) o enlazados a direcciones IP asignadas dinámicamente y en frecuente cambio (o ambos).These include REST endpoints, which can be located behind network address translation (NAT) boundaries, or bound to frequently changing, dynamically assigned IP addresses, or both. Para más información sobre Azure Service Bus, vea Service Bus.For more information about the Azure Service Bus, see Service Bus.

Asociaciones de flujo de trabajo y ámbito de asociaciónWorkflow associations and association scope

Las asociaciones de flujo de trabajo enlazan definiciones de flujo de trabajo a determinados ámbitos de SharePoint, con valores predeterminados específicos. Las asociaciones en sí representan un conjunto de reglas de suscripción almacenadas en el servicio de publicación/suscripción de Azure, que procesan los mensajes entrantes a fin de garantizar que se usen en las instancias de flujo de trabajo adecuadas (es decir, con suscripción).Workflow associations bind workflow definitions to specific SharePoint scope, with specific default values. The associations themselves represent a set of subscription rules that are stored in the Azure publication/subscription service that process incoming messages to ensure that they are consumed by appropriate (that is, subscribed) workflow instances.

De forma predeterminada, la infraestructura de mensajería admite flujos de trabajo en los ámbitos siguientes:By default, the messaging infrastructure supports workflows at the following scopes:

  • SPList (para flujos de trabajo de lista)SPList (for list workflows)

  • SPWeb (para flujos de trabajo de sitio)SPWeb (for site workflows)

A diferencia de las versiones anteriores, SharePoint no admite flujos de trabajo en el ámbito de un tipo de contenido ( SPContentType ). Sin embargo, la infraestructura de mensajería es extensible, por lo que puede admitir cualquier ámbito arbitrario. Como desarrollador, puede establecer la propiedad EventSourceId de una instancia WorkflowSubscription determinada en cualquier guid. Luego puede usar ese valor EventSourceId para llamar a PublishEvent(Guid, String, IDictionary<String, Object>), que inicia una nueva instancia de flujo de trabajo del tipo WorkflowSubscription especificado.Unlike previous versions, SharePoint does not support workflows that are scoped to a content type ( SPContentType ). However, the messaging infrastructure is extensible, so it can support any arbitrary scope. As a developer, you can set the EventSourceId property on a given WorkflowSubscription instance to any guid. You can then use that EventSourceId value to call PublishEvent(Guid, String, IDictionary<String, Object>), which triggers a new workflow instance of the specified WorkflowSubscription.

Servicio de flujo de trabajo en Microsoft AzureWorkflow service in Microsoft Azure

Las asociaciones de los flujos de trabajo de SharePoint están representadas por su servicio de flujo de trabajo dentro de Microsoft Azure. Cuando una aplicación debe adquirir una asociación de flujo de trabajo y sus datos, primero debe consultar todos los servicios de flujo de trabajo disponibles en un ámbito determinado.Associations for SharePoint workflows are represented by their workflow service within Microsoft Azure. When an application has to acquire a workflow association and its data, it must first query for all of the workflow services that are available at a given scope.

De forma similar, las instancias de flujo de trabajo transfieren de nuevo un puntero a su servicio de flujo de trabajo correspondiente. Esta es la manera en que se determina su correcta asociación.Similarly, workflow instances carry a pointer back to their respective workflow service. This is the means by which its correct association is determined.

Inicio de los flujos de trabajoStarting workflows

Los flujos de trabajo se pueden iniciar de forma manual o automática.Workflows can be started either manually or automatically.

Flujos de trabajo manualesManual workflows

Los flujos de trabajo manuales se inician cuando el servicio PubSub recibe el mensaje StartWorkflow. El mensaje contiene la siguiente información descriptiva:Manual workflows are started when the PubSub service receives a StartWorkflow message. The message contains the following descriptive information:

  • El identificador de la asociación (es decir, la instancia WorkflowSubscription).The association identifier (that is, the WorkflowSubscription instance).

  • El identificador del contexto del elemento de origen. Se transfiere con el parámetro ItemId y la propiedad EventSource en la llamada al método PublishEvent.The ID of the originating item context. This is passed in with the ItemId parameter and the EventSource property on the PublishEvent method call.

  • El tipo de evento para un inicio manual ( WorkflowStart).The event type for a manual start ( WorkflowStart).

  • Parámetros adicionales de iniciación del flujo de trabajo, ya sea de la suscripción o del formulario Init, según corresponda. Es decir, CorrelationId para la suscripción y WFInstanceId para el formulario Init.Additional workflow initiation parameters, either from the subscription or from the Init form, as appropriate. This would be CorrelationId for the subscription and WFInstanceId for the Init form.

Flujos de trabajo de inicio automáticoAuto-start workflows

Los flujos de trabajo de inicio automático se inician con el mensaje Add en el servicio PubSub. El mensaje contiene la siguiente información descriptiva:Auto-start workflows are initiated by using an Add message to the PubSub service. The message contains the following descriptive information:

  • El identificador del contexto del elemento de origen.The ID of the originating item context.

  • El evento en sí como un evento Add normal de SharePoint.The event itself is a normal SharePoint Add event.

  • Los parámetros de inicialización del flujo de trabajo.The workflow initiation parameters.

Nota

Si un flujo de trabajo se inicia automáticamente en un evento repetible (por ejemplo, el evento OnItemChanged), no podrá iniciar otro flujo de trabajo de una determinada asociación hasta que haya finalizado la ejecución de la instancia existente del flujo de trabajo de la asociación.If a workflow automatically starts on a repeatable event (for example, the OnItemChanged event), it cannot start another workflow of a given association until the existing running instance of the association’s workflow has completed running.

Suscripciones de flujo de trabajoWorkflow subscriptions

El complemento lógico de las asociaciones son las suscripciones, que permiten al flujo de trabajo interactuar con las asociaciones. El flujo de trabajo debe crear suscripciones en el bus de servicio Azure con los métodos create y delete.The natural complement to associations are subscriptions, which allow the workflow to interact with associations. The workflow must create subscriptions on the Azure Service Bus using create methods and delete methods.

Las firmas de los métodos que crean la suscripción y crean instancias del flujo de trabajo especifican los parámetros, tanto los obligatorios como los opcionales.The signatures of the methods that create the subscription and instantiate the workflow specify the parameters???both optional and required. La lista de parámetros depende del autor del flujo de trabajo, por lo que pueden diferir de una definición de flujo de trabajo a otra.The list of parameters is determined by the workflow author, so they may differ from one workflow definition to another. La lista de parámetros de suscripción se especifica en forma de metadatos de las definiciones de flujo de trabajo.The list of subscription parameters is specified as metadata of the workflow definitions. Los parámetros de suscripción se proporcionan a la hora de crear la suscripción.The subscription parameters are provided when the subscription is created. La lista de parámetros de inicialización se especifica en XAML como parte de la definición de flujo de trabajo.The list of initialization parameters is specified in XAML as part of the workflow definition. Los parámetros de inicialización se proporcionan cuando se crean instancias del flujo de trabajo.The initialization parameters are provided when the workflow is instantiated.

Las suscripciones están limitadas a un objeto específico de SharePoint, ya sea una instancia SPList o una instancia SPWeb.Subscriptions are bound to a specific SharePoint object???either an SPList instance or an SPWeb instance. El tipo de objeto de la suscripción se pasa como valor de un parámetro necesario cuando se crea la suscripción.The subscription object type is passed in as a value of a required parameter when the subscription is created. El tipo de objeto define el ámbito de la suscripción para que una suscripción solo pueda responder a eventos que ocurren en el objeto al que están suscritos.The object type defines the subscription scope so that a subscription can only respond to events that occur on the object to which they are subscribed.

Interoperabilidad de flujos de trabajo de SharePointSharePoint workflow interop

La interoperabilidad de flujos de trabajo de SharePoint permite llamar a flujos de trabajo de SharePoint 2010 (creados en Windows Workflow Foundation 3) desde flujos de trabajo de SharePoint, basados en Windows Workflow Foundation 4. Esto permite ejecutar flujos de trabajo de la versión 2010 desde flujos de trabajo de la versión 2013.SharePoint workflow interop enables SharePoint 2010 workflows (which are built on Windows Workflow Foundation 3) to be called from SharePoint workflows, which are based on Windows Workflow Foundation 4. This allows you to execute 2010 workflows from within 2013 workflows.

Esto es importante porque quizás tenga SharePoint 2010 que podría reutilizar junto con sus flujos de trabajo de SharePoint. Además, quizás quiera usar actividades o características de SharePoint 2010 que aún no están implementadas en SharePointThis is important because you may have SharePoint 2010 that you may use to reuse in conjunction with your SharePoint workflows. Additionally, you may wish to use activities or features from SharePoint 2010, which are not yet implemented in SharePoint

Para obtener información completa sobre la interoperabilidad de flujos de trabajo de SharePoint, consulte Utilizar la interoperabilidad de flujo de trabajo para SharePoint.For a full discussion of SharePoint workflow interop, see Use workflow interop for SharePoint.

Vea tambiénSee also