Utilizzare le funzioni API Web

 

Data di pubblicazione: gennaio 2017

Si applica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Le funzioni e le azioni rappresentano operazioni riutilizzabili che puoi eseguire utilizzando l'API Web. Esistono due tipi di funzioni nell'API Web.

  • Funzioni
    Utilizza una richiesta GET con le funzioni elencate in Web API Function Reference per eseguire operazioni senza effetti collaterali. Queste funzioni consentono in genere di recuperare i dati. Vengono restituiti una raccolta o un tipo complesso. Ciascuna di queste funzioni dispone di un messaggio corrispondente nel servizio dell'organizzazione.

  • Funzioni di query
    Utilizza le funzioni elencate in Web API Query Function Reference per valutare le proprietà e i valori della composizione di una query. Ciascuna di queste funzioni dispone di un valore ConditionOperator corrispondente.

In questo argomento

Passare i parametri a una funzione

Passare a una funzione il riferimento a un'entità

Funzioni associate e non associate

Comporre una query con le funzioni

Passare i parametri a una funzione

Per le funzioni che richiedono i parametri, la procedura consigliata consiste nel passare i valori utilizzando i parametri. Ad esempio, quando utilizzi GetTimeZoneCodeByLocalizedName Function, devi includere i valori dei parametri LocaleId e LocalizedStandardName. Potresti quindi utilizzare la sintassi inline seguente come illustrato di seguito.

GET cc_WebAPI_ServiceURI/GetTimeZoneCodeByLocalizedName(LocalizedStandardName='Pacific Standard Time',LocaleId=1033)

Tuttavia, esiste un problema non risolto utilizzando i valori DateTimeOffset con la sintassi inline, come descritto nel seguente articolo: DateTimeOffset come parametro della query N. 204.

Pertanto, la procedura consigliata consiste nel passare i valori come parametri come illustrato nell'esempio di codice seguente. Se utilizzi questa procedura consigliata, puoi evitare il problema non risolto applicabile a DateTimeOffset.

GET cc_WebAPI_ServiceURI/GetTimeZoneCodeByLocalizedName(LocalizedStandardName=@p1,LocaleId=@p2)?@p1='Pacific Standard Time'&@p2=1033

Gli alias dei parametri ti consentono inoltre di riutilizzare i valori dei parametri per ridurre la lunghezza complessiva dell'URL quando il valore del parametro viene utilizzato più volte.

Passare a una funzione il riferimento a un'entità

Alcune funzioni richiedono il passaggio di un riferimento a un'entità esistente. Ad esempio, le seguenti funzionalità hanno un parametro che richiede crmbaseentity EntityType

CalculateRollupField Function

IncrementKnowledgeArticleViewCount Function

InitializeFrom Function

IsValidStateTransition Function

RetrieveDuplicates Function

RetrieveLocLabels Function

RetrievePrincipalAccess Function

RetrieveRecordWall Function

ValidateRecurrenceRule Function

Quando passi un riferimento a un'entità esistente, usa l'annotazione @odata.id sull'URI per l'entità. Ad esempio se usi RetrievePrincipalAccess Function puoi utilizzare il seguente URI per specificare il recupero dell'accesso a un contatto specifico:

GET cc_WebAPI_ServiceURI/systemusers(af9b3cf6-f654-4cd9-97a6-cf9526662797)/Microsoft.Dynamics.CRM.RetrievePrincipalAccess(Target=@tid)?@tid={'@odata.id':'contacts(9f3162f6-804a-e611-80d1-00155d4333fa)'} 

L'annotazione @odata.id può essere l'URI completo o anche l'URI relativo.

Funzioni associate e non associate

Possono essere associate solo le funzioni disponibili in Web API Function Reference. Le funzioni di query non sono mai associate.

Funzioni associate

In d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_csdl, quando un elemento Function rappresenta una funzione associata, il relativo attributo IsBound contiene il valore true. Il primo elemento Parameter definito all'interno della funzione rappresenta l'entità a cui è associata la funzione. Quando l'attributo Type del parametro è una raccolta, la funzione è associata a una raccolta di entità. Ad esempio, la seguente è la definizione della CalculateTotalTimeIncident Function e del CalculateTotalTimeIncidentResponse ComplexType nel linguaggio CSDL.

<ComplexType Name="CalculateTotalTimeIncidentResponse">
  <Property Name="TotalTime" Type="Edm.Int64" Nullable="false" />
</ComplexType>
<Function Name="CalculateTotalTimeIncident" IsBound="true">
  <Parameter Name="entity" Type="mscrm.incident" Nullable="false" />
  <ReturnType Type="mscrm.CalculateTotalTimeIncidentResponse" Nullable="false" />
</Function>

Questa funzione associata è equivalente all'oggetto CalculateTotalTimeIncidentRequest utilizzato dal servizio dell'organizzazione. Nell'API Web questa funzione è associata all'oggetto incident EntityType che rappresenta la proprietà CalculateTotalTimeIncidentRequest.IncidentId. Anziché restituire CalculateTotalTimeIncidentResponse, questa funzione restituisce CalculateTotalTimeIncidentResponse ComplexType. Quando una funzione restituisce un tipo complesso, la relativa definizione viene visualizzata direttamente sopra la definizione della funzione nel linguaggio CSDL.

