Esquema de tablas de #ProjectServer y #ProjectOnline

Cuando necesitamos revisar las tablas, campos, llaves primarias y relaciones entre tablas de las plataforma de Project Server o Project Online para generar reportes sobre los datos del mismo se hace necesario tener establecido de una forma muy clara la estructura de las tablas y como la plataforma establece los campos personalizados, las relaciones de tablas con más de un campo campo y que contiene o guarda cada tabla.

A continuación les relaciono los siguientes elementos que pueden ser de mucho interés:

  1. ODATA Service References:

Página web oficial de Microsoft que permite identificar las tablas que tiene la plataforma cuando se consulta por ODATA, además de las limitaciones en cantidad de registros que devuelve su consulta y algunos ejemplos de como hacer consultas.

https://docs.microsoft.com/en-us/previous-versions/office/project-odata/jj163015(v=office.15)

  1. Esquema de Tablas para Reportes para Project Server 2013:

Página oficial de Microsoft que nos muestra una ayudo oficial de la plataforma para Server que podemos descargar y consultar y nos presenta:

  • Tablas y campos nativos y sus descripciones para consultas ODATA
  • Tablas, Vistas, Procedimientos y campos del cubo de BI de Project Server 2013
  • Los campos nativos incluyen tipos de datos, descripciones y referencias.
  • las relaciones entre tablas, vistas, procedimientos almacenados y otros elementos se muestran de forma grafica para facilitar el entendimiento de los mismos.
  • Se puede descargar el archivo de ayuda en el siguiente link.
    • Lo descargas y descomprimes y encuentras dos archivos:
      • OLAPCubeSchemas2013: Archivo de Excel
      • ProjectServer2013_ReportingDB: Archivo de Ayuda en formato HTML

Se debe tener en cuenta que esta aplicación de ayuda y definiciones solo contiene información actualizada para Project Server 2013. No contiene las tablas adicionales de Project Online y no tiene las definiciones de campos personalizados.

  1. Consultar los metadatos mediante ODATA

Mediante ODATA podemos obtener la lista completa de tablas y campos nativos y personalizados, los tipos de datos, las relaciones y las llaves primarias de cada tabla.

La forma como debemos realizar la consulta de los metadatos y entender su resultado es la siguiente:

  • Es nuestro navegador escribir la siguiente instrucción: https://<<MIDOMINIO>&gt;.sharepoint.com/sites/pwa/_api/ProjectData/$metadata
  • La consulta ODATA devuelve un archivo XML con la estructura del esquema de base de datos de Project Online.
  • Cada una de las tablas del esquema se definen con el TAG EntityType
  • Los campos de llave primaria de las tablas se definen dentro del TAG KEY PropertyRef
  • Los campos nativos o personalizados de la tabla se definen con el TAG Property Name
  • Las relaciones entre tablas se definen con el TAG NavigationProperty

Los campos personalizados de Project Online No tienen espacios o caracteres especiales en el nombre del campo. Si admiten tildes, pero si utilizamos esos campos en los filtros de la consulta ODATA debemos reemplazar las tildes por caracteres ASCII-HTML.

Cuando nos conectamos a las tablas de Project mediante ODATA notamos que los nombres de las tablas cambian según el idioma o convenciones. Para obtener los nombres reales de las tablas con el mismo comando podemos obtener lo siguiente:

  • Contraemos el Schema de ReportingData y expandimos el Schema de Project.Server
  • Las tablas con su nombre interno las identificamos con el TAG EntityType
  • Los nombres definidos para consulta o visualización según idioma o visualización se identifican con el TAG EntitySet
  • La mayor diferencia entre los dos corresponde a los nombres en plural de las tablas.
  1. Resumen de tablas y llaves primarias

De la consulta anterior de metadatos en ODATA y para facilitar la obtención de tablas y llaves primarias se relaciona la siguiente tabla resumen:

Nombre de Visualización de la Tabla Nombre Interno de la Tabla Llave Primaria
Proyecto De Análisis De Cartera ProyectoDeAnálisisDeCartera IdDeAnálisis, IdDelProyecto
Análisis De Cartera AnálisisDeCarteras IdDeAnálisis
Departamentos Del Impulsor De Negocio DepartamentoDelImpulsorDeNegocio IdDelDepartamento, IdDelImpulsorDeNegocio
Escenarios De Restricción De Costo EscenarioDeRestricciónDeCoste IdDelEscenario
Escenarios De Restricción Del Recurso EscenarioDeRestricciónDelRecurso IdDelEscenario
Impulsores De Negocio ImpulsorDePriorización IdDelImpulsorDeNegocio
Impulsores De Priorización ImpulsorDePriorización IdDeLaPriorización, IdDelImpulsorDeNegocio
Priorizaciones Priorización IdDeLaPriorización
Proyectos De Escenario De Coste ProyectoDeEscenarioDeCoste IdDelEscenario, IdDelProyecto
Proyectos De Escenario De Recursos ProyectoDeEscenarioDeRecursos IdDelEscenario,IdDelProyecto
Relaciones Del Impulsor De Priorización RelaciónDelImpulsorDePriorización IdDeLaPriorización, IdDelImpulsorDelNegocio1, IdDelImpulsorDelNegocio2
Asignaciones Asignación IdDeLaAsignación, IdDelProyecto
Conjunto De Datos Con Fase Temporal Previsto De La Asignación DatosDeFaseTemporalPrevistaDeLaAsignación Día,IdDeLaAsignación,IdDelProyecto,NúmeroDePrevisión
Conjunto De Datos Con Fase Temporal De La Asignación DatosDeFasesTemporalesDeLaAsignación Día,IdDeLaAsignación,IdDelProyecto
Previsiones De La Asignación PrevisiónDeLaAsignación IdDeLaAsignación, IdDelProyecto, NúmeroDePrevisión
Conjunto De Datos Con Fase Temporal Previsto De La Tarea DatosDeFasesTemporalesPrevistasDeLaTarea Día, IdDelProyecto, IdDeTarea, NúmeroDePrevisión
Previsiones Del Proyecto PrevisiónDelProyecto IdDelProyecto, NúmeroDePrevisión
Proyectos Proyecto IdDelProyecto
Conjunto De Datos Con Fase Temporal Del Flujo De Trabajo Del Proyecto DatosDeFaseDeFlujoDeTrabajoDelProyecto IdDeLaFase, IdDelProyecto
Tareas Tarea IdDelProyecto, IdDeTarea
Previsiones De La Tarea PrevisiónDeLaTarea IdDelProyecto, IdDeTarea, NúmeroDePrevisión
Conjunto De Datos Con Fase Temporal De La Tarea DatosConFasesTemporalesDeLaTarea Día, IdDelProyecto, IdDeTarea
Asociaciones De La Tarea Con El Riesgo AsociaciónDeLaTareaConElRiesgo IdDelProyecto, IdDelRiesgo, IdDeTarea, TipoDeRelación
Asociaciones De La Tarea Del Asunto AsociaciónDeLaTareaDelAsunto IdDelProyecto, IdDeAsunto, IdDeTarea, TipoDeRelación
Asuntos Asunto IdDeAsunto, IdDelProyecto
Resultados Resultado IdDelProyecto, IdDeResultado
Riesgos Riesgo IdDelProyecto, IdDelRiesgo
Afiliaciones Afiliación IdDeLaAfiliación
Comentarios De Las Afiliaciones ComentarioDeLasAfiliaciones IdDelComentario
Conjunto De Datos Con Fase Temporal De Las Afiliaciones DatosConFasesTemporalesDeLasAfiliaciones Día, IdDeLaAfiliación
Conjunto De Datos Con Fases Temporales Del Recurso DatosDeFasesTemporalesDelRecurso Día, IdDelrecurso
Recursos Recurso IdDelrecurso
ResourceDemandTimephasedDataSet ResourceDemandTimephasedData Día, IdDelProyecto, IdDelrecurso
Clases Del Parte De Horas ClaseDeParteDeHoras IdDeLaClaseDelParteDeHoras, IdDelDepartamento
Conjunto De Datos Reales De La Línea Del Parte De Horas DatosRealesDeLíneaDeParteDeHoras Día, IdDeLaLíneaDelParteDeHoras, ÍndiceDeAjuste
Tabla de Fechas HoraEstablecida Día
Líneas Del Parte De Horas LíneaDelParteDeHoras IdDeLaLíneaDelParteDeHoras
Partes De Horas ParteDeHoras IdDeLaLíneaDelParteDeHoras
Períodos Del Parte De Horas PeriodoDelParteDeHoras IdDelPeríodo

Para herramientas como Power BI que solo permiten hacer relaciones con un único campo entre las tablas se hace necesario crear campos concatenados para crear las relaciones en aquellas tablas que tengan más de un campo de llave primaria.


Publicación Original: https://myprojectserver.wordpress.com/2019/01/21/esquema-de-tablas-de-projectserver-y-projectonline/

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.