Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

Abfragen von OData-Feeds für Project Server 2013-Berichtsdaten

Office 2013

Lernen Sie verschiedene Möglichkeiten zur OData Abfragen des ProjectData -Dienstes im Project Server 2013durchzuführen.

Letzte Änderung: Freitag, 27. Februar 2015

Gilt für: Project Server 2013

Um Berichtsdaten in Project Server 2013zu lesen, gibt es mehrere Möglichkeiten, OData Abfragen des Dienstes ProjectData durchzuführen. Das Business Intelligence Center in Project Web App enthält eine Datenverbindungen-Seite, wo Sie Office Data Connection (ODC) für den Hinweis auf Project Server OData auswählen können. Wenn Sie Standard wird ODC eine Excel 2013 -Arbeitsmappe, in dem Sie PivotTables und PivotCharts PowerView-Berichte erstellen können. Es gibt mehrere Standardberichte, die Project Server 2013enthalten sind.

Sie können benutzerdefinierte Anwendungen erstellen, die mit der Microsoft .NET Framework 4, wie z. B. Anwendungen für reporting auf lokalen oder remote-reporting oder einem Silverlight-Webpart entwickelt werden. Für eine Windows Phone-app können Sie die Abfragesyntax von LINQ in Anweisungen Visual C#, Visual Basic-Anweisungen oder anderen Sprachen .NET Framework . Wenn Sie es vorziehen, können Lambda-Syntax mit LINQ-Methoden Sie die gleichen Abfragen führen. Für Anwendungen, die für das Web oder für andere Geräte zu entwickeln, können Sie die REST-Abfragen oder JavaScript -Anweisungen.

Download des Project 2013 -SDK enthält HelloProject_OData Beispiel- Apps für Office, mit der eine REST-Abfrage mit JavaScript und jQuery verwendet, um Informationen aus der ProjectData -Dienst in einem Aufgabenbereich in Project Professional 2013zusammengefasst.

