Principales respuestas
Iniciar desde WebPart (c#) WorkFlow asociado a un Site SharePoint 2010

Pregunta
-
Hola amigos, gusto en saludarles,
Les escribo para consultarles sobre como puedo comenzar un Workflow desde código c# (en un webpart), los ejemplos que he encontrado hacen referencia a iniciar workflow asociados a listas de sharepoint, pero en mi caso requiero iniciar un workflow asociado a un sitio.
Gracias por la atención prestada y el apoyo que puedan brindarme,
jgregorio21
- Tipo cambiado Edin KapicMVP, Moderator miércoles, 12 de enero de 2011 9:50 Es una pregunta
Respuestas
-
Hola jgregorio21,
El proceso debería similar. Te paso una porción de código que ya he posteado en este foro que permite arrancar un workflow de sitio en el momento en el que se crea un subsitio (evento WebProvisioned)...tendrás que adaptarlo a tu caso:
public class SiteEventReceiver : SPWebEventReceiver { static readonly Guid TemplateID = new Guid("4ae03235-4424-4c83-ab5c-edad16d85e84"); /// <summary> /// A site was provisioned. /// </summary> public override void WebProvisioned(SPWebEventProperties properties) { SPWeb newSite = properties.Web; Guid taskListID = newSite.Lists.Add( "Tasks for auto-start workflow", "", SPListTemplateType.Tasks); Guid historyListID = newSite.Lists.Add( "History for auto-start workflow", "", SPListTemplateType.WorkflowHistory); SPWorkflowTemplate template = newSite.WorkflowTemplates[TemplateID]; SPWorkflowAssociation association = SPWorkflowAssociation.CreateWebAssociation(template, "Auto-start workflow", newSite.Lists[taskListID], newSite.Lists[historyListID]); newSite.AddWorkflowAssociation(association); newSite.Site.WorkflowManager.StartWorkflow( newSite, association, "", SPWorkflowRunOptions.Synchronous); } }
Revisa también los siguientes enlaces:
- http://social.msdn.microsoft.com/forums/en-US/sharepointworkflow/thread/f17c0450-d77f-4f3c-b363-b69ed074bcaf/
- http://blog.sharepointdevelopment.nl/post/Starting-a-Workflow-from-an-Event-Receiver.aspx
- http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx
- http://www.sharepointkings.com/2008/09/how-to-start-workflow-programmatically.html
- http://blogs.msdn.com/b/nishand/archive/2008/08/27/how-to-add-remove-and-start-workflow-programmatically.aspx
- http://www.moss2007.be/blogs/vandest/archive/2008/01/18/programmatically-start-workflow.aspx
- http://mkdot.net/blogs/zzl/archive/2009/03/09/start-sharepoint-workflow-programmatically-on-list-items.aspx
Saludos!
- Propuesto como respuesta Edin KapicMVP, Moderator miércoles, 12 de enero de 2011 9:50
- Marcado como respuesta jgregorio21 viernes, 21 de enero de 2011 1:33
Todas las respuestas
-
Hola jgregorio21,
El proceso debería similar. Te paso una porción de código que ya he posteado en este foro que permite arrancar un workflow de sitio en el momento en el que se crea un subsitio (evento WebProvisioned)...tendrás que adaptarlo a tu caso:
public class SiteEventReceiver : SPWebEventReceiver { static readonly Guid TemplateID = new Guid("4ae03235-4424-4c83-ab5c-edad16d85e84"); /// <summary> /// A site was provisioned. /// </summary> public override void WebProvisioned(SPWebEventProperties properties) { SPWeb newSite = properties.Web; Guid taskListID = newSite.Lists.Add( "Tasks for auto-start workflow", "", SPListTemplateType.Tasks); Guid historyListID = newSite.Lists.Add( "History for auto-start workflow", "", SPListTemplateType.WorkflowHistory); SPWorkflowTemplate template = newSite.WorkflowTemplates[TemplateID]; SPWorkflowAssociation association = SPWorkflowAssociation.CreateWebAssociation(template, "Auto-start workflow", newSite.Lists[taskListID], newSite.Lists[historyListID]); newSite.AddWorkflowAssociation(association); newSite.Site.WorkflowManager.StartWorkflow( newSite, association, "", SPWorkflowRunOptions.Synchronous); } }
Revisa también los siguientes enlaces:
- http://social.msdn.microsoft.com/forums/en-US/sharepointworkflow/thread/f17c0450-d77f-4f3c-b363-b69ed074bcaf/
- http://blog.sharepointdevelopment.nl/post/Starting-a-Workflow-from-an-Event-Receiver.aspx
- http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx
- http://www.sharepointkings.com/2008/09/how-to-start-workflow-programmatically.html
- http://blogs.msdn.com/b/nishand/archive/2008/08/27/how-to-add-remove-and-start-workflow-programmatically.aspx
- http://www.moss2007.be/blogs/vandest/archive/2008/01/18/programmatically-start-workflow.aspx
- http://mkdot.net/blogs/zzl/archive/2009/03/09/start-sharepoint-workflow-programmatically-on-list-items.aspx
Saludos!
- Propuesto como respuesta Edin KapicMVP, Moderator miércoles, 12 de enero de 2011 9:50
- Marcado como respuesta jgregorio21 viernes, 21 de enero de 2011 1:33
-
-
Juan Carlos, aprovecho para realizarte una nueva consulta la cual tiene que ver con un desarrollo que estoy ejecutando actualmente respecto a gestión documental con SharePoint 2010. Básicamente necesito tu asesoría para lograr estructurar un workflow de aprobación pero para la gestión de documentos en varias librerías de un sitio, te explico:
El worflow debe comenzar con la publicación, revisión y aprobación (o rechazo/devuelto para correcciones) de unos documentos sobre una primera biblioteca (document library), una vez que estos documentos son aprobados, el siguiente paso del workflow se debe iniciar con el mismo proceso anterior, pero sobre una nueva biblioteca del sitio. Los pasos siguientes siguen su curso con las aprobaciones posteriores sobre otras bibliotecas, hasta finalizar con la aprobación de un resumen ejecutivo, el cual fue producto de la revisión, aprobación etc de los documentos aprobados en los pasos anteriores del flujo de trabajo.
En conclusión JC, quisiera tu apoyo para que me indiques de acuerdo a tu experiencia, la mejor manera de estructurar mi wf, ya que actualmente el que implementé realiza una serie de aprobaciones de las tareas asignadas a cada usuario pero no mantiene una sincronización natural con cada una de las bibliotecas paso a paso.
NOTA: En cada tarea sólo verifico que los documentos se encuentren en la biblioteca que corresponde al paso y que se encuentre con status aprobado, pero el usuarioo podría publicar cualquier documento y aprobarlo sin la correspondiente revisión.
Mil gracias JC por tu valiosa atención y el apoyo que me has estado brindando.
jgregorio21
-
Disculpa JC, estoy utilizando un template secuential workflow en Visual Studio 2010, puedo seguir utilizando dicho tipo de workflow dado que requiero permitir la devolución de documentos para correcciones??? o debo utilizar un state machine?
Gracias
jgregorio21
-
-
JC, por acá agregué el nuevo post, gracias,
http://social.msdn.microsoft.com/Forums/es-ES/mossdeves/thread/22846734-8caa-4358-bcbf-50efb92e1036