viernes, 13 de julio de 2012

Calendarios en Project Server [Parte 2]

En el artículo anterior, habíamos realizado una introducción a los conceptos sobre el manejo de calendarios en Project Server. Además explicamos cómo se configura y qué impacto puede tener realizar cambios en los mismos.

En esta segunda parte, presentamos una serie de consultas SQL que permiten hacer un análisis del uso de calendarios en nuestra instalación de Project Server. Algunas consultas utilizan campos personalizados que pueden no estar presentes en su instalación. Si es así, sólo tienen que eliminar esa sección.

Es importante hacer estas consultas sólo en entornos de prueba, ya que acceden a la base de datos Published, acción no soportada por Microsoft.

Espero les resulten útiles:

/* Calendarios corporativos*/

use ProjectServer_Published
select CAL_NAME Calendario
from dbo.MSP_CALENDARS
where CAL_NAME is not null
order by Calendario

/* Calendario de Proyectos */

use ProjectServer_Published
select PC.Proj_Name AS Proyecto, PR.[Estado del Proyecto] AS Estado , C.CAL_Name AS [Calendario del proyecto],
CAST (PC.[PROJ_OPT_MINUTES_PER_DAY] AS FLOAT)/60 AS [Jornada laboral],
CAST (PC.[PROJ_OPT_MINUTES_PER_WEEK]AS FLOAT)/60 AS [Semana laboral]
from MSP_Projects PC
left join MSP_Calendars C on C.CAL_UID = PC.CAL_UID
left join ProjectServer_Reporting.dbo.MSP_EpmProject_UserView PR on PR.ProjectUID = PC.PROJ_UID
order by PC.Proj_Name asc

/* Calendario de Recursos */

use ProjectServer_Reporting
select ResourceName Recurso, ResourceBaseCalendar Calendario,
case ResourceIsActive when 0 then 'No' else 'Si' end as [Activo]
from MSP_EpmResource_UserView
order by Recurso

/* Calendarios locales de Proyectos*/

use ProjectServer_Published
select PROJ_Name AS Proyecto, CAL_NAME AS Calendario
from dbo.MSP_PROJECT_CALENDARS C
left join MSP_Projects PC on C.PROJ_UID = PC.PROJ_UID
where C.CAL_NAME is not null
and CAL_IS_ENTERPRISE_CAL <> 1
order by Proyecto, Calendario

/* Recursos por proyecto */

use ProjectServer_Published
select P.Proj_Name Proyecto, R.RES_NAME Recurso,
case RES_IS_ENTERPRISE_RESOURCE when 0 then 'Si' else 'No' end as [Es local],
T.RES_NAME [Nombre local]
from dbo.MSP_PROJECT_RESOURCES T
left join MSP_Projects P on P.PROJ_UID = T.PROJ_UID
left join dbo.MSP_RESOURCES R on R.RES_UID = T.RES_UID
where not (RES_IS_ENTERPRISE_RESOURCE = 0 and T.RES_NAME is null)
order by Proyecto, Recurso, T.RES_NAME

/* Tareas por proyecto */

use ProjectServer_Published
select P.Proj_Name Proyecto, T.TASK_NAME Tarea,
case T.TASK_IS_SUMMARY when 0 then 'No' else 'Si' end as Sumaria,
case T.TASK_TYPE when 0 then 'Unidades fijas' when 1 then 'Duración fija' when 2 then 'Trabajo fijo' end as Tipo,
case T.TASK_IS_EFFORT_DRIVEN when 0 then 'No' else 'Si' end as EffortDriven,
case T.TASK_CONSTRAINT_TYPE
when 0 then 'As soon as possible'
when 1 then 'As late as possible'
when 2 then 'Must start on'
when 3 then 'Must finish on'
when 4 then 'Start no earlier than'
when 5 then 'Finish no earlier than'
when 6 then 'Finish no later than'
end as Restriccion,
C.CAL_NAME Calendario,
case T.TASK_IGNORES_RES_CAL when 0 then 'No' else 'Si' end as Ignora
from MSP_TASKS T
left join MSP_Projects P on P.PROJ_UID = T.PROJ_UID
left join MSP_Calendars C on T.TASK_CAL_UID = C.CAL_UID
left join ProjectServer_Reporting.dbo.MSP_EpmProject_UserView PR on PR.ProjectUID = P.PROJ_UID
where T.TASK_NAME is not null
and PR.[Estado del Proyecto] = 'Ejecución'
order by Proyecto, Tarea

Enlaces interesantes

0 comentarios:

Publicar un comentario