ProjectData: referencia de servicio OData de Project 2013

Office 2013

La referencia de Open Data Protocol (OData) para Project Server 2013 documenta el modelo de datos de entidad (EDM) para el servicio ProjectData y muestra cómo utilizar las consultas LINQ y las consultas REST para obtener datos de informes.

Última modificación: miércoles, 25 de junio de 2014

Hace referencia a: Project Server 2013

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 descanso y una variedad de bibliotecas de cliente de OData hacer tanto en línea y las consultas de datos de una instancia de Project Web App de informes local. Por ejemplo, puede directamente utilizar una consulta del resto de los exploradores web o utilizar JavaScript para crear aplicaciones web y cliente para dispositivos móviles, Tablet PC, PC y los equipos Mac. Bibliotecas de cliente están disponibles para JavaScript, la Microsoft .NET Framework, Microsoft Silverlight, Windows Phone 8 y otros lenguajes y entornos. En Project Server 2013, el servicio ProjectData está optimizado para crear PowerView informes de inteligencia empresarial, gráficos dinámicos y tablas dinámicas con el cliente de escritorio de Excel 2013 y servicios de Excel en SharePoint. Para obtener más información, consulte uso de 2013 de Excel para crear un nuevo informe de proyecto en línea y Servidor de informes en PWA.

Cuando Project Server 2013 o Project Online está en modo de permiso del proyecto, puede conceder o denegar el acceso a la fuente para que los usuarios especificados Project Web App de OData explícitamente. Por ejemplo, en la página Editar usuario Project Web App, expanda la sección de Permisos globales y, a continuación, en la sección General , active la casilla de verificación Acceso a Project Server Reporting Service en la columna Permitir .

Nota Nota

Cuando Project Server está en el modo de permiso predeterminado SharePoint, la sección de Permisos globales y la sección Categorías de seguridad 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 de OData. Sólo los usuarios en los siguientes grupos tienen acceso: visores de cartera de proyectos, jefes de cartera y los administradores. No se puede administrar el acceso para las entidades individuales de la OData fuente; es decir, si un usuario tiene acceso al servicio de OData, ella puede obtener informes datos publicados para todos los proyectos, recursos, tareas y otras entidades. Para obtener más información acerca de los modos de permiso, vea Planear el acceso de usuario de Project Server 2013.

Para obtener información sobre un panel de tareas para aplicación para Office que se ejecuta en Project Profesional 2013 y usa JavaScript y JQuery para obtener datos de informe del servicio ProjectData, vea la sección Aplicaciones de panel de tareas en Project Professional en Novedades y lo que es salida para desarrolladores en Project 2013.

Se puede tener acceso al servicio de ProjectData a través de una dirección URL de Project Web App . La estructura XML de EDM está disponible desde el extremo de 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 utilizar la siguiente consulta de descanso en un navegador: 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 expone el servicio ProjectData .

El EDM del servicio ProjectData es un documento XML que cumple con las especificaciones de OData. El EDM muestra las entidades que están disponibles en los datos de informe y las asociaciones entre las entidades. El EDM incluye los siguientes dos elementos Scheme:

  • El elemento Scheme del espacio de nombres ReportingData define los elementos EntityType y los 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 Scheme del espacio de nombres Microsoft.Office.Project.Server incluye solo un elemento EntityContainer que contiene los elementos secundarios de los conjuntos de entidades y los conjuntos de asociaciones. El elemento EntitySet de Projects representa todos los proyectos en una instancia de Project Web App; una consulta de Projects puede obtener la colección de proyectos que cumpla con el filtro u otras opciones de una consulta.

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

Hay límites para el número de entidades que pueden devolverse en una consulta del servicio de ProjectData . El tamaño máximo de página predeterminado es 100, pero algunas entidades tienen un reemplazo para un mayor valor. Por ejemplo, el conjunto de entidades Projects y el conjunto de entidades Tasks tienen un límite predeterminado de 100 entidades por consulta, y el conjunto de entidades Issues tiene un límite predeterminado de 200.

Temas de referencia del conjunto de entidades como elemento EntitySet: proyectos, mostrar el límite de la consulta predeterminada. También puede utilizar el comando Get-SPProjectOdataConfiguration en Windows PowerShell para obtener información acerca de los límites de consulta para las entidades en el servicio de ProjectData . Por ejemplo, en el equipo de Project Server, ejecute El Shell de administración de SharePoint de 2013 como administrador y, a continuación, ejecute el siguiente comando. Resultados se muestran a continuación el 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 una instancia de Project Web App que contiene un gran número de entidades, como proyectos, tareas o tareas, debe limitar los datos devueltos en al menos 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
    
  • Hacer que varias consultas para devolver la página de datos uno a la vez, por utilizando el operador de $top y el $skip en un bucle. Por ejemplo, la siguiente consulta obtiene problemas de 11 a 20 para todos los proyectos, en el orden del recurso que se asigna al problema (todos 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 consulta de sistema de OData utilizando el extremo del resto. También puede utilizar el comando Set SPProjectOdataConfiguration en Windows PowerShell para el tamaño de página de consulta predeterminado para cualquier conjunto de entidades especificado, o reemplazar el tamaño de página predeterminado para todos los conjuntos de 33 entidades. Por ejemplo, ejecutar el Shell de administración de SharePoint de 2013 como administrador y, a continuación, ejecute el siguiente comando:

    Set-SPProjectOdataConfiguration -EntitySetName Projects -PageSizeOverride 300
    

Para obtener más información acerca de las opciones de cadena de consulta como $filter, $orderby, $skipy $top, vea también convenciones de OData URL.

NotaNota

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:
© 2014 Microsoft