Condividi tramite


Aggiorna ed elimina le entità con l'API Web

 

Data di pubblicazione: gennaio 2017

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

Le operazioni per modificare i dati sono una parte centrale dell'API Web. Oltre a un aggiornamento e un'eliminazione semplice puoi eseguire operazioni in singoli attributi e comporre le richieste upsert che aggiorneranno o inseriranno un'entità in base a se esiste.

Nota

I metadati che definiscono le entità vengono aggiornati in un modo diverso.Ulteriori informazioni:Creare e aggiornare definizioni di entità tramite la Web API

In questo argomento

Aggiornamento di base

Aggiornamento con dati restituiti

Aggiorna un unico valore proprietà

Elimina un unico valore proprietà

Upsert di un'entità

Eliminazione di base

Aggiornamento di base

Le operazioni di aggiornamento utilizzano il verbo HTTP PATCH. Passa un oggetto JSON che contiene le proprietà che desideri aggiornare all'URI che rappresenta l'entità. Una risposta con stato di 204 verrà restituita se l'aggiornamento ha esito positivo.

Questo esempio aggiorna un record di account esempio con il valore accountid di 00000000-0000-0000-0000-000000000001.

Importante

Quando viene aggiornata un'entità, includi solo le proprietà che si stanno modificando nel messaggio di richiesta. Il semplice aggiornamento delle proprietà di un'entità recuperate in precedenza che includono JSON nella richiesta, aggiornerà ogni proprietà anche se il valore è lo stesso. In questo modo potrebbe sembrare che le proprietà siano stato aggiornate nei dati di controllo mentre in effetti non sono state effettivamente modificate.

  • Richiesta

    PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {
        "name": "Updated Sample Account ",
        "creditonhold": true,
        "address1_latitude": 47.639583,
        "description": "This is the updated description of the sample account",
        "revenue": 6000000,
        "accountcategorycode": 2
    }
    
  • Risposta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Nota

Per informazioni sull'associazione delle entità al momento dell'aggiornamento, vedi Associa le entità in fase di aggiornamento.

Aggiornamento con dati restituiti

Nota

Questa funzionalità è stata aggiunta con Aggiornamento di dicembre 2016 per Dynamics 365 (online e locale).

Per recuperare i dati da un'entità che stai aggiornando puoi creare la richiesta PATCH in modo che i dati del record creato vengano restituiti con lo stato 200 (OK). Per ottenere questo risultato, devi usare la preferenza return=representation nelle intestazioni della richiesta.

Per controllare quali proprietà vengono restituite, aggiungi l'opzione di query $select all'URL del set di entità. L'opzione di query $expand verrà ignorata se utilizzata.

In questo esempio esegui l'aggiornamento di un'entità account che restituisce i dati richiesti nella risposta.

  • Richiesta

    PATCH cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    Prefer: return=representation
    
    {"name":"Updated Sample Account"}
    
  • Risposta

    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    Preference-Applied: return=representation
    OData-Version: 4.0
    
    {
        "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts/$entity",
        "@odata.etag": "W/\"536537\"",
        "accountid": "00000000-0000-0000-0000-000000000001",
        "accountcategorycode": 1,
        "description": "This is the description of the sample account",
        "address1_latitude": 47.63958,
        "creditonhold": false,
        "name": "Updated Sample Account",
        "createdon": "2016-09-28T23:14:00Z",
        "revenue": 5000000.0000,
        "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
    }
    

Aggiorna un unico valore proprietà

Se desideri aggiornare un solo valore di proprietà utilizza una richiesta PUT con il nome proprietà aggiunto all'Uri dell'entità.

Nell'esempio seguente viene aggiornata la proprietà name di un'entità di account esistente con il valore accountid di 00000000-0000-0000-0000-000000000001.

  • Richiesta

    PUT cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/name HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    {"value": "Updated Sample Account Name"}
    
  • Risposta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Elimina un unico valore proprietà

Per eliminare il valore di una singola proprietà utilizza una richiesta DELETE con il nome proprietà aggiunto all'Uri dell'entità.

Nell'esempio seguente viene eliminato il valore della proprietà description di un'entità di account esistente con il valore accountid di 00000000-0000-0000-0000-000000000001.

  • Richiesta

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001)/description HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • Risposta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Nota

Questa non può essere utilizzata con una proprietà di navigazione a valore singolo per annullare l'associazione tra due entità. Per un approccio alternativo, vedi Rimuovi un riferimento a un'entità.

Upsert di un'entità

Un'operazione upsert è esattamente come un aggiornamento. Utilizza una richiesta PATCH e utilizza un URI per fare riferimento a un'entità specifica. La differenza è che se l'entità non esiste questa verrà creata. Se esiste già, verrà aggiornata. In genere quando si crea una nuova entità si lascerà che il sistema assegni un identificatore univoco. Questa è una procedura consigliata. Ma se devi creare un record con un valore specifico id, un'operazione upsert fornisce una modalità per eseguire questa operazione. Ciò può risultare utile in una situazione in cui si stanno sincronizzando i dati in sistemi diversi.

Talvolta in alcuni casi preferirai eseguire un upsert, ma desideri evitare una delle possibili azioni predefinite: creazione o aggiornamento. Puoi ottenere questo risultato tramite l'aggiunta dell'intestazione If-Match o If-None-Match. Per ulteriori informazioni, vedere Operazioni di upsert limitate.

Eliminazione di base

Un'operazione di eliminazione è un processo molto semplice. Utilizza il verbo DELETE con l'URI dell'entità che desideri eliminare. Questo messaggio di esempio elimina un'entità account con il valore accountid della chiave primaria uguale a 00000000-0000-0000-0000-000000000001.

  • Richiesta

    DELETE cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000001) HTTP/1.1
    Content-Type: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
  • Risposta
    Se l'entità esiste, otterrai una risposta con stato 204 che indica la corretta eliminazione. Se non viene rilevata l'entità, otterrai una risposta con stato 404.

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Vedere anche

Esempio di operazioni di base dell'API Web (C#)
Esempio di operazioni di base 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
Associa e annulla associazione entità con l'API Web
Utilizzare le funzioni 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