Viele Tools von Drittanbietern und Consumeranwendungen OData sind, schnell erstellen und Testen von Abfragen unterstützen kann. Sie können Einfügen von REST-URL in einem Browser und zeigen Sie die Daten in der Quelle der Seite oder in einem Web debugging Tool wie Fiddler (http://www.fiddler2.com). Wählen Sie Links zu Tools wie OData Explorer und LINQPad Verbraucher in die Open Data Protocol-Ökosystem (http://msopentech.com/odataorg/ecosystem).

Weitere Informationen zu OData-Abfragen in SharePoint 2013finden Sie unter Verwenden von OData-Abfragevorgängen in SharePoint REST-Anforderungen.

Der XML-Inhalt eines Entity Data Model ist auch ein Service-Metadatendokument oder ein OData-Schema. Das Metadatendokument Service für den ProjectData -Dienst gibt die Entitäten und Beziehungen, die in der Project Server-Berichtsdaten zur Verfügung stehen. Schritt 1 zeigt Gewusst OData-Schema für den ProjectData -Dienst zu verwenden, um Abfragen der Project Server-Berichtsdaten REST zu erstellen.

Schritt 1. Mithilfe des Schemas für OData und REST Abfragen von Project Server-Daten erstellen

  1. Der URL des ProjectData -Dienstes ist http://ServerName/ProjectServerName/_api/ProjectData. Beispielsweise Ihre Site Project Web Apphttp://MyServer/pwa, um das Metadatendokument Service zu erhalten ist eingeben die folgende URL in einem Browser: http://MyServer/pwa/_api/ProjectData/$ Metadaten.

  2. Speichern Sie die XML-Daten in eine Datei. Speichern Sie z. B. als eine Datei mit dem Namen ProjectData.xml. Die ReportingData Schema element enthält die EntityType Elemente und Association -Elemente. Die ReportingData EntityContainer element enthält die EntitySet Elemente und AssociationSet -Elemente.

  3. Formatieren Sie die Datei ProjectData.xml für bessere Lesbarkeit zu erreichen, öffnen Sie die Datei in Visual Studio und wählen Sie dann das Dokument im FormatErweitert im Menü Bearbeiten auswählen. Oder wählen Sie das Dokument im Format -Symbol auf der Symbolleiste des XML-Editors .

  4. Wenn die XML-Daten aus anderen Abfragen direkt in Ihrem Browser anzeigen möchten, deaktivieren Sie die Feedleseanzeige. Führen Sie z. B. in Internet Explorer die folgenden Schritte aus:

    1. Öffnen Sie das Dialogfeld Internetoptionen .

    2. Wählen Sie die Registerkarte Inhalt .

    3. Wählen Sie im Abschnitt Feeds und Web Slices .

    4. Deaktivieren Sie im Abschnitt Erweitert im Dialogfeld Feeds und Web Slice-Einstellungen das Kontrollkästchen Feedleseanzeige einschalten .

    5. Wählen Sie OK, und starten Sie Internet Explorer neu.

  5. Beim Abrufen der Liste der EntitySet -Elemente, die die primäre Entität Auflistungen, die in den ProjectData -Dienst verfügbar sind sind, verwenden Sie die folgende URL in den Browser: http://ServerName/ProjectServerName/_api/ProjectData

    Das XML-Ergebnis angezeigt z. B. collection für Projects und ProjectBaselinesdirekt abgefragt werden können.

    <collection href="Projects">
      <atom:title>Projects</atom:title> 
    </collection>
    <collection href="ProjectBaselines">
      <atom:title>ProjectBaselines</atom:title> 
    </collection>
    

    Weitere Informationen über die Entitätssätze finden Sie unter EntitySet element: Projects und EntitySet element: ProjectBaselines.

  6. Um der Auflistung von Projekten und Zuordnungen und Eigenschaften der einzelnen Projekte erhalten möchten, verwenden Sie http://ServerName/ProjectServerName/_api/ProjectData/Projects.

  7. Um die Zuordnungen und die Eigenschaften eines bestimmten Projekts zu erhalten, geben Sie den primären Schlüssel für die Project -Entität (siehe das Key -Element in EntityType element: Project). Die ProjectId -Eigenschaft ist z. B. der Primärschlüssel der betreffenden Project . ProjectId ist vom Typ Edm.Guid. Die Abfrage für ein bestimmtes Projekt kann als http://ServerName/ProjectServerName/_api/ProjectData/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')ausgedrückt werden.

    link Elemente in der XML-Ergebnisse zeigen die URL-Erweiterungen für die Zuordnungen dieses Projekts. Die href Attribute in den folgenden link Elementen zeigen z. B. wie die Auflistung von Zuordnungen und Vorgänge im Projekt erhalten.

    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Assignments"
        type="application/atom+xml;type=feed" 
        title="Assignments" href="Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments" />
    . . .
    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Tasks" 
        type="application/atom+xml;type=feed" 
        title="Tasks" href="Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Tasks" />
    . . .
    

    Im Referenzthema EntityType element: Project Listet alle Zuordnungen und Eigenschaften, die für den Entitätstyp Project verfügbar sind. Beispielsweise enthalten die Ergebnisse der Abfrage den aktuellen Anfangstermin und die Anzahl der Stunden Arbeit an dem Projekt wie folgt ergänzt:

    . . .
    <content type="application/xml">
      <m:properties>
        <d:ProjectId m:type="Edm.Guid">263fc8d7-427c-e111-92fc-00155d3ba208</d:ProjectId>
        . . .
        <d:ProjectActualStartDate m:type="Edm.DateTime">2012-04-02T08:00:00</d:ProjectActualStartDate>
        <d:ProjectActualWork m:type="Edm.Decimal">32.000000</d:ProjectActualWork>
        . . .
      </m:properties>
    </content>
    
  8. Abfragen für eine einzelne Eigenschaft des Projekts, z. B. den Projektnamen verwenden Sie die folgende Abfrage: http://ServerName/ProjectServerName/_api/ProjectData/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/ProjectName

  9. Für mehrere Eigenschaften des Projekts abgefragt werden, z. B. die Projektnamen, Projektkosten und Projektwährung mithilfe der folgenden Abfrage: http://ServerName/ProjectServerName/_api/ProjectData/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')?$select=ProjectName,ProjectCost,ProjectCurrency. Die Ergebnisse enthalten:

    <id>http://ServerName/ProjectServerName/_api/ProjectData
        /Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')</id>
    <category term="ReportingData.Project" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
    <link rel="edit" title="Project" href="Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')" />
    . . .
    <content type="application/xml">
      <m:properties>
        <d:ProjectCost m:type="Edm.Decimal">3600.000000</d:ProjectCost>
        <d:ProjectCurrency>USD</d:ProjectCurrency>
        <d:ProjectName>My project name</d:ProjectName>
      </m:properties>
    </content>
    
  10. Da eines der Elemente in EntityType element: ProjectNavigationPropertyAssociation element: Project_Tasks_Task_Project -Beziehung verwendet wird, können die folgende Abfrage alle Vorgänge im Projekt erhalten: http://ServerName/ProjectServerName/_api/ProjectData/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Tasks. Die Ergebnisse enthalten die link Elemente für die Entität Zuordnungen der einzelnen Aufgaben und die Eigenschaften der einzelnen Aufgaben. Der Projektsammelvorgang ist die erste Aufgabe in den Ergebnissen, in dem TaskIndex = 0.

    In einer Abfrage, die mit einem Projekt beginnen, zeigt das XML-Ergebnis ein Primärschlüssel und Fremdschlüssel für jede Zuordnung der Aufgabe. Beispielsweise enthält die XML-Daten die Zuordnung für einen bestimmten Vorgang und der Zuordnung für die Zuordnungen in dieser Aufgabe. In der folgenden XML-Ergebnisse der Abfrage ProjectId ist der Primärschlüssel, und TaskId ist der Fremdschlüssel. Das EntityType element: Task Thema wird beide Schlüssel.

    . . .
    <link rel="edit" title="Task" 
        href="Tasks(ProjectId=guid'263fc8d7-427c-e111-92fc-00155d3ba208', 
        TaskId=guid'3631bf8b-427c-e111-92fc-00155d3ba208')" />
    <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Assignments" 
        type="application/atom+xml;type=feed" title="Assignments" 
        href="Tasks(ProjectId=guid'263fc8d7-427c-e111-92fc-00155d3ba208', 
        TaskId=guid'3631bf8b-427c-e111-92fc-00155d3ba208')/Assignments" />
    . . .
    

Sie können das Entity Data Model mithilfe von REST Abfragen laufen. Jedes Element EntityType in der ReportingData Schema element Listet die Eigenschaften und Zuordnungen, die für diese Entität zur Verfügung stehen.

Zusätzlich zu den grundlegenden Abfragen können Sie Query String Optionen wie $select, $skip, $top, $filterund $orderby. Die $links -Abfrage-Option und die Option der Abfrage im $expand sind in der ProjectData -Dienst nicht implementiert. Weitere Informationen finden Sie unter String Abfrageoptionen in der Dokumentation zu Odata.org.

Hinweis Hinweis

Der ProjectData -Dienst implementiert Paging für Entitätenmengen, die Anzahl der Personen einschränken, die in einer Abfrage zurückgegeben werden. Sie können den Befehl Get-SPProjectOdataConfiguration oder den Befehl Set SPProjectOdataConfiguration in SharePoint 2013-Verwaltungsshell zum Abrufen oder Festlegen der Grenzen für eine angegebene Einheit z. B. Tasksoder für alle Entitäten 33. Weitere Informationen finden Sie unter ProjectData - OData service reference.

Es folgen weitere Beispiele für REST-Abfragen (in den Beispielen werden den ersten Teil der URL, die http://ServerName/ProjectServerName/_api/ProjectDataist nicht angezeigt):

  • Abrufen aller Zuordnungen in der Project Web App -Instanz: ~/Assignments

    Hinweis Hinweis

    Für Abfragen, die eine große Datenmenge zurückgeben können, können Sie die Daten mithilfe einer URL-Option $filter reduzieren. Weitere Möglichkeiten für die Datenmenge beschränken finden Sie unter ProjectData - Projekt 2013 OData-Verweis.

  • Um alle führt die Zuweisungen in einem bestimmten Projekt, eine der folgenden Abfragen dieselbe Aufgabe:

    ~/Assignments?$filter=ProjectId eq guid'263fc8d7-427c-e111-92fc-00155d3ba208'

    oder

    ~/Assignments?$filter=ProjectName eq 'My project name'

    ProjectId ist der Primärschlüssel für die Entität Assignment , aber die Option " $filter " eine Eigenschaft der Entität Assignment verwenden kann.

  • Hier ist eine weitere Abfrage zum Abrufen von Zuweisungen in einem bestimmten Projekt: ~/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments

  • Der Ressourcenname für eine bestimmte Zuordnung zu erhalten: ~/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments(ProjectId=guid'263fc8d7-427c-e111-92fc-00155d3ba208',AssignmentId=guid'a0eafeb5-437c-e111-92fc-00155d3ba208')/ResourceName

  • Da die NavigationProperty Elemente ein Association Element, die über zwei Endpunkte verfügt betreffen, können Sie auch rückwärts navigieren mithilfe einer anderen URL. Z. B. zum Abrufen des Projekts für eine bestimmte Zuordnung, eine der folgenden Abfragen führt die gleiche Aufgabe:

    ~/Assignments(ProjectId=guid'263fc8d7-427c-e111-92fc-00155d3ba208',AssignmentId=guid'a0eafeb5-437c-e111-92fc-00155d3ba208')/Project

    oder

    ~/Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208')/Assignments(ProjectId=guid'263fc8d7-427c-e111-92fc-00155d3ba208',AssignmentId=guid'a0eafeb5-437c-e111-92fc-00155d3ba208')/Project

Hinweis Hinweis

Da einige Browser einen Standardwert von 2.000 Zeichen für die maximale URL-Länge verwenden, kann ein Browser REST Abfragen des Dienstes ProjectData zur Rückgabe eines Artikels (eine Eigenschaft oder eine Auflistung) bis zu zwei Auflistung Schritte vom übergeordneten zum untergeordneten Element einschränken. Beispielsweise kann eine Abfrage in zwei Schritten von Projects zu Tasks als ~/Projects(projectId)/Tasks(projectId, taskId)/Assignmentsausgedrückt werden. Diese Abfrage ruft die Auflistung der Zuordnungen in eine angegebene Projekt und Aufgabe.

Jedoch darf eine dreistufige Abfrage ein Element angegebene Zuordnung werden die standardmäßige maximale URL-Länge überschreiten. ~/Projects(projectId)/Tasks(projectId, taskId)/Assignments(assignmentId, projectId,) funktionieren z. B. nicht. Verwenden Sie für eine kürzere URL zum Abrufen einer bestimmten Zuordnung oder eine Zuordnung-Eigenschaft eine Abfrage in einem Schritt oder in zwei Schritten, z. B. ~/Assignments(projectId, assignmentId) oder ~/Tasks(projectId, taskId)/Assignments(projectId, assignmentId)/ResourceName.

Alternativ können Sie den Attributwert der maxUrlLength im httpRuntime -Element der web.config-Datei für Project Web App (im Verzeichnis [Program Files]\Microsoft Office Servers\15.0\WebServices\Shared\ProjectServer\PSI ) erhöhen. Weitere Informationen finden Sie unter HttpRuntime Element (ASP.NET Settings Schema).

Schritt 2 wird veranschaulicht, wie Sie LINQ-Abfragen in Visual C# mithilfe von Ausdrücken in der deklarativen Syntax der LINQ-Abfrage und unter Verwendung von Methodensyntax mit Lambda-Ausdrücken zu erstellen. Sie können Visual Studio 2010 oder Visual Studio 2012verwenden.

Schritt 2. Erstellen Sie eine einfache Anwendung für LINQ-Abfragen von Project Server-Daten

  1. Erstellen Sie ein Visual Studio-Projekt, das die Vorlage Windows-Konsolenanwendung verwendet. Wählen Sie die Ziel- .NET Framework 4. Erstellen Sie z. B. ein Projekt mit dem Namen TestProjectData.

  2. Fügen Sie einen Dienstverweis auf den ProjectData -Dienst, der der Adresse http://ServerName/ProjectServername/_api/ProjectData/$metadatahat. Wählen Sie im Dialogfeld " Dienstverweis hinzufügen " die Adresse auflösen, wählen den Dienst ReportingData und geben Sie den Namen des Service Reference-Namespaces wechseln . Benennen Sie z. B. den Namespace ProjectOData. Wenn Sie den ReportingData-Knoten erweitern, sehen Sie alle Entitätenmengen, die in den ProjectData -Dienst definiert sind (siehe Abbildung 1).

    Abbildung 1. Ein OData-Dienstverweis festlegen

    Festlegen eines OData-Dienstverweises

    Visual Studio fügt den erforderlichen System.Data.Services.Client Verweis, wenn Sie den Dienstverweis ProjectOData erstellen.

  3. Fügen Sie den folgenden Code in die Datei "Program.cs". Die Variable context wird mit den Metadaten in das EDM, ProjectData initialisiert, die Sie durch Hinzufügen des Dienstverweises ProjectOData hergestellt.

    Die projectQuery1 gesetzt ist, einem LINQ-Abfrageausdruck für Projekte, wo Anfangstermin des Projekts liegt nach dem 1. Januar 2012 und die Ausgabe nach Projektname sortiert ist. Die projectQuery1 -Variable ist vom Typ IOrderedQueryable<ProjectOData.Project>.

    Die Variable projectQuery2 erzeugt die gleiche Abfrageergebnisse mithilfe von Lambda-Ausdrücken. Die projectQuery2 -Variable ist vom Typ IQueryable<ProjectOData.Project>. Die .NET Framework konvertiert Sie jedoch intern projectQuery1 , um die Syntax des projectQuery2der Methode zu verwenden.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Data.Services.Client;
    
    namespace TestProjectData
    {
        class Program
        {
            private const string PSDATA = "http://ServerName/ProjectServername/_api/ProjectData";
            
            static void Main(string[] args)
            {
                ProjectOData.ReportingData context = 
                    new ProjectOData.ReportingData(new Uri(PSDATA, UriKind.Absolute));
                context.Credentials = CredentialCache.DefaultCredentials;
    
                var projectQuery1 = from p in context.Projects
                                    where p.ProjectStartDate > new DateTime(2012, 1, 1)
                                    orderby p.ProjectName
                                    select p;
    
                Console.WriteLine("Using declarative LINQ query syntax:\n");
                foreach (ProjectOData.Project proj in projectQuery1)
                {
                    Console.WriteLine(proj.ProjectName + " :\tStart date: " + proj.ProjectStartDate.ToString());
                }
    
                var projectQuery2 = context.Projects
                                       .Where(p => (p.ProjectStartDate > new DateTime(2012, 1, 1)))
                                       .OrderBy(p => p.ProjectName)
                                       .Select(p => p);
    
                Console.WriteLine("\n\nUsing lambda expressions for a LINQ query:\n");
                foreach (ProjectOData.Project proj in projectQuery2)
                {
                    Console.WriteLine(proj.ProjectName + " :\tStart date: " + proj.ProjectStartDate.ToString());
                }
    
                Console.Write("\nPress any key to exit: ");
                Console.ReadKey(true);
            }
        }
    }
    
  4. Legen Sie einen Haltepunkt nach der Initialisierung der Variablen projectQuery1 , und führen Sie die Anwendung. Visual Studio konvertiert die Abfrage intern zunächst mit OData Methodensyntax mit Lambda-Ausdrücken und anschließend in einer Abfrage REST für OData-Dienst. Es folgt der REST-Abfrage für projectQuery1 (alles in einer Zeile):

    http://ServerName/ProjectServerName/_api/ProjectData/Projects()
        ?$filter=ProjectStartDate gt datetime'2012-01-01T00:00:00'
        &$orderby=ProjectName}
    

Wenn Sie die TestProjectData -Anwendung ausführen, zeigt die Konsole die folgende Ausgabe für drei Beispielprojekte, die im Project Web Appveröffentlicht werden:

Using declarative LINQ query syntax:

Imported from SharePoint :      Start date: 4/2/2012 8:00:00 AM
Test Proj 1 :   Start date: 4/5/2012 12:00:00 AM
WinProj test 1 :     Start date: 4/1/2012 8:00:00 AM

Using lambda expressions for a LINQ query:

Imported from SharePoint :      Start date: 4/2/2012 8:00:00 AM
Test Proj 1 :   Start date: 4/5/2012 12:00:00 AM
WinProj test 1 :     Start date: 4/1/2012 8:00:00 AM

Press any key to exit:

Da der Dienst ProjectData die $links Abfrage-Option oder die Abfrage $expand nicht implementiert, können nicht Sie einen Entitätstyp als untergeordnetes Element von einem anderen Entitätstyp direkt abfragen. Um die Aufgaben in einem Projekt zu erhalten, können nicht Sie z. B. die Entitätenmenge Projects in einem Ausdruck wie context.Projects(guid'263fc8d7-427c-e111-92fc-00155d3ba208').Tasksverwenden. Die Aufgaben erhalten in einem Projekt mithilfe der Entitätenmenge Tasks :

