Esquema de tablas de #ProjectServer y #ProjectOnline para diseño de reportes

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 y 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 TablaNombre Interno de la TablaLlave Primaria
Proyecto De Análisis De CarteraProyectoDeAnálisisDeCarteraIdDeAnálisis, IdDelProyecto
Análisis De CarteraAnálisisDeCarterasIdDeAnálisis
Departamentos Del Impulsor De NegocioDepartamentoDelImpulsorDeNegocioIdDelDepartamento, IdDelImpulsorDeNegocio
Escenarios De Restricción De CostoEscenarioDeRestricciónDeCosteIdDelEscenario
Escenarios De Restricción Del RecursoEscenarioDeRestricciónDelRecursoIdDelEscenario
Impulsores De NegocioImpulsorDePriorizaciónIdDelImpulsorDeNegocio
Impulsores De PriorizaciónImpulsorDePriorizaciónIdDeLaPriorización, IdDelImpulsorDeNegocio
PriorizacionesPriorizaciónIdDeLaPriorización
Proyectos De Escenario De CosteProyectoDeEscenarioDeCosteIdDelEscenario, IdDelProyecto
Proyectos De Escenario De RecursosProyectoDeEscenarioDeRecursosIdDelEscenario,IdDelProyecto
Relaciones Del Impulsor De PriorizaciónRelaciónDelImpulsorDePriorizaciónIdDeLaPriorización, IdDelImpulsorDelNegocio1, IdDelImpulsorDelNegocio2
AsignacionesAsignaciónIdDeLaAsignación, IdDelProyecto
Conjunto De Datos Con Fase Temporal Previsto De La AsignaciónDatosDeFaseTemporalPrevistaDeLaAsignaciónDía,IdDeLaAsignación,IdDelProyecto,NúmeroDePrevisión
Conjunto De Datos Con Fase Temporal De La AsignaciónDatosDeFasesTemporalesDeLaAsignaciónDía,IdDeLaAsignación,IdDelProyecto
Previsiones De La AsignaciónPrevisiónDeLaAsignaciónIdDeLaAsignación, IdDelProyecto, NúmeroDePrevisión
Conjunto De Datos Con Fase Temporal Previsto De La TareaDatosDeFasesTemporalesPrevistasDeLaTareaDía, IdDelProyecto, IdDeTarea, NúmeroDePrevisión
Previsiones Del ProyectoPrevisiónDelProyectoIdDelProyecto, NúmeroDePrevisión
ProyectosProyectoIdDelProyecto
Conjunto De Datos Con Fase Temporal Del Flujo De Trabajo Del ProyectoDatosDeFaseDeFlujoDeTrabajoDelProyectoIdDeLaFase, IdDelProyecto
TareasTareaIdDelProyecto, IdDeTarea
Previsiones De La TareaPrevisiónDeLaTareaIdDelProyecto, IdDeTarea, NúmeroDePrevisión
Conjunto De Datos Con Fase Temporal De La TareaDatosConFasesTemporalesDeLaTareaDía, IdDelProyecto, IdDeTarea
Asociaciones De La Tarea Con El RiesgoAsociaciónDeLaTareaConElRiesgoIdDelProyecto, IdDelRiesgo, IdDeTarea, TipoDeRelación
Asociaciones De La Tarea Del AsuntoAsociaciónDeLaTareaDelAsuntoIdDelProyecto, IdDeAsunto, IdDeTarea, TipoDeRelación
AsuntosAsuntoIdDeAsunto, IdDelProyecto
ResultadosResultadoIdDelProyecto, IdDeResultado
RiesgosRiesgoIdDelProyecto, IdDelRiesgo
AfiliacionesAfiliaciónIdDeLaAfiliación
Comentarios De Las AfiliacionesComentarioDeLasAfiliacionesIdDelComentario
Conjunto De Datos Con Fase Temporal De Las AfiliacionesDatosConFasesTemporalesDeLasAfiliacionesDía, IdDeLaAfiliación
Conjunto De Datos Con Fases Temporales Del RecursoDatosDeFasesTemporalesDelRecursoDía, IdDelrecurso
RecursosRecursoIdDelrecurso
ResourceDemandTimephasedDataSetResourceDemandTimephasedDataDía, IdDelProyecto, IdDelrecurso
Clases Del Parte De HorasClaseDeParteDeHorasIdDeLaClaseDelParteDeHoras, IdDelDepartamento
Conjunto De Datos Reales De La Línea Del Parte De HorasDatosRealesDeLíneaDeParteDeHorasDía, IdDeLaLíneaDelParteDeHoras, ÍndiceDeAjuste
Tabla de FechasHoraEstablecidaDía
Líneas Del Parte De HorasLíneaDelParteDeHorasIdDeLaLíneaDelParteDeHoras
Partes De HorasParteDeHorasIdDeLaLíneaDelParteDeHoras
Períodos Del Parte De HorasPeriodoDelParteDeHorasIdDelPerí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.

Espero que les haya gustado mi publicación.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s