Per richiamare una funzione associata, aggiungi il nome completo della funzione all'URL e includi tutti i parametri denominati all'interno delle parentesi che seguono il nome della funzione. Il nome completo della funzione include lo spazio dei nomi Microsoft.Dynamics.CRM. Le funzioni non associate non devono utilizzare il nome completo.

Importante

Per impostare il valore del primo parametro, è necessario richiamare una funzione associata utilizzando un URI. Non puoi impostarlo come valore di parametro denominato.

Nell'esempio seguente viene illustrato un esempio sull'utilizzo di CalculateTotalTimeIncident Function, che è associato all'entità di incidente.

  • Richiesta

    GET cc_WebAPI_ServiceURI/incidents(90427858-7a77-e511-80d4-00155d2a68d1)/Microsoft.Dynamics.CRM.CalculateTotalTimeIncident() HTTP/1.1
    Accept: application/json
    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":"cc_WebAPI_ServiceURI/$metadata#Microsoft.Dynamics.CRM.CalculateTotalTimeIncidentResponse","TotalTime":30
    }
    

Funzioni non associate

WhoAmI Function non è associata a un'entità. È definita nel linguaggio CSDL senza un attributo IsBound.

<ComplexType Name="WhoAmIResponse">
  <Property Name="BusinessUnitId" Type="Edm.Guid" Nullable="false" />
  <Property Name="UserId" Type="Edm.Guid" Nullable="false" />
  <Property Name="OrganizationId" Type="Edm.Guid" Nullable="false" />
</ComplexType>
<Function Name="WhoAmI">
  <ReturnType Type="mscrm.WhoAmIResponse" Nullable="false" />
</Function>

Questa funzione corrisponde a WhoAmIRequest e restituisce un WhoAmIResponse ComplexType che corrisponde a WhoAmIResponse utilizzato dal servizio di organizzazione. Questa funzione non presenta alcun parametro.

Quando richiami una funzione non associata, utilizza solo il nome della funzione come illustrato nell'esempio seguente.

  • Richiesta

    GET cc_WebAPI_ServiceURI/WhoAmI() HTTP/1.1
    Accept: application/json
    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": "cc_WebAPI_ServiceURI/$metadata#Microsoft.Dynamics.CRM.WhoAmIResponse",
     "BusinessUnitId": "ded5a64f-f06d-e511-80d0-00155db07cb1",
     "UserId": "d96e9f55-f06d-e511-80d0-00155db07cb1",
     "OrganizationId": "4faf1f34-f06d-e511-80d0-00155db07cb1"
    }
    

Comporre una query con le funzioni

Vi sono due modi per utilizzare le funzioni per controllare i dati restituiti di controllo con le query. Alcune funzioni consentono di controllare le colonne o le condizioni da esse restituite mentre utilizzi le funzioni di query per valutare le condizioni in una query.

Funzioni componibili

Alcuni funzioni elencate in Web API Function Reference restituiranno una raccolta di entità. Un sottoinsieme di queste funzionalità è componibile, che significa che puoi includere un'opzione query di sistema $filter o $select aggiuntiva per controllare quali colonne vengono restituite nei risultati. Queste funzioni presentano un attributo IsComposable nel linguaggio CSDL. Ciascuna di queste funzione presenta un messaggio complementare nel servizio dell'organizzazione che accetta un parametro di tipo ColumnSet o QueryBase. Le opzioni query di sistema OData offrono le stesse funzionalità, quindi tali funzioni non presentano gli stessi parametri dei relativi messaggi complementari nel servizio nell'organizzazione. Nella tabella seguente è riportato un elenco delle funzioni componibili di questa versione.

GetDefaultPriceLevel Function

RetrieveAllChildUsersSystemUser Function

RetrieveBusinessHierarchyBusinessUnit Function

RetrieveByGroupResource Function

RetrieveByResourceResourceGroup Function

RetrieveMembersBulkOperation Function

RetrieveParentGroupsResourceGroup Function

RetrieveSubGroupsResourceGroup Function

RetrieveUnpublishedMultiple Function

SearchByBodyKbArticle Function

SearchByKeywordsKbArticle Function

SearchByTitleKbArticle Function

Funzioni di query

Le funzioni elencate in Web API Query Function Reference devono essere utilizzate per comporre una query. Queste funzioni possono essere utilizzare in modo analogo alle Funzionalità di query standard, ma esistono alcune differenze importanti.

Devi utilizzare il nome completo della funzione e includere i nomi dei parametri. Nell'esempio seguente viene illustrato come utilizzare LastXHours Function per restituire tutte le entità account modificate nelle ultime 12 ore.

GET cc_WebAPI_ServiceURI/accounts?$select=name,accountnumber&$filter=Microsoft.Dynamics.CRM.LastXHours(PropertyName=@p1,PropertyValue=@p2)&@p1='modifiedon'&@p2=12

Vedere anche

Esempio di azioni e funzioni API Web (C#)
Esempio di azioni e funzioni API Web (JavaScript lato client)
Eseguire operazioni tramite l'API Web
Comporre richieste HTTP e gestire gli errori
Query di dati tramite l'API Web
Creare un'entità utilizzando l'API Web
Recupera un'entità utilizzando l'API Web
Aggiorna ed elimina le entità con l'API Web
Associa e annulla associazione entità con l'API Web
Utilizzare le azioni API Web
Eseguire operazioni in batch usando l'API Web
Rappresentare un altro utente usando l'API Web
Eseguire operazioni condizionali tramite l'API Web

Microsoft Dynamics 365

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright