Cree una entidad usando API web

 

Publicado: enero de 2017

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

Use una solicitud POST para enviar datos para crear una entidad. Puede crear varias entidades relacionadas en una sola operación mediante "inserción en profundidad". También necesita saber cómo establecer los valores para asociar una nueva entidad a entidades existentes mediante la anotación @odata.bind.

Nota

Para obtener información acerca de cómo crear y actualizar los metadatos de entidad usando la API web, consulte Crear y actualizar definiciones de entidad mediante la API web.

En este tema

Crear básico

Crear entidades relacionadas en una operación

Asociar entidades en la creación

Crear con datos devueltos

Crear básico

En este ejemplo crea una nueva entidad de cuenta. El encabezado OData-EntityId de respuesta contiene el Uri de la entidad creada.

  • Solicitud

    POST cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    
    {
        "name": "Sample Account",
        "creditonhold": false,
        "address1_latitude": 47.639583,
        "description": "This is the description of the sample account",
        "revenue": 5000000,
        "accountcategorycode": 1
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/accounts(7eb682f1-ca75-e511-80d4-00155d2a68d1)
    

Para crear una nueva entidad debe identificar los nombres y los tipos de propiedad válidos. Para todas las entidades y atributos del sistema, puede buscar esta información en el tema de la entidad en Web API EntityType Reference. Para entidades o atributos personalizados, consulte la definición de esa entidad en d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_csdl.Más información:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_entityTypes

Crear entidades relacionadas en una operación

Puede crear entidades relacionadas entre sí definiéndolas como valores de propiedades de navegación. Esto se conoce como inserción en profundidad.

Como con un Crear básico, el encabezado OData-EntityId de respuesta contiene Uri de la entidad creada. Los URI de las entidades relacionadas creadas no se devuelven.

Por ejemplo, el siguiente cuerpo de solicitud enviado al conjunto de entidades Account creará un total de cuatro nuevas entidades en el contexto de creación de una cuenta.

  • Se crea un contacto porque se define como propiedad de objeto de la propiedad de navegación de un solo valor primarycontactid.

  • Se crea una oportunidad porque se define como un objeto en una matriz que se establece en el valor de una propiedad de navegación valorada como colección opportunity_customer_accounts.

  • Se crea una tarea porque se define como un objeto en una matriz que se establece en el valor de una propiedad de navegación valorada como colección Opportunity_Tasks.

  • Solicitud

    POST cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    
    {
     "name": "Sample Account",
     "primarycontactid":
     {
         "firstname": "John",
         "lastname": "Smith"
     },
     "opportunity_customer_accounts":
     [
      {
          "name": "Opportunity associated to Sample Account",
          "Opportunity_Tasks":
          [
           { "subject": "Task associated to opportunity" }
          ]
      }
     ]
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/accounts(3c6e4b5f-86f6-e411-80dd-00155d2a68cb)
    

Asociar entidades en la creación

Para asociar nuevas entidades a las entidades existentes cuando se crean debe establecer el valor de las propiedades de navegación de un solo valor mediante la anotación @odata.bind.

El siguiente cuerpo de solicitud enviado al conjunto de entidades de cuenta creará una nueva cuenta asociada a un contacto existentes con el valor contactid de 00000000-0000-0000-0000-000000000001.

  • Solicitud

    POST cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    
    {
    "name":"Sample Account",
    "primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"
    }
    
  • Respuesta

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)
    

Nota

La API web no permite asociar entidades de esta manera utilizando una propiedad de navegación valorada como colección.

Crear con datos devueltos

Nota

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

Puede crear su solicitud POST de forma que los datos del registro creado sean devueltos con un estado de 201 (Created). 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.

Cuando se crea una entidad de esta forma, el encabezado OData-EntityId que contiene el URI al registro creado no se vuelve.

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

  • Solicitud

    POST cc_WebAPI_ServiceURI/accounts?$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": "Sample Account",
        "creditonhold": false,
        "address1_latitude": 47.639583,
        "description": "This is the description of the sample account",
        "revenue": 5000000,
        "accountcategorycode": 1
    }
    
  • Respuesta

    HTTP/1.1 201 Created
    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/\"536530\"",
        "accountid": "d6f193fc-ce85-e611-80d8-00155d2a68de",
        "accountcategorycode": 1,
        "description": "This is the description of the sample account",
        "address1_latitude": 47.63958,
        "creditonhold": false,
        "name": "Sample Account",
        "createdon": "2016-09-28T22:57:53Z",
        "revenue": 5000000.0000,
        "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
    }
    

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
Recuperar una entidad usando API web
Actualizar y eliminar entidades mediante la 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