7 de marzo de 2008

Iniciar un Workflow por Codigo

El siguiente codigo explica como crear un eventhandler que necesita actualizar una pabina de publicacion e iniciar un Workflow desde Codigo.

Limpiar la ejecucion de Workflows del mismo tipo previene la 'Exception from HRESULT: 0x8102009B'.

foreach (SPWorkflowAssociation wfAssoc in item.ContentType.WorkflowAssociations)
{
// search workflowassociation by name
if ((wfAssoc.Name.ToLower().Contains("control")) && (wfAssoc.Name.ToLower().Contains("publicacion)))
{
// check current item for running workflows of the same type
foreach(SPWorkflow wf in item.Workflows)
{
if (wf.ParentAssociation.Name.Equals(wfAssoc.Name))
{
// remove running workflow
item.Web.Site.WorkflowManager.RemoveWorkflowFromListItem(wf);
}
}
// start workflow
item.Web.Site.WorkflowManager.StartWorkflow(item, wfAssoc, wfAssoc.AssociationData);
break;
}
}

1 comentario:

Fer Tovar dijo...

hola Hector mencionas que esta forma de codigo previene el error 0x8102009b, pero sabes que lo causa?

excelente pagina
Saludos