var taskQuery = context.Tasks
                        .Where(t => (t.ProjectId == 
                            new Guid("263fc8d7-427c-e111-92fc-00155d3ba208")))
                        .OrderBy(t => t.TaskIndex)
                        .Select(t => t);

Wenn Sie festlegen, einen Dienstverweis auf ProjectDataoder Abfrage ~/ProjectData/$metadata, das Entity Data Model (EDM oder OData Schema) umfasst Eigenschaften benutzerdefinierter Felder zum Zeitpunkt der Verweis erfolgt. Beispielsweise enthalten die benutzerdefinierten Felder in Project Web AppRBS benutzerdefinierte Textfeld für die Resource -Entität, die Health benutzerdefiniertes Feld für die Task -Entität und das benutzerdefinierte Project Departments -Feld für die Project -Entität. Da RBS und Health auf Zuordnungen rückgängig zu machen, enthält die Assignment Person die Health_T -Eigenschaft und die Eigenschaft RBS_R wie folgt:

<EntityType Name="Assignment">
  . . .
  <Property Name="Health_T" Type="Edm.String" />
  <Property Name="RBS_R" Type="Edm.String" />
  . . .
</EntityType>
<EntityType Name="Project">
    . . .
    <Property Name="ProjectDepartments" Type="Edm.String" />
    . . .
</EntityType>
<EntityType Name="Resource">
    . . .
    <Property Name="RBS" Type="Edm.String" />
    . . .
</EntityType>
<EntityType Name="Task">
    . . .
    <Property Name="Health" Type="Edm.String" />
    . . .
</EntityType>

Der Name des benutzerdefinierten Felds enthält ein oder mehrere Leerzeichen, wie z. B. Project Departments, lässt der Eigenschaftenname ProjectDepartments Räume. Wenn Sie ein benutzerdefiniertes Feld erstellen, wird die Eigenschaft für ein benutzerdefiniertes Feld der Entität vom Typ hinzugefügt. Erstellen Sie z. B. die benutzerdefinierten Felder in Tabelle 1 dargestellt.

Tabelle 1. Benutzerdefinierte Felder zu Testzwecken erstellen

Benutzerdefinierter Feldname

Entität

Type

Rollen für
Aufgaben

Testen der Proj-Text

Project

Text

-

Res Dur testen

Ressource

Dauer

Yes

Text der Test-Aufgabe

Vorgang

Text

Yes

Wenn Sie die Abfrage ~/ProjectData/$metadata aktualisieren, enthält das EDM jetzt Eigenschaften für den neuen benutzerdefinierten Feldern.

<EntityType Name="Assignment">
    . . .
    <Property Name="Health_T" Type="Edm.String" />
    <Property Name="RBS_R" Type="Edm.String" />
    <Property Name="TestResDur_R" Type="Edm.Decimal" />
    <Property Name="TestTaskText_T" Type="Edm.String" />
    . . .
</EntityType>
<EntityType Name="Project">
    . . .
    <Property Name="ProjectDepartments" Type="Edm.String" />
    <Property Name="TestProjText" Type="Edm.String" />
    . . .
</EntityType>
<EntityType Name="Resource">
    . . .
    <Property Name="RBS" Type="Edm.String" />
    <Property Name="TestResDur" Type="Edm.Decimal" />
    . . .
</EntityType>
<EntityType Name="Task">
    . . .
    <Property Name="Health" Type="Edm.String" />
    <Property Name="TestTaskText" Type="Edm.String" />
    . . .
</EntityType>
Wichtiger HinweisWichtig

Wenn Sie ein benutzerdefiniertes Enterprise-Feld erstellen, enthält einen Dienstverweis oder EDM, die zuvor aus einer Abfrage keine die neuen Eigenschaften benutzerdefinierter Felder. Sie müssen den Dienstverweis oder die ~/ProjectData/$metadata -Abfrage, erhalten die neuen Eigenschaften aktualisieren.

Öffnen Sie das Ressourcencenter in Project Web App, bearbeiten Sie eine Ressource und setzen Sie den Wert des benutzerdefinierten Feldes für den Test Res Dur auf 3d. Erstellen Sie eine Abfrage für den Wert des benutzerdefinierten Feldes (ersetzen Sie die ResourceId -Eigenschaft mit der GUID für die Ressource), zum Beispiel: ~/ProjectData/Resources(guid'4941e174-1596-e111-b0b9-00155d144b20')/TestResDur. Das XML-Ergebnis zeigt die Dauer Arbeitszeit, wie folgt:

<d:TestResDur xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
    xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
    m:type="Edm.Decimal">24</d:TestResDur>
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft