Ejecución de un flujo de trabajo en múltiples items de una lista de Sharepoint

En mi caso particular, tuve la necesidad de ejecutar un flujo de trabajo, construido con SPD, en cerca de 2500 items de una lista de Sharepoint. Luego de navegar por varios minutos encontré el script “Start-OSCSPWorkflow” basado en powershell el mismo que permite ejecutar un workflow sobre una cantidad de items determinada. De acuerdo a las recomendaciones del sitio es importante considerar la capacidad de procesamiento del servidor de Sharepoint para ejecutar cierta cantidad de flujos de trabajo. Para mi escenario, los 2500 items consumió un total de 1.5 GB de Memoria, mientras que el procesador casi no fue impactado de forma constante.


Luego de hacer una importación del script es importante definir como se ejecutará el mismo, por ejemplo, con el parámetro -ItemID se puede colocar una lista de IDs de los items de la lista de Sharepoint que se van a ejecutar separados por comas (,).


Start-OSCSPWorkFlow -SiteURL “Dirección_Sitio” -ListName “Nombre_Lista” -WorkflowName “Nombre_Workflow_SPD” -ItemID 12, 33, 45 -verbose


El script por defecto acepta un máximo de 10 IDs de items de la lista. Esto lo controla con el parámetro -MaxConcurrentWorkflowNumber. Si se va a ejecutar más de 10 elementos deben colocar ejecutar el script con el parámetro -MaxConcurrentWorkflowNumber y un valor superior al de los IDs enviados.


Existe otra forma de ejecución del script y es por medio de una consulta CAML. Si el objetivo es ejecutar un workflow sobre todos los items de una lista:


Start-OSCSPWorkFlow -SiteURL “Dirección_Sitio” -ListName “Nombre_Lista” -WorkflowName “Nombre_Workflow_SPD” -Query ‘<FieldRef Name=”ID” />’ -verbose -MaxConcurrentWorkflowNumber 100


He colocado el valor de 100 al parámetro -MaxConcurrentWorkflowNumber, por ejemplo, si la consulta CAML retorna menos de 100 elementos, caso contrario deben colocar un valor mayor.


El URL de donde pueden descargarse el script es http://gallery.technet.microsoft.com/office/Start-a-Workflow-on-120bffe5, espero sea de su utilidad.