Limitazioni API Web di Microsoft Dynamics 365
Data di pubblicazione: gennaio 2017
Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
L'API Web di Microsoft Dynamics 365 fornirà parità completa con le funzionalità del servizio dell'organizzazione. Per Microsoft Dynamics 365 (online e locale), in questo argomento vengono descritte alcune limitazioni.
In questo argomento
Limitazioni in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale)
Limitazioni indirizzate in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale)
Limitazioni indirizzate in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Limitazioni indirizzate in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016
Limitazioni in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale)
Questa sezione contiene informazioni sulle limitazioni in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
Azioni personalizzate non disponibili in API Web
Funzionalità e azioni mancanti per alcuni messaggi di servizio dell'organizzazione
Azioni personalizzate non disponibili in API Web
Se definisci un'azione personalizzata che include un valore restituito complesso e un valore restituito semplice, un'azione corrispondente non è disponibile nell'API Web ma è disponibile tramite l'endpoint SOAP 2011. Un valore restituito complesso è un elemento EntityReferenceEntity o EntityCollection. Puoi avere qualsiasi combinazione di valori restituiti semplici o un solo valore restituito complesso.Ulteriori informazioni:Creare azioni personalizzate
Funzionalità e azioni mancanti per alcuni messaggi di servizio dell'organizzazione
Nella tabella seguente sono elencati i messaggi che non hanno una funzione corrispondente o un'azione dopo aver applicato Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
Per un elenco delle funzionalità e delle azioni mancanti dalla versione iniziale, combina questo elenco con l'elenco in Funzionalità e azioni aggiunte in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016 e Funzionalità e azioni aggiunte in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.
Limitazioni indirizzate in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale)
Questa sezione contiene informazioni sulle limitazioni indirizzate in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
API Web non attivato per Microsoft Dynamics 365 per Outlook con accesso offline quando l'utente è offline
Impossibile eseguire query sui valori della data
Quando si chiamano le azioni con i parametri di raccolta dell'entità e altri parametri, è necessario passare un parametro di raccolta come ultimo parametro nel corpo
Impossibile creare un attributo di tipo lookup cliente
Impossibile recuperare i metadati non pubblicati
Nuove operazioni aggiunte
Le operazioni seguenti sono aggiunte all'API Web per Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
API Web non attivato per Microsoft Dynamics 365 per Outlook con accesso offline quando l'utente è offline
Nota
Questo problema è indirizzato in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
Il codice JavaScript in esecuzione negli dei moduli, nei comandi della barra multifunzione o nelle risorse Web HTML non può utilizzare l'API Web. Ora è abilitato nel server locale utilizzato quando l'utente passa offline.
Impossibile eseguire query sui valori della data
Questo problema non era effettivamente un limite, ma solo un problema di sintassi. Non utilizzare le virgolette singole quando specifichi una data come valore per un filtro.
Quando si esegue una query di una proprietà dei dati, ad esempio la data di nascita di un contatto, la seguente sintassi di query funziona.
/contacts?$select=fullname,birthdate&$filter=birthdate eq 1990-01-01
La seguente sintassi non funziona:
/contacts?$select=fullname,birthdate&$filter=birthdate eq '1990-01-01'
Quando si chiamano le azioni con i parametri di raccolta dell'entità e altri parametri, è necessario passare un parametro di raccolta come ultimo parametro nel corpo
Nota
Questo problema è indirizzato in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
Le azioni seguenti contengono un parametro di raccolta dell'entità, oltra ad altri parametri.
Prima di Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale), quando utilizzi queste azioni, il parametro che include la raccolta di entità deve essere passato come ultimo parametro in JSON o il sistema restituisce un errore. Ad esempio, verrà visualizzato un errore quando utilizzi QualifyMemberList Action e passerai i valori del parametro nel modo seguente.
{
"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
}
Ma dovrebbe avvenire quanto segue.
{
"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"
}
]
}
Impossibile creare un attributo di tipo lookup cliente
Nota
Questo problema è indirizzato in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
La creazione dell'attributo di tipo lookup dei clienti dall'API Web non è supportato in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.
Per creare un attributo di tipo lookup del cliente mediante l'API Web in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale), vedi Creare un attributo di tipo lookup cliente.
Impossibile recuperare i metadati non pubblicati
Nota
Questo problema è indirizzato in Aggiornamento di dicembre 2016 per Microsoft Dynamics 365 (online) e Service Pack di dicembre 2016 per Microsoft Dynamics 365 (locale).
I messaggi del servizio di organizzazione che recuperano i metadati includono un parametro RetrieveAsIfPublished che offre la possibilità di restituire le definizioni di metadati che non sono state ancora eseguite per la pubblicazione. Questa funzionalità è utile quando crei un'applicazione che utilizzeresti per modificare i metadati e devi consentire il salvataggio delle modifiche non eseguite. Tutte le operazioni di recupero nei metadati restituiscono solo i metadati pubblicati in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.Ulteriori informazioni:Utilizzare l'API Web con i metadati di Dynamics 365 e Pubblicare personalizzazioni.
Limitazioni indirizzate in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1 hanno aggiunto le funzionalità e le azioni e hanno indirizzato i seguenti problemi con l'API WebI:
Funzionalità e azioni aggiunte in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Impossibile filtrare le query in base al valore di una proprietà di navigazione a valore singolo
Funzionalità e azioni aggiunte in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1
Nella tabella seguente sono elencate le funzioni e le azioni aggiunte per Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1.
Impossibile filtrare le query in base al valore di una proprietà di navigazione a valore singolo
Nota
Questo problema è parzialmente indirizzato in Aggiornamento 1 di Microsoft Dynamics CRM Online 2016 e Microsoft Dynamics CRM 2016 Service Pack 1. Puoi ora filtrare le query sulla proprietà di navigazione a valore singolo se la proprietà di navigazione da riferimento al valore dell'attributo primario dell'entità di riferimento.Ulteriori informazioni:Filtro dei record in base alle proprietà di navigazione a valore singolo
Se utilizzi la proprietà di una proprietà di navigazione con valore singolo come filtro in una query, verrà visualizzato un errore 501. Ad esempio, la query seguente prova a ripristinare tutti gli account in cui il valore della proprietà firstname del contatto principale correlato è "Renee".
Richiesta
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
Risposta
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> } } }
Limitazioni indirizzate in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016
Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 ha aggiunto le funzionalità e le azioni e ha indirizzato i seguenti problemi con l'API Web.
Funzionalità e azioni aggiunte in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016
Errore durante l'esecuzione delle relazioni molti-a-molti autoreferenziali
$select in alcune espressioni $expand può essere ignorato
Le proprietà di navigazione a valore singolo potrebbero non essere restituite da una query $expand se hanno un valore null
Query FetchXML collegate a activitypointer potrebbero non includere campi collegati
Le proprietà con valore null potrebbero non essere restituite nei risultati della proprietà di navigazione espansa
Funzionalità e azioni aggiunte in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016
Nella tabella seguente sono elencate le funzioni e le azioni aggiunte per Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016.
Errore durante l'esecuzione delle relazioni molti-a-molti autoreferenziali
Nota
Questo problema è indirizzato in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016.
Esistono due entità di sistema con relazioni molti-a-molti autoreferenziali: connectionrole EntityType ha connectionroleassociation_association e campaign EntityType ha campaigncampaign_association. Se tenti una query che utilizza queste proprietà di navigazione con valore di raccolta, è previsto il seguente errore HTTP Status 400: Reflexive relationship must specify direction using ReflexiveManyToManyRelationship.
Se devi eseguire una query ai dati utilizzando questi relazione molti-a-molti, in alternativa puoi utilizzare le entità intersecate. Per la proprietà di navigazione con valore di raccolta campaigncampaign_association, l'entità campaignitem EntityType è l'entità di intersezione speciale che definisce le relazioni. Per connectionroleassociation_association, connectionroleassociation è l'entità di intersezione ordinaria che contiene i dati che definiscono la relazione molti-a-molti. Le entità di intersezione ordinarie non sono incluse nella documentazione di riferimento ma sono disponibili nell'API Web. Puoi accedere all'entità connectionroleassociation tramite questo URI: /api/data/v8.0/connectionroleassociations.Ulteriori informazioni:Proprietà di navigazione con valori di raccolta
$select in alcune espressioni $expand può essere ignorato
Nota
Questo problema è indirizzato in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016.
Quando si recuperano due proprietà di navigazione, se l'ultima proprietà di navigazione non dispone dell'opzione query $select, tutte le proprietà della prima proprietà di navigazione vengono restituite. Ad esempio, se costruisci la query seguente:
GET
[Organization URI]/api/data/v8.0/accounts(0495779B-F67F-E511-80C2-00155DB09B03)$select=name&$expand=contact_customer_accounts($select=lastname),opportunity_customer_accounts
Prevedi che la proprietà name dell'account, lastname dei contatti associati utilizzi contact_customer_accounts e tutte le proprietà per le opportunità associate utilizzando opportunity_customer_accounts.
Tuttavia, otterrai tutte le proprietà dei contatti e le proprietà delle opportunità correlate. È consigliabile utilizzare sempre $select per limitare le proprietà in qualsiasi operazione di recupero, pertanto seguendo questa procedura consigliata si assicureranno le migliori prestazioni e non verranno recuperati più dati di quelli necessari.
Le proprietà di navigazione a valore singolo potrebbero non essere restituite da una query $expand se hanno un valore null
Nota
Questo problema è indirizzato in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016.
In base alla Specifica OData, quando espandi una singola proprietà di navigazione e questa non contiene alcun valore, la proprietà dovrebbe essere inclusa impostando null. Il comportamento corrente è che la proprietà non verrà importata nella risposta JSON. Nel seguente esempio, la proprietà di navigazione a valore singolo primarycontactid è necessaria, ma poiché non esiste un contatto associato a tale proprietà di navigazione, il valore è null.
Richiesta
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
Risposta prevista
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 }
Risposta effettiva
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" }
Query FetchXML collegate a activitypointer potrebbero non includere campi collegati
Nota
Questo problema è indirizzato in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016.
Quando crei una query utilizzando FetchXML che include activitypointer come entità collegata, i valori di proprietà saranno null. Se ad esempio utilizzi il seguente 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>
Si sta chiedendo il activitypointer correlato. Valoresubject da restituire. Viene restituito con un valore null quando esiste un valore effettivo.
Richiesta
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
Risposta prevista
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" } ] }
Risposta effettiva
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 } ] }
Ulteriori informazioni:Utilizza FetchXML personalizzato
Le proprietà con valore null potrebbero non essere restituite nei risultati della proprietà di navigazione espansa
Nota
Questo problema è indirizzato in Aggiornamento 0.1 di Microsoft Dynamics CRM Online 2016 e Aggiornamento 0.1 di Microsoft Dynamics CRM 2016.
Quando una delle proprietà espanse in una proprietà di navigazione con valore di raccolta è null, la proprietà espansa non sarà inclusa nei risultati. Nel primo esempio vengono illustrati i dati quando uno dei contatti correlati a un account ha un valore null per la proprietà emailaddress1 espansa. La proprietà emailaddress1 non viene restituita anche per il contatto in cui ha un valore.
Richiesta
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
Risposta prevista
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" } ] }
Risposta effettiva
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" } ] }
La query seguente che utilizza direttamente la proprietà di navigazione con valore di raccolta contact_customer_accounts senza espandersi restituisce i dati previsti.
Richiesta
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
Risposta
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" } ] }
Vedere anche
Utilizzare l'API Web di Microsoft Dynamics 365
Autenticazione a Microsoft Dynamics 365 con l'API Web
Tipi e operazioni API Web
Eseguire operazioni tramite l'API Web
Microsoft Dynamics 365
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright