Como buscar informações de status do Workflow no SharePoint Online (365)
CENÁRIO:
Olá!
Nas versões antigas (on-premises) do SharePoint Server é bem fácil obter o status do workflow bastando apenas adicionar uma coluna na view que contém o nome do Workflow.
Entretanto, no SharePoint Online (365) é um pouco diferente. Ainda temos a coluna do workflow (WorkflowColumnStatus), mas ela fica “em branco”. Como fazer para verificar, programaticamente, o status do workflow que foi desenvolvido dentro de um SharePoint Add-in?
ERRO:
Colunas em branco:
SOLUÇÃO:
Utilizando o SharePoint CSOM ou JSOM (Javascript Object Model) é possível instanciar o WorkflowServicesManager e obter as informações do workflow.
Em texto:
var workflowServicesManager = new WorkflowServicesManager(ctx, ctx.Web);
// connect to the instance service
var workflowInstanceService = workflowServicesManager.GetWorkflowInstanceService();
// get all instances
var workflowInstances = workflowInstanceService.EnumerateInstancesForListItem(listId, itemId);
ctx.Load(workflowInstances, i => i.Include(f => f.Id, f => f.LastUpdated, f => f.Status));
ctx.ExecuteQuery();
foreach (var instance in workflowInstances)
{
try
{
if (instance.Status.ToString() != “Completed”)
{
Console.WriteLine(“{0} – {1} – {2}”,
instance.Id.ToString(),
instance.LastUpdated,
instance.Status.ToString());
}
}
catch (Exception ex)
{
_telemetry.TrackException(ex);
}
}
. J
Abraço!