Sintoma
Ao publicar alguns projetos o job “Reporting (Project Publish)” relacionado ao projeto falha com a seguinte mensagem de erro:
“ReportingProjectChangeMessageFailed (24006) – The INSERT statement conflicted with the FOREIGN KEY constraint “FK_MSP_EpmAssignment_ResourceOwnerUID””
Causa
Há várias causas distintas para a falha do job “Reporting (Project Publish)”. Neste caso em decorrência da mensagem de erro descrita acima a causa estava relacionada a falha de sincronização de um recurso membro do projeto com o base de dados de Reporting.
Solução
1. Executar a query abaixo na base de dados de Reporting (ProjectServer_Reporting – usar o nome conforme seu ambiente) com o intuito de identificar quais recursos tem problema de sincronização
select PubMR.Res_UID, PubMR.RES_Name, PubMR.WRES_Account, RepMER.ResourceName from ProjectServer_Reporting.dbo.MSP_Resources PubMR
left outer join ProjectServer_Reporting.dbo.MSP_EpmResource RepMER on PubMR.RES_UID = RepMER.ResourceUID where ResourceName is NULL
2. Da lista acima para o usuário que é membro do projeto forçar seu sincronismo com a base de Reporting através dos passos abaixo:
a. Acessar o PWA -> Resource Center
b. Selecionar o usuário no Resource Center e Editar
c. Salvar sem fazer qualquer alteração
d. Verificar se o seguinte job é completado com sucesso
3. Publicar novamente o projeto e verificar se o job “Reporting (Project Publish)” completa com sucesso.
Informações adicionais
Conforme dito há várias outras razões que podem ocorrer a falha do job “Reporting (Project Publish)”, mas as causas dependem diretamente da descrição do erro gerado. Duas outras causas mais conhecidas do erro são:
- Recurso atribuido a uma tarefa do tipo “Sumarry Task”
- Tarefas nas Linhas de base orfãs. Como detectar este cenário e corrigir:
Please test the behavior on a test environment before.
Run the following scripts on your draft and published databases:
- First run this script to detect them:
select PROJ_NAME, MTB.PROJ_UID,TASK_UID,TB_BASE_NUM from MSP_TASK_BASELINES MTB
inner join MSP_PROJECTS MP on MTB.proj_uid=MP.proj_uid
where TASK_UID not in (select TASK_UID from MSP_TASKS)
- Next, we need to delete them:
—Script top run on the draft DB
USE ProjectServer_Draft – specify the appropriate draft database
delete from MSP_TASK_BASELINES
where TASK_UID not in (select TASK_UID from MSP_TASKS)
—Script top run on the published DB
USE ProjectServer_Published — specify the appropriate published database
delete from MSP_TASK_BASELINES
where TASK_UID not in (select TASK_UID from MSP_TASKS)
No comments:
Post a Comment