Por padrão os status dos fluxos no SharePoint 2010 são exlcuídos a cada 60 dias.
Então se voce possui algum fluxo e precisa exibir os status, a cada 60 dias ele irá desaparecer do seu site, veja abaixo:
Mesmo se clicar no fluxo de ID 3 ao exibir a página de detalhes do fluxo, ela estará em branco.
Existem então duas formas simples de contornar este problema:
1 – Utilizar o comando abaixo e aumentar o número de dias desejados, por exemplo para 100 dias. Lembrando que o código deve ser ajustado para atender a qual lista esta seu fluxo e deve ser executado para todos os sites onde deseja alterar a lista do fluxo.
SPSite site = new SPSite(http://servidor/sites);
SPWeb web = site.OpenWeb();
SPWorkflowTemplateCollection collection = web.WorkflowTemplates;
SPList list = web.Lists[“Shared Documents“];
SPWorkflowAssociation _asso = null;
foreach (SPWorkflowAssociation asso in list.WorkflowAssociations)
{
if (asso.Name == “Approval”)
{
asso.AutoCleanupDays = 100; _asso = asso;
}
}
2 – Desabilitar o Job que realiza a limpeza, acessando a administração central –> Monitoramento –> Definições de Jobs –> E procure por Workflow Auto Cleanup
Link Technet com os passos acima http://technet.microsoft.com/pt-br/library/ee662522(v=office.14).aspx
Lembrando que ao desativar o JOB dependendo de quantos fluxos voce possui, poderá haver impacto em performance, já que este histórico irá começar a crescer indefinidamente. Fora o risco de alguém ativar novamente e os dados começarem a se perder. Então antes de desabilitar avalie como é utilizado o seu fluxo e se haverá ou não problemas.
Assim, a primeira opção é a mais indicada. Mas se voce possui um ambiente que a cada momento se criam novos sites, então deve-se criar alguma feature que para cada site criado execute o comando alterando os dias de limpeza do fluxo. Caso contrário todos os novos sites estarão com o padrão de 60 dias.
Abraços
Diego Pereira