Microsoft Dynamics 365 Web API-begrænsninger
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Microsoft Dynamics 365-web-API'et giver fuld paritet med funktionerne i organisationstjenesten. For Microsoft Dynamics 365 (online og i det lokale miljø) beskriver dette emne nogle af begrænsningerne.
Dette emne indeholder
Begrænsninger i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø)
Begrænsninger, der håndteres i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø)
Begrænsninger, der håndteres i Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1
Begrænsninger, der håndteres i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016
Begrænsninger i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø)
Dette afsnit indeholder oplysninger om begrænsningerne i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
Nogle brugerdefinerede handlinger er ikke tilgængelige i Web-API
Manglende funktioner og handlinger for visse organisationstjenestemeddelelser
Nogle brugerdefinerede handlinger er ikke tilgængelige i Web-API
Hvis du definerer en brugerdefineret handling, som omfatter en kompleks returværdi og en simpel returværdi, er en tilsvarende handling ikke tilgængelig i Web-API'en, men den er tilgængelig ved hjælp af 2011 SOAP-slutpunktet. En kompleks returværdi er en EntityReference, Entity eller EntityCollection. Du kan have en vilkårlig kombination af simple returværdier eller en enkelt kompleks returværdi.Flere oplysninger:Oprette dine egne handlinger
Manglende funktioner og handlinger for visse organisationstjenestemeddelelser
I følgende tabel vises de meddelelser, der ikke har en tilsvarende funktion eller handling, når December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø) er anvendt.
For at få en liste over funktioner og handlinger, der mangler fra den første udgave, skal du kombinere denne liste med listen under Funktioner og handlinger, der er tilføjet i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 ogOpdatering 0.1 til Microsoft Dynamics CRM 2016 og Funktioner og handlinger, der er tilføjet i Opdatering 1 til Microsoft Dynamics CRM Online 2016 ogMicrosoft Dynamics CRM 2016 Service Pack 1.
Begrænsninger, der håndteres i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø)
Dette afsnit indeholder oplysninger om de begrænsninger, der er afhjulpet i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
Web-API er ikke aktiveret for Microsoft Dynamics 365 til Outlook med offlineadgang, mens brugeren er offline
Det er ikke muligt at forespørge om datoværdier
Når du kalder handlinger med objektsamlingsparametre samt andre parametre, skal en samlingsparameter overføres som den sidste parameter i hoveddelen
Kan ikke oprette en opslagsattribut for en kunde
Kan ikke hente ikke-udgivne metadata
Nye tilføjede handlinger
Følgende handlinger er blevet tilføjet i Web-API'en til December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
Web-API er ikke aktiveret for Microsoft Dynamics 365 til Outlook med offlineadgang, mens brugeren er offline
Bemærk
Dette problem er løst i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
JavaScript-kode, der kører i formularscripts, kommandoer på båndet eller HTML-webressourcer, kan ikke bruge web-API'et. Den aktiveres nu på den lokale server, der bruges, når brugeren går offline.
Det er ikke muligt at forespørge om datoværdier
Problemet var faktisk ikke begrænsning, bare et problem med syntaks. Brug ikke enkelte anførselstegn ('), når du angiver en dato som værdi for et filter.
Ved forespørgsel på en datoegenskab, f.eks. en kontakts fødselsdato, kan følgende forespørgselssyntaks bruges.
/contacts?$select=fullname,birthdate&$filter=birthdate eq 1990-01-01
Følgende syntaks fungerer ikke:
/contacts?$select=fullname,birthdate&$filter=birthdate eq '1990-01-01'
Når du kalder handlinger med objektsamlingsparametre samt andre parametre, skal en samlingsparameter overføres som den sidste parameter i hoveddelen
Bemærk
Dette problem er løst i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
Følgende handlinger indeholder ud over andre parametre en objektsamlingsparameter.
Når du bruger disse handlinger i versioner før December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø), skal den parameter, der omfatter objektsamlingen, overføres som den sidste parameter i JSON, ellers returnerer systemet en fejl. Du kan f.eks. få en fejl, når du bruger QualifyMemberList Action og overfører parameterværdierne på følgende måde.
{
"ListMember": [
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "483F8080-6976-E511-9172-0024E8436263"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "4D3F8080-6976-E511-9172-0024E8436263"
}
],
"OverrideorRemove": true
}
Men følgende skal lykkes.
{
"OverrideorRemove": true,
"ListMember": [
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "483F8080-6976-E511-9172-0024E8436263"
},
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "4D3F8080-6976-E511-9172-0024E8436263"
}
]
}
Kan ikke oprette en opslagsattribut for en kunde
Bemærk
Dette problem er løst i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
Oprettelse af debitor opslagsattribut ved hjælp af Web-API'en understøttes ikke i Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1.
Du kan se, hvordan du opretter en debitoropslagsattribut i Web API'en ved hjælp af December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø), under Opret en opslagsattribut for en kunde.
Kan ikke hente ikke-udgivne metadata
Bemærk
Dette problem er løst i December 2016 – opdatering til Microsoft Dynamics 365 (online) og December 2016 – Service Pack til Microsoft Dynamics 365 (det lokale miljø).
De organisationstjenestemeddelelser, der henter metadata, indeholder en RetrieveAsIfPublished-parameter, der giver mulighed for at returnere metadatadefinitioner, der endnu ikke er bekræftet ved udgivelse. Denne funktion er nyttig, når du bygger et program, du vil bruge til at redigere metadata, og har brug for at tillade, at ændringer, der ikke er bekræftet, kan gemmes. I Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1 returnerer alle hentningshandlinger på metadata kun de publicerede metadata.Flere oplysninger:Bruge Web API med Dynamics 365-metadata og Publicere tilpasninger.
Begrænsninger, der håndteres i Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1
Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1 har tilføjede funktioner og handlinger og har håndteret følgende problemer med web-API'en:
Funktioner og handlinger, der er tilføjet i Opdatering 1 til Microsoft Dynamics CRM Online 2016 ogMicrosoft Dynamics CRM 2016 Service Pack 1
Kan ikke filtrere forespørgsler baseret på værdien af navigationsegenskab med enkeltværdi
Funktioner og handlinger, der er tilføjet i Opdatering 1 til Microsoft Dynamics CRM Online 2016 ogMicrosoft Dynamics CRM 2016 Service Pack 1
Følgende tabel viser de funktioner og handlinger, der er føjet til Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1.
Kan ikke filtrere forespørgsler baseret på værdien af navigationsegenskab med enkeltværdi
Bemærk
Dette problem er delvist løst i Opdatering 1 til Microsoft Dynamics CRM Online 2016 og Microsoft Dynamics CRM 2016 Service Pack 1. Du kan nu filtrere forespørgsler på navigationsegenskaben med enkeltværdi, hvis navigationsegenskaben refererer til den primære attributværdi for det refererede objekt.Flere oplysninger:Filtrer poster, der er baseret på navigationsegenskaben enkeltværdi
Hvis du bruger egenskaben for en navigationsegenskab med enkeltværdi som et filter i en forespørgsel, får du vist fejlen 501. Følgende forespørgsel forsøger f.eks. at returnere alle konti, hvor den relaterede primære kontakts firstname-egenskabsværdi er "Renee".
Anmodning
GET [Organization URI]/api/data/v8.0/accounts?$select=name&$filter=primarycontactid/firstname eq 'Renee' HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 501 Not Implemented Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "error": { "code": "", "message": "The query node (0) is not supported", "innererror": { "message": "The query node (0) is not supported", "type": "Microsoft.Crm.CrmHttpException", "stacktrace": <stacktrace value removed for brevity> } } }
Begrænsninger, der håndteres i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016
Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 har tilføjede funktioner og handlinger og har håndteret følgende problemer med web-API'et.
Funktioner og handlinger, der er tilføjet i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 ogOpdatering 0.1 til Microsoft Dynamics CRM 2016
Fejl ved forespørgsel af selvrefererende mange-til-mange-relationer
$select kan på visse $expand-udtryk ignoreres
Navigationsegenskaber med returneres muligvis ikke fra en $expand-forespørgsel, hvis de har en null-værdi
FetchXML-forespørgsler, der er knyttet til activitypointer, indeholder muligvis ikke sammenkædede felter
Egenskaber med null-værdier kan ikke returneres i resultater for udvidede navigationsegenskaber
Funktioner og handlinger, der er tilføjet i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 ogOpdatering 0.1 til Microsoft Dynamics CRM 2016
Følgende tabel viser de funktioner og handlinger, der er føjet til Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016.
Fejl ved forespørgsel af selvrefererende mange-til-mange-relationer
Bemærk
Dette problem er løst i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016.
Der er to systemobjekter med mange-til-mange-relationer, der refererer til sig selv: connectionrole EntityType har connectionroleassociation_association og campaign EntityType har campaigncampaign_association. Hvis du forsøger en forespørgsel, der bruger disse navigationsegenskaber med grupprværdier, forventes følgende HTTP Status 400-fejl: Reflexive relationship must specify direction using ReflexiveManyToManyRelationship.
Hvis du er nødt til at forespørge data ved hjælp af disse mange-til-mange-relationer, kan du i stedet bruge overlappende objekter. Når gælder campaigncampaign_association-nvaigationsegenskaben med gruppeværdi, er campaignitem EntityType-objektet det særlige overlappende objekt, der definerer relationerne. Når det gælder connectionroleassociation_association, er connectionroleassociation det almindelige overlappende objekt, der indeholder de data, der definerer denne mange-til-mange-relation. Almindelige overlappende objekter medtages ikke i referencedokumentationen, men er tilgængelige i web-API'et. Du kan få adgang til connectionroleassociation-objektet ved hjælp af denne URI: /api/data/v8.0/connectionroleassociations.Flere oplysninger:Navigationsegenskaber med gruppeværdi
$select kan på visse $expand-udtryk ignoreres
Bemærk
Dette problem er løst i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016.
Når du henter to navigationsegenskaber, returneres alle egenskaber for første navigationsegenskab, hvis den sidste navigationsegenskab ikke har $select. Hvis du f.eks. konstruerer følgende forespørgsel:
GET
[Organization URI]/api/data/v8.0/accounts(0495779B-F67F-E511-80C2-00155DB09B03)$select=name&$expand=contact_customer_accounts($select=lastname),opportunity_customer_accounts
Du forventer name-egenskaben for kontoen, lastname for de kontakter, der er tilknyttet ved hjælp af contact_customer_accounts, og alle egenskaberne for salgsmuligheder, der er tilknyttet ved hjælp af opportunity_customer_accounts.
Du får imidlertid alle egenskaberne for kontakterne samt alle egenskaberne for relaterede salgsmuligheder. Det er bedste fremgangsmåde altid at bruge $select til at begrænse egenskaberne i hentningshandlinger, så følgende bedste fremgangsmåde sikrer, at du får den bedste ydeevne og ikke henter flere data, end du har brug for.
Navigationsegenskaber med returneres muligvis ikke fra en $expand-forespørgsel, hvis de har en null-værdi
Bemærk
Dette problem er løst i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016.
I henhold til OData-specifikationen skal egenskaben medtages med et null-sæt, når du udvider en enkelt navigationsegenskab, og den ikke indeholder en værdi. Den aktuelle adfærd er, at egenskaben ikke er medtaget i JSON-svaret. I følgende eksempel anmodes der om navigationsegenskaben med enkeltværdi primarycontactid for kontoen, men fordi der ikke er knyttet en kontakt til den navigationsegenskabe, er værdien null.
Anmodning
GET [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)?$select=name&$expand=primarycontactid($select=fullname) HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0
Forventet svar
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4", "primarycontactid": null }
Faktisk svar
HTTP/1.1 200 OK OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,primarycontactid,primarycontactid(fullname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4" }
FetchXML-forespørgsler, der er knyttet til activitypointer, indeholder muligvis ikke sammenkædede felter
Bemærk
Dette problem er løst i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016.
Når du opretter en forespørgsel ved hjælp FetchXML, som omfatter activitypointer som et sammenkædet objekt, er egenskabsværdierne null. Hvis du f.eks. bruger følgende fetchXML:
<fetch version="1.0"
output-format="xml-platform"
mapping="logical"
distinct="true">
<entity name="account">
<attribute name="name" />
<link-entity name="activitypointer"
from="regardingobjectid"
to="accountid"
link-type="inner">
<attribute name="subject" />
</link-entity>
</entity>
</fetch>
Du anmoder om den relaterede activitypointer.subject-værdi, der skal returneres. Den returneres med en null-værdi, når der findes en faktisk værdi.
Anmodning
GET [Organization URI]/api/data/v8.0/accounts?fetchXml=%3Cfetch%20version=%221.0%22%20output-format=%22xml-platform%22%20mapping=%22logical%22%20distinct=%22true%22%3E%3Centity%20name=%22account%22%3E%3Cattribute%20name=%22name%22%20/%3E%3Clink-entity%20name=%22activitypointer%22%20from=%22regardingobjectid%22%20to=%22accountid%22%20link-type=%22inner%22%3E%3Cattribute%20name=%22subject%22%20/%3E%3C/link-entity%3E%3C/entity%3E%3C/fetch%3E HTTP/1.1 Accept: application/json OData-MaxVersion: 4.0 OData-Version: 4.0
Forventet svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name)", "value": [ { "name": "A. Datum Corporation (sample)", "activitypointer1.subject": "Task Subject Value" } ] }
Faktisk svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name)", "value": [ { "name": "A. Datum Corporation (sample)", "activitypointer1.subject": null } ] }
Flere oplysninger:Brug brugerdefineret FetchXML
Egenskaber med null-værdier kan ikke returneres i resultater for udvidede navigationsegenskaber
Bemærk
Dette problem er løst i Opdatering 0.1 til Microsoft Dynamics CRM Online 2016 og Opdatering 0.1 til Microsoft Dynamics CRM 2016.
Når en af de udvidede egenskaber i en navigationsegenskab med gruppeværdi er null, medtages den udvidede egenskab ikke i resultaterne. Det første eksempel viser dataene, når en af de kontakter, der er knyttet til et firma, har en null-værdi for den udvidede emailaddress1-egenskab.emailaddress1-egenskaben returneres ikke, og det gælder også for den kontaktperson, som har en værdi.
Anmodning
GET [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)?$select=name&$expand=contact_customer_accounts($select=emailaddress1,lastname,firstname) HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0
Forventet svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,contact_customer_accounts,contact_customer_accounts(emailaddress1,lastname,firstname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4", "contact_customer_accounts": [ { "@odata.etag": "W/\"504749\"", "emailaddress1": null, "lastname": "Valdes (sample)", "firstname": "Rene", "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4" }, { "@odata.etag": "W/\"503647\"", "emailaddress1": someone_l@example.com, "lastname": "Burk (sample)", "firstname": "Susan", "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4" } ] }
Faktisk svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#accounts(name,contact_customer_accounts,contact_customer_accounts(emailaddress1,lastname,firstname))/$entity", "@odata.etag": "W/\"504724\"", "name": "A. Datum Corporation (sample)", "accountid": "25dd0b31-ed8b-e511-80d2-00155d2a68d4", "contact_customer_accounts": [ { "@odata.etag": "W/\"504749\"", "lastname": "Valdes (sample)", "firstname": "Rene", "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4" }, { "@odata.etag": "W/\"503647\"", "lastname": "Burk (sample)", "firstname": "Susan", "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4" } ] }
Følgende forespørgsel, der direkte bruger contact_customer_accounts-navigationsegenskaben med gruppeværdi uden udvidelse, returnerer de forventede data.
Anmodning
GET [Organization URI]/api/data/v8.0/accounts(25DD0B31-ED8B-E511-80D2-00155D2A68D4)/contact_customer_accounts?$select=emailaddress1,lastname,firstname HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0
Svar
HTTP/1.1 200 OK Content-Type: application/json; odata.metadata=minimal OData-Version: 4.0 { "@odata.context": " [Organization URI]/api/data/v8.0/$metadata#contacts(emailaddress1,lastname,firstname)", "value": [ { "@odata.etag": "W/\"504749\"", "emailaddress1": null, "lastname": "Valdes (sample)", "firstname": "Rene", "contactid": "8bdd0b31-ed8b-e511-80d2-00155d2a68d4" }, { "@odata.etag": "W/\"503647\"", "emailaddress1": "someone_l@example.com", "lastname": "Burk (sample)", "firstname": "Susan", "contactid": "91dd0b31-ed8b-e511-80d2-00155d2a68d4" } ] }
Se også
Brug Microsoft Dynamics 365 Web API
Godkende Microsoft Dynamics 365 med Web-API'en
Web-API-typer og -handlinger
Udføre operationer ved hjælp af web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret