Cómo desencadenar un flujo de trabajo de SharePoint 2010 desde un flujo de trabajo de SharePoint 2013

Artículo original publicado el sábado, 18 de agosto de 2012

 

Hola,

Soy Chong Youn (John) Choe, director de programas del equipo de SharePoint Designer. SharePoint y SharePoint Designer 2013 beta 2 ahora ya son públicos, lo cual hace que los miembros del grupo de producto estemos encantados de poder compartir entradas complementarias con los seguidores del blog.

En esta entrada describiré por qué la llamada al flujo de trabajo de estilo heredado está habilitada y cómo utilizarla.

Antecedentes

Para empezar, se espera que esta característica mejore sustancialmente la capacidad de reutilización de los flujos de trabajo de SPD. Los usuarios podrán configurar unos flujos de trabajo altamente reutilizables en los sitios de SharePoint y aprovechar los flujos de trabajo igual que los scripts o las funciones.

No ha sido posible que las capacidades de los flujos de trabajo de SharePoint 2013 sustituyan completamente todas las funcionalidades de las acciones de SharePoint 2010, debido a que SharePoint 2013 se basa en una plataforma distinta y se ha reconstruido partiendo de ella. Los equipos de producto de flujo de trabajo han invertido su tiempo en la creación de características nuevas para permitir unos escenarios nuevos de usuario final más completos, y han aparcado la dedicación a las características utilizadas con menor frecuencia, en función de los comentarios de los usuarios.

No obstante, los equipos de producto de flujo de trabajo desean fervientemente cubrir todos los escenarios existentes. En consecuencia, las acciones de “iniciar un flujo de trabajo” han sido diseñadas para dejar que los usuarios combinen SharePoint 2013 y SharePoint 2010 habilitando la llamada entre flujos de trabajo desde un flujo de trabajo de 2013 a un flujo de trabajo de 2010. Ha sido la única solución asequible para proporcionar una ruta de migración para los usuarios actuales de SPD.

Los flujos de trabajo pueden categorizarse en 3 tipos; flujo de trabajo de lista, flujo de trabajo reutilizable y flujo de trabajo de sitio. Para obtener detalles al respecto, consulte la entrada del blog. El flujo de trabajo reutilizable incorpora los parámetros de entrada en tiempo de asociación, y puede desencadenarse en una lista y un elemento de la lista como si fuera un flujo de trabajo de lista posteriormente. Para iniciar un flujo de trabajo, el flujo de trabajo de SharePoint 2010 debe estar preparado para ejecutarse en el momento en que es llamado, lo cual significa que ya debe estar asociado si se trata de un flujo de trabajo reutilizable. Por lo tanto, son compatibles con una única acción de “iniciar un flujo de trabajo de lista” que recibe 3 parámetros: el flujo de trabajo de SharePoint 2010 asociado que se desencadenará, los parámetros del formulario de iniciación y el elemento de destino en el cual se ejecutará el flujo de trabajo asociado. De lo contrario, el flujo de trabajo de sitio no necesita un elemento para ejecutarse y se basa en otra acción de “iniciar un flujo de trabajo de sitio” que recibe dos parámetros: el flujo de trabajo de sitio de SharePoint 2010 que debe desencadenarse y los parámetros del formulario de iniciación.

Por último, pero no menos importante, en caso de que quiera saber lo que se encuentra bajo la superficie, aquí puede encontrar información sobre el “puente de interoperabilidad de flujos de trabajo”: https://msdn.microsoft.com/en-us/library/sharepoint/jj163181(office.15).

 

Escenario de ejemplo

Ahora que comprende el concepto, vamos a hablar sobre cómo y cuándo se utilizan estas acciones. Se presentará un escenario de ejemplo y una descripción paso a paso.

Vamos a suponer que se ha estado utilizando el flujo de trabajo “Budget Approval” en el sitio de SharePoint 2010. Un administrador de TI ha decidido actualizar SharePoint 2010 a SharePoint 2013, los flujos de trabajo existentes de SharePoint 2010 se han migrado al mismo sitio del modo correspondiente (nota: Esto no significa que los flujos de trabajo se han actualizado a flujos de trabajo de SharePoint 2013. Estos flujos de trabajo siguen siendo flujos de trabajo de SharePoint 2010). El flujo de trabajo “Budget Approval” se utiliza para solicitar presupuesto al departamento financiero o de RR.HH., e incorpora 4 parámetros como entrada: “Budget requested” para la cantidad económica solicitada, “Explanation” para describir por qué se necesita, “Requested approval due date” para la fecha de vencimiento de la respuesta y “Reference” para señalar cualquier información relacionada.

Imaginemos que quiere utilizar el flujo de trabajo “Budget Approval” como parte de un nuevo proceso de flujo de trabajo. Anteriormente habría sido necesario crear un flujo de trabajo y volver a escribir el flujo de trabajo en el marco nuevo. Y en caso de querer combinar las características recientemente incorporadas de flujos de trabajo de 2013 junto con el flujo de trabajo “Budget Approval”, habría sido imposible escribirlo todo en un flujo de trabajo.

Las acciones de “iniciar un flujo de trabajo” son una solución perfecta en un caso como este. Supongamos que el flujo de trabajo “Budget Approval” es un flujo de trabajo de lista bajo la lista “Contoso finance”, donde los procesos financieros de Contoso se automatizan por flujos de trabajo.

 

Pasos de diseño

 

1. Inserte una acción de “iniciar un flujo de trabajo de lista" cuando el flujo de trabajo de destino que debe desencadenarse sea un flujo de trabajo de lista o un flujo de trabajo reutilizable asociado a una lista.

clip_image001

 

2. Con la acción insertada, el flujo de trabajo o la asociación deben seleccionarse primero; hágalo haciendo clic en el vínculo del “flujo de trabajo de lista de SharePoint 2010”.

clip_image002

 

3. Busque la lista en la cual reside el flujo de trabajo de destino, y elija el flujo de trabajo, a su vez.

imagen

 

4. Haga clic en “Aceptar” para cerrar el diálogo anterior. A continuación, haga clic en el vínculo de “parámetros” que se encuentra en la frase de la acción de flujo de trabajo de "iniciar una lista". Posteriormente, SharePoint Designer 2013 analizará el flujo de trabajo y mostrará los parámetros de iniciación y sus valores predefinidos.

imagen

El diálogo mostrará información de “tipo” adicional para uno de los parámetros distintos. Esto es así porque el autor del flujo de trabajo de SharePoint 2013 puede ser distinto del autor del flujo de trabajo de SharePoint 2010 y queremos proporcionar información suficiente para que el autor del flujo de trabajo de SharePoint 2013 establezca los valores del parámetro de iniciación sin tener que mirar en el flujo de trabajo llamado.

 

5. Puede establecer el valor de cada parámetro durante el tiempo de diseño, aquí se permite elegir los valores de búsqueda y en realidad el valor se establecerá en tiempo de ejecución. Esto hace que sea todavía más flexible la acción de diseñar un proceso integrado utilizando un flujo de trabajo de SharePoint 2013 que realiza la llamada y un flujo de trabajo de SharePoint 2010 que la recibe.
Las restricciones también se proporcionan en el diálogo, por lo tanto no es necesario aprender con anterioridad la información de los parámetros.

imagen

 

6. También puede, por supuesto, establecer el valor escribiéndolo directamente en el editor de texto. Tenga en cuenta que el diálogo y sus funcionalidades difieren en función de los tipos de parámetro.

imagen

imagen

 

7. Al presionar “…”, el tipo de diseñador correspondiente para el tipo de parámetro que se está rellenando aparece y le guía con la entrada de información. Paralelamente, se muestra el diálogo de búsqueda estándar al hacer clic en el botón “Fx”.

imagen

imagen

 

8. Cuando se hayan establecido todos los parámetros, cierre el diálogo “Set Values for Initiation Parameters”. El número de parámetros definidos se mostrará directamente en la frase de acción.

imagen

imagen

 

9. A continuación, elija el elemento en el cual se ejecutará el flujo de trabajo de destino. Normalmente querrá ejecutar el proceso en “el elemento actual”, lo cual significa que el flujo de trabajo que realiza la llamada y el que la recibe se ejecutarán y dejarán registros y resultados sobre el mismo elemento. Para admitir el escenario general debe elegir la opción de “elemento actual” para el parámetro de “este elemento”.

imagen

 

Y esto es todo. Llamar a un flujo de trabajo de SharePoint 2010 resulta tan sencillo como agregar una frase de acción y establecer los valores adecuados. En realidad el proceso se parece al comportamiento de los usuarios finales que desencadenan el flujo de trabajo de SharePoint 2010 en el servidor SharePoint. Elegir una lista, un elemento y un flujo de trabajo asociado, y rellenar el formulario de iniciación. Los pasos del usuario final en el servidor SharePoint se exponen a continuación.

clip_image021

imagen

imagen

 

Otra función muy interesante es que puede utilizar el valor de las variables del flujo de trabajo que recibe la llamada dentro del flujo de trabajo de SharePoint 2013 que realiza la llamada. Estas variables estarán disponibles en el flujo de trabajo de SharePoint 2013 a través del uso del diálogo de búsqueda.

Lo explicaré más detalladamente con un escenario de ejemplo.

Se ha anunciado una nueva directiva de empresa, el diseñador de flujos de trabajo debe enviar un correo electrónico de notificación a los participantes del proceso de aprobación de presupuesto para que revisen esta directiva nueva.

 

10. Agregue una acción de “enviar un correo electrónico” para enviar correos electrónicos a los participantes de la aprobación de presupuesto.

imagen

 

11. Para buscar las variables del flujo de trabajo de SharePoint 2010, elija la opción de "buscar flujo de trabajo para un usuario” para el control de “destinatario".

imagen

 

12. Se lleva a cabo un nuevo origen de datos automáticamente tras insertar la acción de “iniciar un flujo de trabajo de lista/sitio” y elegir el flujo de trabajo de SharePoint 2010. El nombre del origen de datos consiste en un texto estático de “salida de SharePoint 2010” y el nombre del flujo de trabajo.

imagen

 

13. Cada variable de “Budget Approval” se mostrará en el segundo desplegable: “Field from source”. Elija la variable requerida y presione el botón “Aceptar” para establecer el valor de “destinatario” en el diálogo de correo electrónico.

imagen

 

14. Rellene la sección “CC” del mismo modo. Tenga en cuenta que las variables las crea manualmente la persona que ha creado el flujo de trabajo de SharePoint 2010. Rellene el resto de campos con los valores que quiera.

imagen

imagen

 

Espero que ahora pueda discernir cómo utilizar correctamente los valores devueltos de un flujo de trabajo de SharePoint 2010.

El ejemplo anterior ha mostrado cómo se pueden utilizar las acciones de “iniciar un flujo de trabajo” para llamar dentro un flujo de trabajo heredado. Puede ampliar la utilización de este concepto y utilizar la misma acción para agregar funcionalidades adicionales en los flujos de trabajo de SharePoint 2013. Por ejemplo, existen algunas acciones que únicamente están disponibles en los flujos de trabajo de SharePoint 2010 (por ejemplo, la acción del administrador de búsqueda), podría utilizar las acciones de “iniciar un flujo de trabajo” para desencadenar otro flujo de trabajo que utilice estas acciones heredadas y amplíe las capacidades.

Cuando ya domine las acciones de “iniciar un flujo de trabajo” y su utilización, el flujo de trabajo de SharePoint 2013 y el flujo de trabajo de SharePoint 2010 ya no se percibirán como formularios de flujo de trabajo separados.

Limitaciones

Existen limitaciones para combinar plenamente los puntos fuertes de los flujos de trabajo de SharePoint 2013 y de 2010.

Algunas se deben a cambios de diseño en la nueva plataforma. Por ejemplo, los parámetros de tipo de “fases de asignación” ya no se admiten en una acción de “iniciar un flujo de trabajo”, porque el tipo de parámetro ya no es compatible con los flujos de trabajo de SharePoint 2013. En otras palabras, es necesario que utilice propiamente un flujo de trabajo de SharePoint 2010 si debe utilizar la acción de “iniciar el proceso de aprobación”.

Además, cualquier flujo de trabajo que desee vincular con la utilización de la acción de “iniciar un flujo de trabajo” debe residir en un sitio. No obstante, todos los flujos de trabajo distintos mostrarán sus páginas de estado del flujo de trabajo en páginas separadas.

Y finalmente, la llamada a flujos de trabajo asociados con una lista distinta no puede ejecutarse en el elemento actual del flujo de trabajo de SharePoint 2013. Este es un comportamiento esperado, ya que los dos flujos de trabajo deberían ejecutarse en listas distintas. De este modo, si ejecuta un flujo de trabajo en una lista distinta, tendrá que elegir un elemento específico en la lista del flujo de trabajo de destino para ejecutar el flujo de trabajo en él.

Resumen

Una acción de “iniciar un flujo de trabajo” desencadena un flujo de trabajo de SharePoint 2010 en medio de la ejecución de un flujo de trabajo de SharePoint 2013, en tiempo de ejecución. Tiene dos tipos de acciones, en función del tipo del flujo de trabajo que recibe la llamada, la de “iniciar un flujo de trabajo de lista” y la de “iniciar un flujo de trabajo de sitio”.

Elija el flujo de trabajo de destino y establezca los parámetros de iniciación del flujo de trabajo con valores fijos o valores dinámicos. Elija también la lista a la cual pertenece el flujo de trabajo y el elemento en el cual se ejecutará el flujo de trabajo en el caso de “iniciar un flujo de trabajo de lista”.

Podrá poner esta acción en cualquier punto de un flujo de trabajo de SharePoint 2013, hasta se permite llamar a varios flujos de trabajo de SharePoint 2010. Puede volver a utilizar los flujos de trabajo de SharePoint 2010 existentes sin volver a escribir las acciones contenidas. Resulta un método muy eficaz y útil para combinar flujos de trabajo de SharePoint 2013 y de SharePoint 2010.

Además, los valores devueltos de los flujos de trabajo de SharePoint 2010 a los que se realiza la llamada se ponen a disposición de la lógica del flujo de trabajo de SharePoint 2013 que realiza la llamada, a través del diálogo de búsqueda. Los valores devueltos incluyen todas las variables locales y algunas variables condicionales adicionales también para cualquier flujo de trabajo de SharePoint 2010 llamado en el mismo flujo de trabajo de SharePoint 2013.

Espero que disfrute de las ventajas que esto aporta.

Chong Youn (John) Choe

Esta entrada de blog es una traducción. Puede consultar el artículo original en How to trigger a SharePoint 2010 workflow from a SharePoint 2013 workflow