Partilhar via


createRecord (referência da API do cliente)

Cria um registro de tabela.

Sintaxe

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

Parâmetros

Nome Tipo Obrigatório Description
entityLogicalName String Yes Nome lógico da tabela que você deseja criar. Por exemplo: account.
data Objeto Yes Um objeto JSON que define as colunas e os valores para o novo registro de tabela. Ver exemplos
successCallback Função Não Uma função para chamar quando um registro é criado. Ver Valor de Retorno
errorCallback Função Não Uma função para chamar quando a operação falhar. Um objeto com as seguintes propriedades é passado:
- errorCode: Número. O código de erro como um número decimal positivo. Por exemplo, o código de erro documentado como 0x80040333 será retornado como 2147746611.
- message: String. Uma mensagem de erro descrevendo o problema.

Valor de retorno

Quando for bem-sucedido, retorna um objeto promise para o successCallback com as seguintes propriedades:

Nome Tipo Description
entityType String O nome lógico da tabela do novo registro.
id String GUID do novo registro.

Examples

Esses exemplos usam os mesmos objetos de solicitação demonstrados em Criar uma linha de tabela usando a API da Web para definir o objeto de dados para criar um registro de tabela.

Criação básica

Cria um registro de conta de exemplo.

// 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
    }
);

Observação

A criação de registros com uma imagem principal não é suportada no modo offline. As imagens primárias só podem ser definidas com a criação no modo online. Outras colunas de imagem não podem ser definidas com create. Saiba mais sobre Imagens primárias

Você pode criar tabelas relacionadas entre si definindo-as como valores de propriedades de navegação. Este padrão é conhecido como inserção profunda. Neste exemplo, criamos um registro de conta de exemplo junto com o registro de contato principal e um registro de oportunidade associado.

Observação

A criação de registros de tabela relacionados em uma única operação de criação não é suportada no modo offline.

// 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
    }
);

Associar tabelas na criação de novos registros

Para associar novos registros de tabela a registros de tabela existentes, defina o valor das propriedades de navegação de valor único usando a @odata.bind anotação.

Observação

Os nomes das propriedades de navegação de valor único nem sempre são os mesmos do LogicalName atributo de pesquisa. Certifique-se de que está usando o NameNavigationProperty valor do atributo do elemento no documento de serviço do $metadata da API Web. Mais informações: Propriedades de Navegação da API Web

Aqui está o exemplo de código:

O exemplo a seguir cria um registro de conta e o associa a um registro de contato existente para definir o último como o contato principal para o novo registro 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 preterido para cenário móvel offline

Observação

Em vez de usar @odata.bind o exemplo de anotação mostrado anteriormente, o objeto de pesquisa preterido com propriedades que diferenciam maiúsculas de minúsculas (logicalname e id) ainda é suportado para personalizações existentes. No entanto, recomenda-se usar @odata.bind a anotação para cenários online e offline em vez de usar esse objeto preterido.

O exemplo a seguir usa o método preterido para criar um registro de conta e associá-lo a um registro de contato existente para definir o último como o contato principal para o novo registro de conta de clientes móveis ao trabalhar no modo offline:

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
    }
);

Criar uma linha de tabela usando a API da Web
Xrm.WebApi