createRecord (referencia de API de cliente)

Crea un registro de tabla.

Sintaxis

Xrm.WebApi.createRecord(entityLogicalName, data).then(successCallback, errorCallback);

Parámetros

Nombre. Type Obligatorio Description
entityLogicalName String Sí Nombre lógico de la tabla que quiere crear. Por ejemplo: account.
data Objecto Sí Objeto JSON que define las columnas y valores del nuevo registro de tabla. Ver Ejemplos
successCallback Function No Una función para llamar cuando se crea un registro. Ver Valor de retorno
errorCallback Function No Una función a la que se llama cuando la operación tiene error. Se pasará un objeto con las siguientes propiedades:
- errorCode: Número. El código de error como número decimal positivo. Por ejemplo, el código de error documentado como 0x80040333 se devolverá como 2147746611.
- message: Cadena. Un mensaje de error que describe el problema.

Valor de retorno

Si tiene éxito, devuelve un objeto de promesa al successCallback con las siguientes propiedades:

Nombre. Type Description
entityType String Nombre lógico de la tabla del nuevo registro.
id String GUID del nuevo registro.

Ejemplos

En estos ejemplos se usan los mismos objetos de solicitud que el siguiente artículo: Creación de una fila de tabla mediante la API web. En el artículo se muestra cómo definir el objeto de datos para crear un registro de tabla.

Ejemplo Demuestra Ejemplo de API web
Crear básico Cómo crear un registro de cuenta con valores de columna. Crear básico
Crear registros de tabla relacionados junto con el registro principal Cómo crear una cuenta y registros de contacto, oportunidades y tareas relacionados en una sola operación. Crea filas de tablas relacionadas en una sola operación
Asociación de tablas al crear nuevos registros Cómo asociar una nueva cuenta a un contacto existente mediante @odata.bind. Asociar filas de tabla en la creación

Ejemplo de creación básica

Crea un registro de cuenta de ejemplo.

// define the data to create new account
var data =
    {
        "name": "Sample Account",
        "creditonhold": false,
        "address1_latitude": 47.639583,
        "description": "This is the description of the sample account",
        "revenue": 5000000,
        "accountcategorycode": 1,
        "opendeals_date": new Date("2024-02-03T00:00:00Z")
    }

// create account record
Xrm.WebApi.createRecord("account", data).then(
    function success(result) {
        console.log("Account created with ID: " + result.id);
        // perform operations on record creation
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Nota

No se admite la creación de registros con una imagen principal para el modo sin conexión. Solo puede establecer imágenes principales mediante la creación en modo en línea. No se pueden establecer otras columnas de imagen mediante create. Más información sobre imágenes principales

Puede crear tablas relacionadas entre sí definiéndolas como valores de propiedad de navegación. Este patrón se conoce como inserción en profundidad. En este ejemplo, creará un registro de cuenta de ejemplo junto con el registro de contacto principal y un registro de oportunidad asociado.

Nota

No se admite la creación de registros de tabla relacionados en una sola operación de creación para el modo sin conexión.

// define data to create primary and related table records
var data =
    {
        "name": "Sample Account",
        "primarycontactid":
        {
            "firstname": "John",
            "lastname": "Smith"
        },
        "opportunity_customer_accounts":
        [
            {
                "name": "Opportunity associated to Sample Account",
                "Opportunity_Tasks":
                [
                    { "subject": "Task associated to opportunity" }
                ]
            }
        ]
    }

// create account record
Xrm.WebApi.createRecord("account", data).then(
    function success(result) {
        console.log("Account created with ID: " + result.id);
        // perform operations on record creation
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Ejemplo de asociación de tablas al crear nuevos registros

Para asociar nuevos registros de tabla a los registros de tabla existentes, establezca el valor de las propiedades de navegación con un solo valor mediante la @odata.bind anotación .

Nota

Los nombres de las propiedades de navegación con un solo valor no siempre son los mismos que para LogicalName el atributo de búsqueda. Asegúrese de que usa el Name valor de atributo del NavigationProperty elemento en el documento de servicio $metadata api web. Para obtener más información, consulte Propiedades de navegación de api web.

Este es un ejemplo de código:

En el ejemplo siguiente se crea un registro de cuenta y se asocia a un registro de contacto existente para establecer este último como contacto principal para el nuevo registro de cuenta:

var data =
    {
        "name": "Sample Account",
        "primarycontactid@odata.bind": "/contacts(465b158c-541c-e511-80d3-3863bb347ba8)"
    }

// create account record
Xrm.WebApi.createRecord("account", data).then(
    function success(result) {
        console.log("Account created with ID: " + result.id);
        // perform operations on record creation
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Método en desuso para escenario sin conexión móvil

Nota

En lugar de usar el @odata.bind ejemplo de anotación mostrado anteriormente, el objeto de búsqueda en desuso con propiedades que distinguen mayúsculas de minúsculas (logicalname y id) sigue siendo compatible con las personalizaciones existentes. Sin embargo, use la @odata.bind anotación para escenarios en línea y sin conexión en lugar de usar este objeto en desuso.

En el ejemplo siguiente se usa el método en desuso para crear un registro de cuenta y asociarlo a un registro de contacto existente para establecer este último como contacto principal para el nuevo registro de cuenta de los clientes móviles al trabajar en el modo sin conexión:

var data =
    {
        "name": "Sample Account",
        "primarycontactid":
        {
            "logicalname": "contact",
            "id": "465b158c-541c-e511-80d3-3863bb347ba8"
        } 
    }

// create account record
Xrm.WebApi.offline.createRecord("account", data).then(
    function success(result) {
        console.log("Account created with ID: " + result.id);
        // perform operations on record creation
    },
    function (error) {
        console.log(error.message);
        // handle error conditions
    }
);

Crear una fila de tabla usando la API web
Xrm.WebApi