Usar la interoperabilidad de flujos de trabajo para SharePoint

Proporciona una explicación del uso de flujo de trabajo de SharePoint interoperabilidad en el Diseñador de flujo de trabajo de Visual Studio 2012. La interoperabilidad del flujo de trabajo permite invocar un flujo de trabajo de SharePoint 2010 desde dentro de un flujo de trabajo de SharePoint. Se trata de una característica importante que permite reutilizar las características de flujo de trabajo existentes y llamar a las actividades de flujo de trabajo que no están integradas en SharePoint.

Nota:

Los flujos de trabajo de SharePoint 2010 se han retirado desde el 1 de agosto de 2020 para los nuevos espacios empresariales y se han quitado de los espacios empresariales existentes el 1 de noviembre de 2020. Si está usando los flujos de trabajo de SharePoint 2010, le recomendamos que migre a Power Automate u otras soluciones compatibles. Para obtener más información, consulte Retirada del flujo de trabajo de SharePoint 2010.

Importante

Para obtener información sobre el uso de la funcionalidad de interoperabilidad de flujo de trabajo de SharePoint en SharePoint Designer 2013, vea Descripción de las acciones de coordinación en SharePoint Designer 2013.

Interoperabilidad de flujos de trabajo de SharePoint

Este es el problema. Tiene flujos de trabajo heredados de SharePoint 2010 que desea reutilizar en la plataforma de SharePoint. O, lo que es peor, está creando nuevos flujos de trabajo de SharePoint y necesita invocar actividades que solo están disponibles en la plataforma de SharePoint 2010. Y no sabe qué hacer. En realidad, la solución es sencilla: utilizar la interoperabilidad de flujo de trabajo de SharePoint.

La interoperabilidad del flujo de trabajo de SharePoint permite que los flujos de trabajo de SharePoint 2010 (basados en Windows Workflow Foundation 3) funcionen sin problemas con el motor de flujo de trabajo de SharePoint, que se basa en Windows Workflow Foundation 4. Aunque el nuevo motor de ejecución de Windows Workflow Foundation 4 se hospeda en Administrador de flujos de trabajo, que se ejecuta como un servicio externo, SharePoint todavía contiene el host de flujo de trabajo de SharePoint heredado que usa para procesar flujos de trabajo de SharePoint 2010. Interoperabilidad de flujo de trabajo de SharePoint negociará con los entornos de ejecución de dos, como se muestra en la figura 1.

Figura 1. Interoperabilidad del flujo de trabajo de SharePoint en acción

Puente de interoperabilidad del flujo de trabajo

Vamos a examinar el proceso que aparece en la figura 1. Use las letras para hacer referencia a puntos de énfasis en la ilustración:

( A ) Una instancia de un flujo de trabajo de SharePoint comienza a ejecutarse en la Administrador de flujos de trabajo basada en Windows Workflow Foundation 4. Tenga en cuenta que el Administrador de flujo de trabajo no se encuentra en SharePoint, pero en su lugar se ejecuta como un servicio externo.

( B ) Se llega a un punto en el flujo de trabajo de SharePoint, paso número 3 en el Administrador de flujos de trabajo, donde desea invocar un flujo de trabajo de SharePoint 2010. En el Diseñador de flujo de trabajo Visual Studio 2012, para ello mediante la implementación de la actividad Start 2010 WF, tal como se muestra en la figura 2.

Figura 2. Icono de fase para iniciar un flujo de trabajo de SharePoint 2010.

Iniciar un flujo de trabajo de 2010

Desde la perspectiva del modelo de objetos de SharePoint, esto se logra mediante el método StartWorkflow en la clase WorkflowInteropService .

( C ) en este punto, el flujo de trabajo de SharePoint 2010 comienza a ejecutarse en el host de flujo de trabajo de 3,5 Windows Workflow Foundation dentro de SharePoint. Pero aparece una consideración importante. En algunos casos, puede resultar conveniente el flujo de trabajo de 2013 espere a que el flujo de trabajo 2010 ejecución completa (y quizás devolver algunos datos) antes de continuar con la ejecución del flujo de trabajo de 2013. En otras situaciones, esto puede no ser necesario y los flujos de trabajo pueden ejecutarse de manera independiente, en paralelo.

Para controlar este comportamiento, la clase WorkflowInterop , que controla la ejecución de flujos de trabajo en el host de flujo de trabajo de Windows Workflow Foundation 3.5, proporciona una propiedad Wait . Al establecer esta propiedad booleana en " " (en el cuadro de diálogo del diseñador) o en true en en la propiedad Wait , el flujo de trabajo de 2013 se pausará hasta que el 2010 termine de ejecutarse y devuelve un mensaje completado .

Figura 3. Iniciar un cuadro de diálogo propiedades de flujo de trabajo.

Definición de propiedades en una actividad Iniciar flujo de trabajo

( D ) El efecto práctico de seleccionar true o false en la propiedad Wait (o o No en el cuadro de diálogo de propiedades) se muestra aquí. Si Wait es true, el flujo de trabajo de 2010 pasa un evento WorkflowCompleted (y, opcionalmente, devuelve datos como una propiedad DynamicValue ). Para obtener más información sobre los valores dinámicos, vea Descripción del valor dinámico.

Por supuesto, si Wait está establecido en false, el flujo de trabajo de 2010 se ejecuta y, a continuación, finaliza con normalidad.

( E ) este paso solo es relevante si la invocación del flujo de trabajo 2010 especifica Wait=true. En ese caso, el flujo de trabajo de 2013 recibe el evento WorkflowCompleted y reinicia la ejecución de 2013 de flujo de trabajo en el punto que se quedó.

( F ) el flujo de trabajo de 2013, a continuación, finalice la ejecución del y termina normalmente. Si Wait=false, a continuación, el flujo de trabajo de 2013 ejecuta y finaliza independientemente del flujo de trabajo de 2010.

Diseño de interoperabilidad de flujo de trabajo

Interoperabilidad de flujo de trabajo de SharePoint es un marco de mensajería que admite una asignación de la instancia de uno a uno entre las actividades de flujo de trabajo de WF 3 y 4 de WF. WF 3 y WF 4 interoperan a través de intercambios de mensajes encapsulados por un conjunto de actividades de WF 4 en WorkflowInteropService .

Para admitir la interoperabilidad del flujo de trabajo, la superficie de diseño de flujo de trabajo en SharePoint Designer proporciona acceso a una nueva actividad de flujo de trabajo, Start 2010 WF, que es un contenedor en el método StartWorkflow . Esta actividad permite iniciar un flujo de trabajo de lista o un flujo de trabajo.

La actividad es de hecho una secuencia de mensajes que tienen lugar entre el Administrador de flujos de trabajo y el host de flujo de trabajo de SharePoint 2010 que se ejecuta dentro de SharePoint. Estos dos son actúa de mediador una capa de mensajería, como se muestra en la figura 4. La secuencia comienza en el administrador de flujos de trabajo de SharePoint con una invocación del método StartWorkflow . El mensaje de "inicio" va al servicio de flujo de trabajo dentro de SharePoint, que a su vez, inicia el flujo de trabajo dentro del host de flujo de trabajo de SharePoint 2010. Una vez completada la ejecución del flujo de trabajo de 2010, se desencadena un evento que envía un mensaje "completado" a través del publicador de eventos en el Administrador de flujo de trabajo de 2013.

Figura 4. Protocolo de mensajería de interoperabilidad de flujo de trabajo de SharePoint

Mensaje de interoperabilidad de flujo de trabajo

Vea también