Beperkingen van Web-API van Microsoft Dynamics 365
Gepubliceerd: januari 2017
Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
De web-API van Microsoft Dynamics 365 biedt volledige pariteit met de mogelijkheden van de organisatieservice. Voor Microsoft Dynamics 365 (online en on-premises) worden in dit onderwerp nog enkele beperkingen besproken.
In dit onderwerp
Mogelijkheden in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016
Beperkingen die zijn opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016
Beperkingen die zijn opgelost in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1
Beperkingen die zijn opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016
Mogelijkheden in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016
Deze sectie bevat informatie over de beperkingen in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
Bepaalde aangepaste acties niet beschikbaar in de web-API
Ontbrekende functies en acties voor bepaalde organisatieserviceberichten
Bepaalde aangepaste acties niet beschikbaar in de web-API
Als u een aangepaste bewerking definieert die een complexe retourwaarde en eenvoudige retourwaarde bevat, is een overeenkomende actie niet beschikbaar in de web-API maar wel met het 2011 SOAP-eindpunt. Een complexe retourwaarde is een EntityReference, Entity of EntityCollection. U kunt elke combinatie van eenvoudige retourneerwaarden hebben, of een enkele complexe retourwaarde.Meer informatie:Uw eigen acties maken
Ontbrekende functies en acties voor bepaalde organisatieserviceberichten
In de volgende tabel vindt u een overzicht van de berichten die geen overeenkomende functie of acties hebben nadat Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016 zijn toegepast.
Voor een lijst van functies en acties die ontbreken in de oorspronkelijke release, combineert u deze lijst met de lijst onder Functies en acties toegevoegd in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016 en Functies en acties toegevoegd in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1.
Beperkingen die zijn opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016
Deze sectie bevat informatie over de beperkingen die zijn opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
Web-API niet ingeschakeld voor Microsoft Dynamics 365 voor Outlook met offlinetoegang als de gebruiker offline is
Kan geen query uitvoeren op datumwaarden
Wanneer u acties met parameters van entiteitsverzamelingen en andere parameters aanroept, moet een verzamelingparameter als laatste parameter in de hoofdtekst worden doorgegeven
Kan geen klantopzoekkenmerk maken
Kan geen niet-gepubliceerde metagegevens ophalen
Nieuwe bewerkingen toegevoegd
De volgende bewerkingen zijn toegevoegd aan de web-API voor Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
Web-API niet ingeschakeld voor Microsoft Dynamics 365 voor Outlook met offlinetoegang als de gebruiker offline is
Notitie
Dit probleem is opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
JavaScript-code die wordt uitgevoerd in formulierscripts, lintopdrachten of HTML-webresourcen kan de web-API niet gebruiken. Deze is nu ingeschakeld op de lokale server die wordt gebruikt wanneer de gebruiker de verbinding verbreekt.
Kan geen query uitvoeren op datumwaarden
Dit probleem was eigenlijk geen beperking, maar een syntaxisprobleem. Gebruik geen enkele aanhalingstekens wanneer u een datum opgeeft als waarde voor een filter.
Wanneer u een query uitvoert op een datumeigenschap zoals de geboortedatum van een contactpersoon, zal de volgende querysyntaxis werken:
/contacts?$select=fullname,birthdate&$filter=birthdate eq 1990-01-01
De volgende syntaxis werkt niet:
/contacts?$select=fullname,birthdate&$filter=birthdate eq '1990-01-01'
Wanneer u acties met parameters van entiteitsverzamelingen en andere parameters aanroept, moet een verzamelingparameter als laatste parameter in de hoofdtekst worden doorgegeven
Notitie
Dit probleem is opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
De volgende acties bevatten een entiteitsverzamelingparameter naast de overige parameters.
Als u in versies vóór Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016 deze acties gebruikt, moet de parameter met de entiteitsverzameling worden doorgegeven als laatste parameter in de JSON; als dit niet gebeurt, wordt een fout geretourneerd. U krijgt bijvoorbeeld een fout als u de QualifyMemberList Action gebruikt en de parameterwaarden op de volgende manier doorgeeft.
{
"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
}
Maar het volgende voorbeeld zou moeten slagen.
{
"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 geen klantopzoekkenmerk maken
Notitie
Dit probleem is opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
Het maken van klantopzoekkenmerken door middel van de web-API wordt niet ondersteund in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1.
Uitleg over het maken van een klantopzoekkenmerk met de web-API in Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016 en Update voor Microsoft Dynamics 365 (online) - december 2016 vindt u in Een klantopzoekkenmerk maken.
Kan geen niet-gepubliceerde metagegevens ophalen
Notitie
Dit probleem is opgelost in Update voor Microsoft Dynamics 365 (online) - december 2016 en Service Pack voor Microsoft Dynamics 365 (on-premises) - december 2016.
De organisatieserviceberichten die metagegevens ophalen, bevatten een parameter RetrieveAsIfPublished die de mogelijkheid biedt om metagegevensdefinities te retourneren die nog niet door publicatie zijn vastgelegd. Deze mogelijkheid is nuttig wanneer u een toepassing samenstelt die u wilt gebruiken om metagegevens te bewerken en u de mogelijkheid nodig hebt om niet-doorgevoerde wijzigingen op te slaan. In Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1 retourneren alle ophaalbewerkingen voor metagegevens alleen de gepubliceerde metagegevens.Meer informatie:De web-API gebruiken met Dynamics 365-metagegevens en Aanpassingen publiceren.
Beperkingen die zijn opgelost in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1
Aan Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1 zijn functies en acties toegevoegd; de volgende problemen met de web-API zijn opgelost:
Functies en acties toegevoegd in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1
Query's kunnen niet worden gefilterd op de waarde van een single-valued navigatie-eigenschap
Functies en acties toegevoegd in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1
In de volgende tabel vindt u een overzicht van de functies en de acties zijn toegevoegd voor Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1.
Query's kunnen niet worden gefilterd op de waarde van een single-valued navigatie-eigenschap
Notitie
Dit probleem wordt gedeeltelijk opgelost in Update 1 voor Microsoft Dynamics CRM Online 2016 en Microsoft Dynamics CRM 2016 Service Pack 1. U kunt nu query's filteren op de single-valued navigatie-eigenschap, als de navigatie-eigenschap correct verwijst naar de primaire kenmerkwaarde van de entiteit waarnaar wordt verwezen.Meer informatie:Records filteren op basis van navigatie-eigenschappen met één waarde
Als u de eigenschap van een single-valued navigatie-eigenschap gebruikt als filter in een query, wordt fout 501 weergegeven. In de onderstaande query wordt bijvoorbeeld geprobeerd om alle accounts te retourneren waarin de eigenschapwaarde firstname van de gerelateerde primaire contactpersoon "Renee" is.
Aanvraag
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
Respons
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> } } }
Beperkingen die zijn opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016
Aan Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM Online 2016 zijn functies en acties toegevoegd; de volgende problemen met de web-API zijn opgelost.
Functies en acties toegevoegd in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016
Fout treedt op tijdens het uitvoeren van een query op zelfreferentiële veel-op-veel-relaties
$select wordt mogelijk soms genegeerd op $expand-expressies
Single-valued navigatie-eigenschappen worden mogelijk niet geretourneerd uit een $expand-query als ze een null-waarde hebben
FetchXML-query's die zijn gekoppeld aan activitypointer bevatten mogelijk geen gekoppelde velden
Null-valued eigenschappen worden mogelijk niet geretourneerd in de resultaten van uitgevouwen navigatie-eigenschappen
Functies en acties toegevoegd in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016
In de volgende tabel vindt u een overzicht van de functies en de acties zijn toegevoegd voor Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016.
Fout treedt op tijdens het uitvoeren van een query op zelfreferentiële veel-op-veel-relaties
Notitie
Dit probleem is opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016.
Er zijn twee systeementiteiten met zelfreferentiële veel-op-veel-relaties: connectionrole EntityType heeft connectionroleassociation_association en campaign EntityType heeft campaigncampaign_association. Als u een query wilt uitvoeren die gebruik maakt van deze collection-valued navigatie-eigenschappen, kunt u de volgende HTTP Status 400-fout verwachten: Reflexive relationship must specify direction using ReflexiveManyToManyRelationship.
Als u een query moet uitvoeren op gegevens met deze veel-op-veel-relaties, kunt u in plaats daarvan doorsnedenentiteiten gebruiken. Voor de collection-valued navigatie-eigenschap campaigncampaign_association is de entiteit campaignitem EntityType de speciale doorsnedenentiteit die de relaties definieert. Voor connectionroleassociation_association is connectionroleassociation de gebruikelijke doorsnedenentiteit die de gegevens bevat die deze veel-op-veel-relatie definiëren. Gebruikelijke doorsnedenentiteiten zijn niet opgenomen in de documentatie maar wel beschikbaar in de web-API. U krijgt toegang tot de entiteit connectionroleassociation met deze URI: /api/data/v8.0/connectionroleassociations.Meer informatie:Collection-valued navigatie-eigenschappen
$select wordt mogelijk soms genegeerd op $expand-expressies
Notitie
Dit probleem is opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016.
Bij het ophalen van twee navigatie-eigenschappen, als de laatste navigatie-eigenschap niet de query-optie $select heeft, worden alle eigenschappen van eerste navigatie-eigenschap geretourneerd. Als u bijvoorbeeld de volgende query samenstelt:
GET
[Organization URI]/api/data/v8.0/accounts(0495779B-F67F-E511-80C2-00155DB09B03)$select=name&$expand=contact_customer_accounts($select=lastname),opportunity_customer_accounts
U verwacht de eigenschap name van de account, de lastname van de contactpersonen die gekoppeld zijn met contact_customer_accounts en alle eigenschappen voor verkoopkansen die zijn gekoppeld met opportunity_customer_accounts.
U kunt echter alle eigenschappen voor de contactpersonen ophalen, evenals alle eigenschappen van gerelateerde verkoopkansen. Het verdient aanbeveling om altijd $select te gebruiken om de eigenschappen te beperken in ophaalbewerkingen; het aanhouden van deze best practice garandeert de beste prestaties en zorgt ervoor dat u niet meer gegevens ophaalt dan u nodig hebt.
Single-valued navigatie-eigenschappen worden mogelijk niet geretourneerd uit een $expand-query als ze een null-waarde hebben
Notitie
Dit probleem is opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016.
Als u een enkele navigatie-eigenschap uitvouwt en deze geen waarde bevat, moet volgens de OData-specificaties de eigenschap zijn opgenomen met null ingesteld. Het huidige gedrag is dat de eigenschap niet in het JSON-respons wordt opgenomen. In het volgende voorbeeld wordt de single-valued navigatie-eigenschap primarycontactid van account opgevraagd, maar aangezien er geen contactpersoon is gekoppeld met die navigatie-eigenschap, is de waarde null.
Aanvraag
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
Verwachte respons
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 }
Werkelijke respons
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-query's die zijn gekoppeld aan activitypointer bevatten mogelijk geen gekoppelde velden
Notitie
Dit probleem is opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016.
Wanneer u een query samenstelt met gebruik van FetchXML waarin activitypointer is opgenomen als gekoppelde entiteit, zijn de eigenschapswaarden null. Als u bijvoorbeeld de volgende fetchXML gebruikt:
<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>
U vraagt de gerelateerde activitypointer op. Te retourneren subject-waarde. Deze wordt geretourneerd met een null-waarde wanneer een werkelijke waarde bestaat.
Aanvraag
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
Verwachte respons
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" } ] }
Werkelijke respons
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 } ] }
Meer informatie:Aangepaste FetchXML gebruiken
Null-valued eigenschappen worden mogelijk niet geretourneerd in de resultaten van uitgevouwen navigatie-eigenschappen
Notitie
Dit probleem is opgelost in Update 0.1 voor Microsoft Dynamics CRM Online 2016 en Update 0.1 voor Microsoft Dynamics CRM 2016.
Wanneer een van de uitgevouwen eigenschappen in een collection-valued navigatie-eigenschap null is, wordt de uitgevouwen eigenschap niet opgenomen in de zoekresultaten. In het eerste voorbeeld ziet u de gegevens, wanneer een van de aan een account gerelateerde contactpersonen een null-waarde heeft voor de uitgevouwen eigenschap emailaddress1. De eigenschap emailaddress1 wordt zelfs niet geretourneerd voor de contactpersoon die er wel een waarde voor heeft.
Aanvraag
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
Verwachte respons
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" } ] }
Werkelijke respons
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" } ] }
De volgende query die rechtstreeks de collection-valued navigatie-eigenschap contact_customer_accounts gebruikt zonder uitvouwen, retourneert wel de verwachte gegevens.
Aanvraag
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
Respons
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" } ] }
Zie ook
De web-API van Microsoft Dynamics 365 gebruiken
Verifiëren voor Microsoft Dynamics 365 met de web-API
Typen web-API's en bewerkingen met web-API's
Bewerkingen uitvoeren met de web-API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht