ProjectData: referencia del servicio OData de Project

Office 2013 y posterior

ProjectData es un servicio de datos WCF, también conocido como servicio OData. El servicio ProjectData se implementa con las bibliotecas OData V3.

El servicio ProjectData permite consultas de REST y una gran variedad de bibliotecas de cliente de OData para hacer consultas de informes de datos tanto en línea como a nivel local desde una instancia de Project Web App. Por ejemplo, puede usar directamente una consulta de REST en exploradores web o usar JavaScript para compilar aplicaciones web y aplicaciones cliente para dispositivos móviles, PC, tabletas y equipos Mac. Las bibliotecas de cliente están disponibles para JavaScript, el Microsoft .NET Framework, Microsoft Silverlight, Windows Phone 8 y otros lenguajes y entornos. En Project Server 2013, el servicio ProjectData está optimizado para crear tablas dinámicas, gráficos dinámicos e informes PowerView sobre inteligencia empresarial mediante el cliente de escritorio Excel 2013 y Excel Services en SharePoint. Para obtener más información, consulte Usar Excel 2013 para crear un nuevo informe de Project Online y Server Reporting en PWA.

Cuando Project Server 2013 o Project Online está en el modo de permisos de Project, podemos conceder o denegar explícitamente el acceso a la fuente OData para usuarios concretos de Project Web App. Por ejemplo, en la página Editar usuario en Project Web App, expanda la sección Permisos globales y luego, en la sección General, seleccione la casilla Acceder al servicio de informes de Project Server en la columna Permitir.

Nota Nota

Cuando Project Server está en el modo de permiso de SharePoint predeterminado, las secciones Categorías de seguridad y Permisos globales no están disponibles en la página Editar usuario.

En el modo de permiso de SharePoint predeterminado, no todos los usuarios de Project Web App tienen acceso a la fuente OData. Solo los usuarios de los grupos siguientes tienen acceso: Los visores de carteras, jefes de cartera de proyectos y administradores. No se puede administrar el acceso para entidades individuales en la fuente OData. Es decir, si un usuario tiene acceso al servicio OData, puede obtener los datos de informes que se publican para todos los proyectos, recursos, tareas y otras entidades. Para obtener más información sobre los modos de permiso, consulte Planeación de acceso de usuarios en Project Server 2013.

Puede obtener acceso al servicio ProjectData a través de una dirección URL de Project Web App. La estructura XML del EDM está disponible desde el punto de conexión http://<pwa_site>/_api/ProjectData/$metadata (ejemplo: http://contoso.com/sites/pwa/_api/ProjectData/$metadata). Para ver una fuente que contiene la colección de proyectos, por ejemplo, puede usar la siguiente consulta de REST en un explorador: http://<pwa_site>/_api/ProjectData/Projects. Al ver el origen de la página web en el explorador, verá los datos XML para cada proyecto con las propiedades del tipo de entidad Project que el servicio ProjectData expone.

El EDM del servicio ProjectData es un documento XML que se ajusta a la especificación de OData. El EDM muestra las entidades que están disponibles en los datos de informes y las asociaciones entre las entidades. El EDM incluye los siguientes dos elementos de Schema:

  • El elemento Schema del espacio de nombres ReportingData define elementos EntityType y elementos Association:

    • Elementos EntityType:  cada tipo de entidad, como Project y Task, especifica el conjunto de propiedades incluyendo las propiedades de navegación, que están disponibles para esa entidad. Por ejemplo, las propiedades de tarea incluyen el nombre de la tarea, el GUID de la tarea y el nombre del proyecto para esta tarea. Las propiedades de navegación definen cómo una consulta de una entidad como Project es capaz de navegar a otras entidades o colecciones como Tasks dentro de un proyecto. Las propiedades de navegación definen el rol de inicio y el rol de final, donde los roles están definidos en un elemento Association.

    • Elementos Association: una asociación relaciona una entidad con otra mediante extremos. Por ejemplo, en la asociación Project_Tasks_Task_Project, Project_Tasks es un extremo que relaciona una entidad de Project con las tareas de ese proyecto. Task_Project es el otro extremo que relaciona una entidad Task con el proyecto en el que reside la tarea.

  • El elemento Schema del espacio de nombres Microsoft.Office.Project.Server incluye un solo elemento EntityContainer, que contiene los elementos secundarios para los conjuntos de entidades y conjuntos de asociaciones. El elemento EntitySet para Projects representa todos los proyectos en una instancia de Project Web App. Una consulta de Projects puede obtener la colección de proyectos que cumplan los criterios de un filtro u otras opciones de una consulta.

    Un elemento AssociationSet es una colección de asociaciones que definen las claves principales y las claves externas para las relaciones entre las colecciones de entidades. Aunque los resultados de la consulta ~/_api/ProjectData/$metadata incluyen los elementos AssociationSet , que la implementación de OData utiliza a nivel interno para el servicio de ProjectData y no están documentados.

Límites para las consultas de ProjectData

Hay límites en el número de entidades que pueden devolverse en una consulta del servicio ProjectData. La siguiente tabla muestra el valor predeterminado de los límites por consulta para instancias en línea y locales.

Nota Nota

La infraestructura de Project Online admite un límite más alto para muchos de los conjuntos de entidades. No debe intentar aplicarlos a una instancia local.

Conjunto de entidades

Local

En línea

AssignmentBaselines

100

300

AssignmentBaselineTimephasedDataSet

200

2000

Assignments

100

1000

AssignmentTimephasedDataSet

100

2000

BusinessDriverDepartments

200

200

BusinessDrivers

200

200

CostConstraintScenarios

200

1000

CostScenarioProjects

200

2000

Deliverables

200

1000

EngagementsTimephasedDataSet

200

Issues

200

1000

IssueTaskAssociations

100

2000

PortfolioAnalyses

200

200

PortfolioAnalysisProjects

200

2000

PrioritizationDriverRelations

200

1000

PrioritizationDrivers

200

1000

Prioritizations

200

200

ProjectBaselines

200

200

Projects

100

300

ProjectWorkflowStageDataSet

200

2000

ResourceConstraintScenarios

200

1000

Resources

100

1000

ResourceScenarioProjects

200

2000

ResourceTimephasedDataSet

200

2000

Risks

200

1000

RiskTaskAssociations

100

2000

TaskBaselines

100

300

TaskBaselineTimephasedDataSet

200

2000

Tasks

100

300

TaskTimephasedDataSet

100

2000

TimeSet

100

2000

TimesheetClasses

200

1000

TimesheetLineActualDataSet

100

2000

TimesheetLines

100

1000

TimesheetPeriods

200

1000

Timesheets

100

1000

Para las instancias locales de Project Server, puede usar el comando Get-SPProjectOdataConfiguration en Windows PowerShell para ver los límites de consulta para las entidades en el servicio ProjectData. Por ejemplo, en el equipo de Project Server, ejecute Shell de administración de SharePoint 2013 como administrador y luego ejecute el siguiente comando. Los resultados se muestran debajo del comando.

(Get-SPProjectOdataConfiguration).EntitySetsWithMaxPAgeSizeOverride

Key                                                                       Value
---                                                                       -----
AssignmentBaselineTimephasedDataSet                                         200
ProjectBaselines                                                            200
ResourceTimephasedDataSet                                                   200
TaskBaselineTimephasedDataSet                                               200
BusinessDrivers                                                             200
BusinessDriverDepartments                                                   200
Prioritizations                                                             200
PrioritizationDrivers                                                       200
PrioritizationDriverRelations                                               200
PortfolioAnalyses                                                           200
PortfolioAnalysisProjects                                                   200
CostConstraintScenarios                                                     200
ResourceConstraintScenarios                                                 200
CostScenarioProjects                                                        200
ResourceScenarioProjects                                                    200
Issues                                                                      200
Risks                                                                       200
Deliverables                                                                200
TimeSet                                                                     200
ProjectWorkflowStageDataSet                                                 200
TimesheetClasses                                                            200
TimesheetPeriods                                                            200

Para las instancias locales de Project Server, también puede usar el comando Set-SPProjectOdataConfiguration en Windows PowerShell para reemplazar el tamaño predeterminado de la página de consulta en cualquier conjunto de entidades especificado o reemplazar el tamaño de página predeterminado en todos los conjuntos de entidades. Por ejemplo, ejecute Shell de administración de SharePoint 2013 como administrador y después ejecute el siguiente comando:

Nota de precaución Precaución

Aunque puede cambiar los límites locales, le recomendamos que mantenga los valores predeterminados. Cambiarlos podría afectar negativamente al rendimiento del servidor.

Set-SPProjectOdataConfiguration -EntitySetName Projects -PageSizeOverride 200

Para una instancia de Project Web App que contiene un gran número de entidades, como proyectos, asignaciones o tareas, debe limitar los datos devueltos por lo menos de una de las siguientes maneras. Si no limita los datos devueltos, la consulta puede superar los límites predeterminados y afectar al rendimiento del servidor.

  • Use una opción de URL $filter o bien use $select para limitar los datos. Por ejemplo, la siguiente consulta filtra por fecha de inicio de proyecto y devuelve solo cuatro campos siguiendo el orden del nombre del proyecto (toda la consulta está en una línea):

    http://ServerName/ProjectServerName/_api/ProjectData/Projects?
        $filter=ProjectStartDate gt datetime'2012-01-01T00:00:00'&
        $orderby=ProjectName&
        $select=ProjectName,ProjectStartDate,ProjectFinishDate,ProjectCost
    
  • Obtenga una colección de entidades usando una asociación. Por ejemplo, la siguiente consulta usa a nivel interno la asociación Project_Assignments_Assignment_Project para obtener todas las asignaciones en un proyecto determinado (todo en una sola línea):

    http://ServerName/ProjectServerName/_api/ProjectData
        /Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments
    
  • Realice varias consultas para devolver datos en un página cada vez usando el operador $top y el operador $skip en un bucle. Por ejemplo, la siguiente consulta muestra los problemas del 11 al 20 para todos los proyectos en el orden del recurso que está asignado al problema (todo en una sola línea):

    http://ServerName/ProjectServerName/_api/ProjectData
        /Issues?$skip=10&$top=10&$orderby=AssignedToResource
    

    Para obtener más información, consulte Opciones de la consulta del sistema OData mediante el punto de conexión de REST.

Para obtener más información sobre las opciones de cadena de consulta tales como $filter, $orderby, $skip y $top, vea también Convenciones de direcciones URL de OData.

Nota Nota

El servicio ProjectData no implementa la opción de consulta de $links o la opción de consulta de $expand. Excel 2013 utiliza a nivel interno los elementos de Association y los elementos de AssociationSet en el modelo de datos de la entidad para ayudar a crear asociaciones entre las entidades, para tablas dinámicas y otras construcciones.

Mostrar: