Actualizar y eliminar entidades mediante la API web

 

Publicado: enero de 2017

Se aplica a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Las operaciones para modificar datos son una parte básica de la API web. Además de una simple actualización y eliminación, puede realizar operaciones en atributos individuales y crear solicitudes upsert que actualizarán o insertarán una entidad en función de si existe.

Nota

Los metadatos que definen las entidades se actualizan de otra manera.Más información:Crear y actualizar definiciones de entidad mediante la API web

En este tema

Actualización básica

Actualizar con datos devueltos

Actualizar un solo valor de propiedad

Eliminar un solo valor de propiedad

Aplicar Upsert a una entidad

Eliminación básica

Actualización básica

Las operaciones de actualización usan el verbo HTTP PATCH. Pase un objeto JSON que contenga las propiedades que desee actualizar a la URI que representa la entidad. Se devolverá una respuesta con un estado de 204 si la actualización es correcta.

Este ejemplo actualiza un registro de cuenta existente con el valor accountid de 00000000-0000-0000-0000-000000000001.

Importante

Al actualizar una entidad, incluya únicamente las propiedades que está modificando en el cuerpo de la solicitud. Actualizando simplemente las propiedades de una entidad que recuperó anteriormente, e incluyendo ese JSON en su solicitud, se actualizará cada propiedad aunque el valor sea el mismo. Esto puede hacer que parezca que las propiedades se han actualizado en auditoría de datos cuando de hecho no han cambiado realmente.

  • Solicitud

    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
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Nota

Vea Asociar entidades en la actualización para obtener información acerca de la asociación de entidades al actualizar.

Actualizar con datos devueltos

Nota

Esta funcionalidad se agregó con Actualización de diciembre de 2016 para Dynamics 365 (online y local).

Para recuperar datos de una entidad que está actualizando puede crear la solicitud PATCH de forma que los datos del registro creado sean devueltos con un estado de 200 (OK). Para obtener su resultado, debe usar la preferencia return=representation en los encabezados de solicitud.

Para controlar qué propiedades se devuelven, anexe la opción de consulta $select a la dirección URL del conjunto de entidades. Se ignorará la opción de consulta $expand si se utiliza.

Este ejemplo actualiza una entidad de cuenta y devuelve los datos solicitados en la respuesta.

  • Solicitud

    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"}
    
  • Respuesta

    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"
    }
    

Actualizar un solo valor de propiedad

Cuando desee actualizar únicamente un solo valor de propiedad, utilice una solicitud PUT con el nombre de propiedad anexado a la Uri de la entidad.

El siguiente ejemplo actualiza la propiedad name de una entidad de cuenta existente con el valor accountid de 00000000-0000-0000-0000-000000000001.

  • Solicitud

    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"}
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Eliminar un solo valor de propiedad

Para eliminar el valor de una sola propiedad, utilice una solicitud DELETE con el nombre de propiedad anexado a la Uri de la entidad.

El siguiente ejemplo elimina el valor de la propiedad description de una entidad de cuenta existente con el valor accountid de 00000000-0000-0000-0000-000000000001.

  • Solicitud

    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
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Nota

Esto no se puede usar con una propiedad de navegación de un solo valor para anular la asociación de dos entidades. Para un enfoque alternativo, consulte Quite una referencia a una entidad.

Aplicar Upsert a una entidad

Una operación upsert es exactamente igual que una actualización. Usa una solicitud PATCH y usa una URI para hacer referencia a una entidad específica. La diferencia es que si la entidad no existe, se creará. Si ya existe, será actualizada. Normalmente al crear una nueva entidad usted deja que el sistema asigne un identificador único. Esta es una práctica recomendada. Pero si necesita crear un registro con un valor id específico, una operación upsert proporciona una forma de hacerlo. Esto puede ser útil en una situación en la que esté sincronizando datos en sistemas distintos.

A veces, hay situaciones donde desea realizar upsert, pero desea evitar una de las acciones potenciales predeterminadas: crear o actualizar. Puede lograrlo mediante la adición encabezados If-Match o If-None-Match. Para obtener más información, vea Limitar operaciones de upsert.

Eliminación básica

Una operación de eliminación es muy sencilla. Use el verbo DELETE con la URI de la entidad que desea eliminar. Este mensaje de ejemplo elimina una entidad de cuenta con el valor de clave principal accountid igual a 00000000-0000-0000-0000-000000000001.

  • Solicitud

    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
    
  • Respuesta
    Si ya existe la entidad, recibirá una respuesta normal con estado 204 para indicar que la eliminación fue correcta. Si no se encuentra la entidad, recibirá una respuesta con estado 404.

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    

Ver también

Ejemplo de operaciones básicas de la API web (C#)
Ejemplo de operaciones básicas de la API web (JavaScript del lado del cliente)
Realizar operaciones mediante la API web
Componer solicitudes HTTP y administrar errores
Consultar datos utilizando la API web
Cree una entidad usando API web
Recuperar una entidad usando API web
Asociar y anular la asociación de entidades mediante la API web
Usar funciones de la API web
Usar acciones de la API web
Ejecute las operaciones por lotes mediante API web
Suplantar a otro usuario utilizando la API web
Realizar operaciones condicionales mediante la API web

Microsoft Dynamics 365

© 2017 Microsoft. Todos los derechos reservados. Copyright