23Nov/090
Cancelar Workflow via programação
No último projeto tivemos que dar a possibilidade para o usuário encerrar o andamento do fluxo manualmente. Para isso um método foi criado:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteID))
{
using (SPWeb web = new SPWeb(relativeWeb))
{
SPWorkflowManager manager = site.WorkflowManager;
SPListItem item = web.Lists[listname].GetItemByID(itemID);
foreach(SPWorkflow workflow in manager.GetItemActiveWorkflows(item))
{
SPWorkflowManager.CancelWorkflow(workflow);
}
}
}
});
Detalhe para o "SPSecurity.RunWithElevatedPrivileges()" que faz com que o código possa ser executado por qualquer usuário que esteja logado.
O código que está no nosso projeto não é exatamente este, não coloquei algumas ações específicas do nosso projeto, mas basicamente para encerrar o fluxo, que é o tema deste post é esse!
Até a próxima!
Referencia: http://pointstoshare.spaces.live.com/Blog/cns!AEC42F315B4528B0!3045.entry?sa=648616426