Queryopties van het OData-systeem die het OData-eindpunt gebruiken
Gepubliceerd: november 2016
Is van toepassing op: Dynamics CRM 2015
U kunt de resultaten van de query verfijnen door opties voor systeemquery te gebruiken. De onderstaande tabel toont de querytekenreeksopties gedefinieerd in het ODATA-protocol die worden geïmplementeerd in het OData eindpunt voor Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update.
Optie |
Beschrijving |
---|---|
$expand |
Stuurt aan dat verwante records moet worden opgehaald in de record of verzameling die wordt opgehaald. |
$filter |
Specificeert een expressie of functie die moet evalueren naar waar zodat een record wordt opgeleverd in de collectie. |
$orderby |
Bepaalt welke waarden worden gebruikt om een verzameling records te ordenen. |
$select |
Specificeert een subset met eigenschappen om op te leveren. |
$skip |
Stelt het aantal records in om over te slaan voordat het records in een verzameling ophaalt. |
$top |
Bepaalt het maximumaantal op te leveren records. |
$expand
Stuurt aan dat verwante records moet worden opgehaald in de record of verzameling die wordt opgehaald.
Als u verwante records wilt ophalen, zoek dan de naam van de entiteitsrelatie die de relatie vaststelt. U kunt de entiteitsrelatieinformatie in de toepassing bekijken om de relatie of de taal van de conceptuele schemadefinitie (CSDL) voor organisatiegegevensservice correct te identificeren.
Bijvoorbeeld, om verkoopkansrecords op te halen die zijn gerelateerd aan accounts, gebruikt u de entiteitsrelatie opportunity_customer_accounts. De query /AccountSet?$expand=opportunity_customer_accounts levert de verkoopkansrecords en de accountrecords op.
Als u de opgeleverde kolommen beperkt, moet u de naam van de navigatie-eigenschap ook opnemen in de query. Bijvoorbeeld, de query /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts levert alleen de accountnaam en de uitgevouwen verkoopkansrecords op.
Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update ondersteunt het zoeken naar een relatie-eigenschap op meerdere niveaus niet. Bijvoorbeeld, deze query, om informatie over de bezittende gebruiker van verkoopkansen gekoppeld aan accounts op te halen, werkt niet: /AccountSet?$expand=opportunity_customer_accounts/opportunity_owning_user.
Standaard kunt u tot zes uit te vouwen relaties definiëren. Deze query, die zowel de verkoopkansen als systeemgebruiker die eigenaar is van het account uitvouwt, zal werken, /AccountSet?$select=Name,opportunity_customer_accounts,user_accounts&$expand=opportunity_customer_accounts,user_accounts.
Notitie
Het aantal gevonden gerelateerde records is onderhevig aan dezelfde beperking op het aantal gevonden records. Zie Beperkingen op aantal geretourneerde records voor meer informatie. U kunt het aantal uit te vouwen relaties vergroten door de instellingswaarde ServerSettingsMaxExpandCount te wijzigen.
Meer informatie:OData: systeemqueryoptie voor filter ($expand)
$filter
Specificeert een expressie of functie die moet evalueren naar true zodat een record wordt opgeleverd in de collectie.
Als u extra gegevenssets ophaalt met de koppeling next, moet u de waarde van de queryoptie $filter niet wijzigen, omdat dit onvoorspelbare resultaten veroorzaakt.
De OData-specificatie voor de systeemqueryoptie voor het filter beschrijft de operators die worden gebruikt om een expressie te maken en het filter te evalueren.Microsoft Dynamics 365 gebruikt alle logische operators en een subset van de beschikbare functies, maar ondersteunt niet het gebruik van de rekenkundige operators. Filters kunnen de gegroepeerde voorwaarden aangegeven door haakjes gebruiken. Vergelijkingen van tijdwaarden moeten de volgende notatie gebruiken: datetime’<time value>’, bijvoorbeeld datetime'2010-07-15' of datetime'2010-07-15T16:19:54Z'.
De volgende tabel vermeldt de operatoren ondersteund door Microsoft Dynamics 365.
Operator |
Beschrijving |
Voorbeeld |
---|---|---|
eq |
Gelijk |
/AccountSet?$filter=Address1_City eq 'Redmond' |
ne |
Niet gelijk |
/AccountSet?$filter=Address1_City ne null |
gt |
Groter dan |
/AccountSet?$filter=CreditLimit/Value gt 1000 |
ge |
Groter dan of gelijk |
/AccountSet?&$filter=CreditLimit/Value ge 1000 |
Lt |
Minder dan |
/AccountSet?$filter=CreditLimit/Value lt 1000 |
le |
Kleiner dan of gelijk |
/AccountSet?$filter=CreditLimit/Value le 1000 |
and |
Logisch en |
/AccountSet?$filter=CreditLimit/Value ge 1000 and Address1_StateOrProvince eq 'TX' |
or |
Logisch of |
/AccountSet?$filter=AccountCategoryCode/Value eq 2 or AccountRatingCode/Value eq 1 |
not |
Logische negatie |
/AccountSet?$filter=(AccountCategoryCode/Value ne null) and not (AccountCategoryCode/Value eq 1) |
U kunt de $filter queryoptie gebruiken om de waarde van een kenmerk EntityReference te filteren. Bijvoorbeeld, als u de waarde Id voor een SystemUser record hebt, kunt u een lijst met alle accountrecords waarin de gebruiker is toegewezen ophalen door de volgende filter te gebruiken:
/AccountSet?$filter=OwnerId/Id eq (guid'" + SystemUserId + "')
De volgende tabel vermeldt de functies ondersteund door Microsoft Dynamics 365.
Functie |
Voorbeeld |
---|---|
startswith |
/AccountSet?$filter=startswith(Name, 'a') |
substringof |
/AccountSet?$filter=substringof('store',Name) |
endswith |
/AccountSet?$filter=endswith(Name, '(sample)') |
Meer informatie:OData: systeemqueryoptie voor filter ($expand)
$orderby
Bepaalt welke waarden worden gebruikt om een verzameling records te ordenen. De volgorde is standaard oplopend. Gebruik desc om de volgorde om te draaien of asc expliciet de standaard in te stellen.
Als u extra gegevenssets ophaalt met de koppeling next, moet u de waarde van de queryoptie $orderby niet wijzigen, omdat dit onvoorspelbare resultaten veroorzaakt.
Notitie
U kunt maximaal 12 kolommen selecteren met $orderby.
Als u ordent op complexe types, zoals EntityReference of OptionSetValue, hoeft u alleen de kenmerknaam op te geven. Bijvoorbeeld, om te sorteren op de eerste contactpersoon van een account, gebruikt u de query $orderby=PrimaryContactId. Het opgeven van $orderby=PrimaryContactId/Name geeft u een Aanvraagfout HTTP foutcode (HTTP foutcode 400).
Het volgende voorbeeld geeft accountrecords op land/regio in oplopende volgorde, en op plaats in aflopende volgorde:
/AccountSet?$select=Address1_Country,Address1_City,Name&$orderby=Address1_Country,Address1_City desc&$filter=(Address1_Country ne null) and (Address1_City ne null)
Meer informatie:OData: systeemqueryoptie voor filter ($orderby)
$select
Specificeert een subset met eigenschappen die geretourneerd moet worden en de volgorde waarin de kolommen met gegevens worden ingedeeld. De standaardinstelling is om alle kolommen te geven die aan $select=* beantwoorden.
Als u $expand gebruikt om gerelateerde gegevens op te nemen en u gebruikt $select om het aantal kolommen gevonden te beperken, moet u de naam van de navigatie-eigenschap ook opnemen in de query. Bijvoorbeeld, de volgende query, /AccountSet?$select=Name,opportunity_customer_accounts&$expand=opportunity_customer_accounts, levert alleen de accountnaam en de uitgevouwen verkoopkansrecords op.
Notitie
Er is een maximumpadlengte van 2048 tekens voor POST en GET aanvragen in Internet Explorer. U kunt deze limiet gemakkelijk bereiken als u elk kenmerk in de accountentiteit in de optie $select opneemt. Zie voor meer informatie Microsoft KB 208427
Meer informatie:OData: systeemqueryoptie voor filter ($select)
$skip
Stelt het aantal records in om over te slaan vóór het ophalen van records in een verzameling.
Als u extra gegevenssets ophaalt met de koppeling next, moet u de waarde van de queryoptie $skip niet wijzigen, omdat dit onvoorspelbare resultaten veroorzaakt.
Meer informatie:OData: systeemqueryoptie voor filter ($skip)
$top
Bepaalt een maximumaantal op te leveren records.
Als u extra gegevenssets ophaalt met de koppeling next, moet u de waarde van de queryoptie $top niet wijzigen, omdat dit onvoorspelbare resultaten zal veroorzaken.
Meer informatie:OData: systeemqueryoptie voor filter ($top)
De opties van de niet-ondersteunde systeemquery's
Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update ondersteunt het gebruik van de volgende systeemqueryopties niet:
$inlinecount
$count
$format
Zie ook
Query's op Microsoft Dynamics CRM 2015-gegevens uitvoeren met het OData-eindpunt
OData: URI-Conventies
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht