Compartir por


createRecord (Referencia da API do cliente)

Crea un rexistro de táboa.

Sintaxe

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

Parámetros

Nome Tipo Obrigatorio Descrición
entityLogicalName String Si Nome lóxico da táboa que se quere crear. Por exemplo: account.
data Obxecto Si Obxecto JSON que define as columnas e os valores do novo rexistro da táboa. Ver exemplos
successCallback Function Non Función a chamar cando se crea un rexistro. Ver valor de devolución
errorCallback Function Non Unha función a chamar cando a operación falla. Pasa un obxecto coas seguintes propiedades:
- errorCode: Número. O código de erro é un número decimal positivo. Por exemplo, o código de erro documentado como 0x80040333 será devolto como 2147746611.
- message: String. Mensaxe de erro que describe o problema.

Devolver valor

En caso de éxito, devolve un obxecto de promesa coas successCallback seguintes propiedades:

Nome Tipo Descrición
entityType String O nome lóxico da táboa do novo rexistro.
id String Guía do novo disco.

Exemplos

Estes exemplos usan os mesmos obxectos de solicitude que se mostra en Crear unha fila de táboa usando a API Web para definir o obxecto de datos para crear un rexistro de táboa.

Creación básica

Crea un rexistro de conta de mostra.

// 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

A creación de rexistros cunha imaxe principal non está soportada para o modo sen conexión. As imaxes primarias só se poden configurar con crear en modo en liña. Non se poden establecer outras columnas de imaxes con create. Ler máis acerca de Imaxes primarias

Pode crear táboas relacionadas entre si definíndoas como valores de propiedades de navegación. Este patrón coñécese como inserción profunda. Neste exemplo, creamos un rexistro de conta de mostra xunto co rexistro de contacto principal e un rexistro de oportunidade asociado.

Nota

A creación de rexistros de táboas relacionadas nunha soa operación de creación non está soportada para o modo sen 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
    }
);

Asociar táboas na creación de novos rexistros

Para asociar novos rexistros de táboa a rexistros de táboa existentes, estableza o valor das propiedades de navegación dun só valor usando a @odata.bind anotación.

Nota

Os nomes das propiedades de navegación dun só valor non sempre son os mesmos que para LogicalName o atributo de busca. Debes asegurarte de que estás a usar o Name valor do atributo do NavigationProperty elemento no documento de servizo $metadata API web. Máis información: Propiedades de navegación da API web

Aquí tes un exemplo de código:

O seguinte exemplo crea un rexistro de conta e aséciao a un rexistro de contacto existente para establecer este último como contacto principal para o novo rexistro de conta:

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 obsoleto para o escenario de conexión móbil

Nota

En lugar de usar @odata.bind o exemplo de anotación mostrado anteriormente, o obxecto de busca obsoleto con propiedades sensibles entre maiúsculas e minúsculas (logicalname e id) aínda está soportado para as personalizacións existentes. Non obstante, recoméndase usar @odata.bind a anotación para escenarios en liña e fóra de liña en lugar de usar este obxecto obsoleto.

O seguinte exemplo usa o método obsoleto para crear un rexistro de conta e asocialo a un rexistro de contacto existente para establecer este último como o contacto principal para o novo rexistro de conta de clientes móbiles cando se traballa en modo sen 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 unha fila de táboa usando a API web
Xrm.WebApi