Ahora, con SharePoint 2013 tenemos disponible por defecto el antiguo motor de Workflows de SharePoint 2010 basado en .Net Framework 3.5, y además podemos instalar el nuevo motor de Workflows para SharePoint 2013 (Workflow Manager) que utiliza los componentes Windows Workflow Foundation (WF) de .Net Framework 4.5. De este modo, al crear un nuevo Workflow podremos elegir qué motor de Workflow deseamos utilizar, el ya conocido de SharePoint 2010 o el nuevo de SharePoint 2013.
Como era de esperar, en caso de no haber instalado el Workflow Manager, sólo tendremos disponible el motor de Workflows de SharePoint 2010. De hecho, al crear un nuevo Workflow desde SharePoint Designer 2013 veremos el siguiente mensaje informativo: The option for the SharePoint 2013 Workflow Platform is not available because the workflow service is not configured on the server. Please contact your server administrator.
Algo que podremos evidenciar al comprobar el estado de Workflow Service desde la Central Administration de nuestro SharePoint 2013: SharePoint 2013 workflow requires a compatible workflow service configured with SharePoint such as Workflow Manager. The workflow service is either not installed or not configured.
Para hacernos una idea, tenemos el antiguo motor de Workflows de SharePoint 2010 que es parte del propio SharePoint, y además el nuevo motor de Workflows de SharePoint 2013 que es un componente independiente que se ejecuta fuera de SharePoint (es decir, estos Workflows se ejecutarán fuera de SharePoint). Este detalle, al menos a mí me resulta bastante interesante, ya que en las Granjas que ejecutan gran cantidad de Workflows podemos sacar la carga de trabajo de la ejecución de los Workflows de los propios servidores de SharePoint. O si lo queremos, también podemos montar el Workflow Manager en una máquina SharePoint 2013 (en tal caso, los Workflows de SharePoint 2013 se ejecutarán fuera de los procesos de SharePoint, aunque estén consumiendo recursos de un servidor SharePoint).
Más adelante, podremos ver que al instalar el Workflow Manager se monta un nuevo Sitio de IIS, con su App Pool y sus Bases de Datos. Dicho Sitio de IIS, se comunicará por HTTP/HTTPS con SharePoint, pudiendo realizar llamadas REST y responder a eventos.
A continuación, vamos a ver cómo realizar la instalación del Workflow Manager en un entorno de laboratorio formado por un único servidor SharePoint 2013. Dicha instalación del Workflow Manager la realizaremos sobre el propio servidor de SharePoint 2013. No vamos a realizar la instalación del Workflow Client (hasta donde yo sé, no es necesario en nuestro caso).
Instalación y Configuración de Workflow Manager en SharePoint 2013
Para que tengamos todos la misma referencia, en el presente caso de ejemplo, se está instalando el Workflow Manager en una Granja de SharePoint 2013 formada por un único servidor, corriendo Windows Server 2012, sobre el que también está corriendo SQL Server 2012. Esta granja de SharePoint 2013 tiene una configuración básica, con una Aplicación Web en el puerto 80. En realidad, es un entorno de Desarrollo y Pruebas, con su Office 2013, su SharePoint Designer 2013, y su Visual Studio 2012.
Lo primero que deberemos realizar es descargar e instalar el Workflow Manager, algo que será tan sencillo como seguir un simple Wizard.
No tardaremos mucho en finalizar la instalación del Workflow Manager.
Pero no hemos acabado. Llegados a este punto, se mostrará el Workflow Manager Configuration Wizard. En esta pantalla debemos elegir una entre tres opciones. En este caso de ejemplo elegiremos la primera opción (Configure Workflow Manager with default settings).
Llegaremos a la pantalla New Farm Configuration del Workflow Manager Configuration Wizard. En esta pantalla deberemos especificar los datos de conexión a la instancia de SQL Server que deseamos utilizar, y la configuración básica del servicio del Workflow Manager (cuenta de servicio para el Pool de Aplicaciones, habilitar o no sobre HTTP, y la Certificate Generation Key).
Tras esto, seguiremos adelante (click en la flecha hacia la derecha, que hay en la parte inferior derecha de la pantalla), y se mostrará la pantalla Summary del Workflow Manager Configuration Wizard. En mi caso de ejemplo se mostró un mensaje con el error “Port number 9000 specified for Internal Communication Port Range is blocked”. Estuve dándole bastantes vueltas (no sabía cómo cogerlo), y al final fue tan fácil como darle al botón de Refresh. No se mostró ningún error, y pude finalizar la configuración.
Al continuar (click en el check que aparece en la parte inferior derecha), se mostrará la pantalla Configuration Progress del Workflow Manager Configuration Wizard.
Puede tardar un poquito, pero en cualquier caso, al rato habrá finalizado con éxito.
Llegados a este punto, si revisamos el IIS, podremos comprobar que se ha creado un nuevo Site y un nuevo App Pool. Este Site es el que se utilizará para la comunicación entre la Granja SharePoint 2013 y el Workflow Manager.
Del mismo modo, a nivel de SQL Server, podremos comprobar que se han creado varias bases de datos nuevas. En nuestro caso de ejemplo, se han creado las siguientes bases de datos: WFInstanceManagementDB, WFResourceManagementDB, WFManagementDB, SBMessageContainer01, SbGatewayDatabase, SbManagementDB.
En mi caso de ejemplo, se me quedó el equipo un poco tostadete, en particular el IIS (no podeía navegar por SharePoint ni abrir sites con el SharePoint Designer), por lo que tuve que hacer un IISRESET para que volviera a la vida. Imagino que fue casualidad.
Y ya estamos a puntito de acabar. Tan sólo nos queda registrar el servicio desde PowerShell, para lo cual, en mi caso de ejemplo tuve que ejecutar el siguiente comando desde la SharePoint 2013 Management Shell: Register-SPWorkflowService –SPSite "http://vmoss2013/" –WorkflowHostUri "http://vmoss2013:12291" –AllowOAuthHttp
Ojo, el anterior comando hay que ejecutarlo una única vez para toda la Granja. Aunque pueda parecer que se debe ejecutar para cada SPSite, la documentación (en particular las FAQ) aclara este tema. Dicho comando es tan sólo para crear el Service Application Proxy que conecta la Granja SharePoint 2013 con el Workflow Manager.
Y ahora sí que hemos acabado. Para comprobarlo, si volver a comprobar el estado del Workflow Service desde la Central Administration, observaremos que ya aparece OK: Workflow is Connected.
Además, si intentamos crear un Nuevo WorkFlow desde SharePoint Designer 2013, ahora podremos elegir entre utilizar el motor de WorkFlows de SharePoint 2010 o el motor de WorkFlows de SharePoint 2013.
Despedida y Cierre
Hasta aquí llega el presente artículo. Antes de acabar quería aprovechar para compartir algunos enlaces de interés, para quien desee curiosear algo más.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.