Freigeben über


Zählen von Zeilen mithilfe von OData

Verwenden Sie die $count=true Abfrageoption, um eine Anzahl von Entitäten einzuschließen, die den Filterkriterien entsprechen, bis zu 5.000 für Standardtabellen und 500 für elastische Tabellen.

Anforderung:

GET [Organization URI]/api/data/v9.2/accounts?$select=accountid&$count=true
Accept: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

Antwort:

HTTP/1.1 200 OK
OData-Version: 4.0

{
    "@odata.context": "[Organization URI]/api/data/v9.2/$metadata#accounts(accountid)",
    "@odata.count": 9,
    "value": [
        {
            "@odata.etag": "W/\"81359849\"",
            "accountid": "78914942-34cb-ed11-b596-0022481d68cd"
        },
        ... <Truncated for brevity>
    ]
}

Die Antwortanmerkung @odata.count enthält die Anzahl der Zeilen, bis zu 5.000 für Standardtabellen und 500 für elastische Tabellen, die den Filterkriterien entsprechen, unabhängig von der angeforderten Seitengröße.

Anmerkung

Verwenden Sie die RetrieveTotalRecordCount-Funktion, um eine Momentaufnahme innerhalb der letzten 24 Stunden der Gesamtzahl der Zeilen für eine Tabelle abzurufen, die über 5.000 für Standardtabellen und 500 für elastische Tabellen hinausgeht.

Wenn der Zählungswert dem Grenzwert für den von Ihnen verwendeten Tabellentyp entspricht und Sie wissen möchten, ob die Anzahl genau diese Zahl oder größer als diese Zahl ist, fügen Sie den Anforderungsheader "Prefer " hinzu, um die Einstellung "odata.include-annotations" für diese Anmerkungen zu senden:

  • Microsoft.Dynamics.CRM.totalrecordcount
  • Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded
Prefer: odata.include-annotations="Microsoft.Dynamics.CRM.totalrecordcount,Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded"

Dieser Header fügt dem Ergebnis die folgenden Anmerkungen hinzu:

  • @Microsoft.Dynamics.CRM.totalrecordcount
  • @Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded

Wenn Sie diesen Header mit der $count=true Abfrageoption verwenden und mehr als 5.000 Standarddatensätze vorhanden sind, werden die folgenden Werte zurückgegeben:

"@odata.count": 5000,
"@Microsoft.Dynamics.CRM.totalrecordcount": 5000,
"@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": true,

Wenn weniger als 5.000 Datensätze vorhanden sind, wird die tatsächliche Anzahl zurückgegeben.

"@odata.count": 58,
"@Microsoft.Dynamics.CRM.totalrecordcount": 58,
"@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": false,

Wenn Sie die $count=true-Abfrageoption nicht aufnehmen, ist der Gesamtwert @Microsoft.Dynamics.CRM.totalrecordcount-1.

Das folgende Beispiel zeigt, dass es 10 Konten gibt, die auf die $filter passen, aber nur die ersten drei Konten werden zurückgegeben:

Anforderung:

GET [Organization URI]/api/data/v9.2/accounts?$select=name?
&$filter=contains(name,'sample')
&$count=true  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
Prefer: odata.maxpagesize=3
Prefer: odata.include-annotations="Microsoft.Dynamics.CRM.*"

Antwort:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0  
Preference-Applied: odata.maxpagesize=3
Preference-Applied: odata.include-annotations="Microsoft.Dynamics.CRM.*"
  
{  
   "@odata.context":"[Organization URI]/api/data/v9.2/$metadata#accounts(name)",
   "@odata.count":10,
   "@Microsoft.Dynamics.CRM.totalrecordcount": 5000,
   "@Microsoft.Dynamics.CRM.totalrecordcountlimitexceeded": true,
   "value":[  
      {  
         "@odata.etag":"W/\"502482\"",
         "name":"Fourth Coffee (sample)",
         "accountid":"655eaf89-f083-e511-80d3-00155d2a68d3"
      },
      {  
         "@odata.etag":"W/\"502483\"",
         "name":"Litware, Inc. (sample)",
         "accountid":"675eaf89-f083-e511-80d3-00155d2a68d3"
      },
      {  
         "@odata.etag":"W/\"502484\"",
         "name":"Adventure Works (sample)",
         "accountid":"695eaf89-f083-e511-80d3-00155d2a68d3"
      }
   ],
   "@odata.nextLink":"[Organization URI]/api/data/v9.2/accounts?$select=name&$filter=contains(name,'sample')&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b695EAF89-F083-E511-80D3-00155D2A68D3%257d%2522%2520first%253d%2522%257b655EAF89-F083-E511-80D3-00155D2A68D3%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E"
}

Um nur eine Zahl zu erhalten, die die Anzahl einer Sammlung darstellt, hängen Sie /$count an, wie im folgenden Beispiel:

Anforderung:

GET [Organization URI]/api/data/v9.2/accounts/$count  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

Antwort:

HTTP/1.1 200 OK  
Content-Type: text/plain  
OData-Version: 4.0  
  
10  

Nächste Schritte,

Erfahren Sie, wie Sie die Leistung optimieren.