lunes, 4 de agosto de 2008

Iniciar automáticamente un workflow asociado a un formulario de Infopath con usuario anónimo

Aprovechando el post anterior y viendo que el administrador del sistema no inicia automaticamente un workflow al crearse un elemento, basta con agregar el siguiente código al codigo del post anterior (en rojo el código ya agregado en el post anterior).


folder.Files.Add(formName + ".xml", data, true);
//**************
// Iniciar workflow
//**************
Microsoft.SharePoint.SPListItem ListI = null;
foreach (Microsoft.SharePoint.SPFile FI in folder.Files)
{
//Inscripcion_Evento de Prueba_mm_mm
if (FI.Name.ToString() == formName + ".xml")
{
ListI = FI.Item;
//b = ListI.ID.ToString();
}
}
Microsoft.SharePoint.Workflow.SPWorkflowAssociation WFA = null;
foreach (Microsoft.SharePoint.Workflow.SPWorkflowAssociation wf in Library.WorkflowAssociations)
{
if (wf.Name.Equals("Nombre de tu workflow"))
{
WFA = wf;
}
}
foreach (SPWorkflow wf2 in ListI.Workflows)
{
if (wf2.ParentAssociation.Name.Equals("Nombre de tu workflow"))
{
ListI.Web.Site.WorkflowManager.RemoveWorkflowFromListItem(wf2);
}
}
try
{
Microsoft.SharePoint.Workflow.SPWorkflow instanceWF = site.WorkflowManager.StartWorkflow(ListI, WFA, WFA.AssociationData, true);
web.AllowUnsafeUpdates = false;
}
catch
{
}
finally
{
web.AllowUnsafeUpdates = false;
}

//**************

});
}


Basta con agregar este código para que se inicie automaticamente el workflow asociado al elemento.

Saludos

No hay comentarios: