Comparteix via


createRecord (referència de l'API del client)

Crea un registre de taula.

Sintaxi

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

Paràmetres

Nom Tipus Necessari Descripció
entityLogicalName String Nom lògic de la taula que voleu crear. Per exemple: account.
data Objecte Objecte JSON que defineix les columnes i els valors del registre de taula nou. Veure exemples
successCallback Funció No Funció per cridar quan es crea un registre. Vegeu el valor retornat
errorCallback Funció No Una funció per cridar quan l'operació falla. Es passa un objecte amb les propietats següents:
- errorCode:Número. El codi d'error com a nombre decimal positiu. Per exemple, el codi d'error documentat com es 0x80040333 retornarà com 2147746611a .
- message:Corda. Un missatge d'error que descriu el problema.

Valor retornat

En cas d'èxit, retorna un objecte de promesa a la successCallback amb les propietats següents:

Nom Tipus Descripció
entityType String El nom lògic de la taula del registre nou.
id String GUID del nou registre.

Exemples

Aquests exemples utilitzen els mateixos objectes de sol·licitud que es demostren a Crear una fila de taula mitjançant l'API web per definir l'objecte de dades per crear un registre de taula.

Creació bàsica

Crea un registre de compte d'exemple.

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

La creació de registres amb una imatge principal no és compatible amb el mode fora de línia. Les imatges primàries només es poden establir amb crea en mode en línia. Altres columnes d'imatge no es poden definir amb create. Més informació sobre les imatges principals

Podeu crear taules relacionades entre si definint-les com a valors de propietats de navegació. Aquest patró es coneix com a inserció profunda. En aquest exemple, creem un registre de compte d'exemple juntament amb el registre de contacte principal i un registre d'oportunitat associat.

Nota

La creació de registres de taula relacionats en una sola operació de creació no s'admet per al mode fora de línia.

// 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 taules en crear registres nous

Per associar registres de taula nous a registres de taula existents, definiu el valor de les propietats de navegació d'un sol valor mitjançant l'anotació @odata.bind .

Nota

Els noms de les propietats de navegació d'un sol valor no sempre són els mateixos que per LogicalName a l'atribut de cerca. Heu d'assegurar-vos que utilitzeu el valor de l'atribut Name de l'element NavigationProperty a l'API web $metadata document de servei. Més informació: Propietats de navegació de l'API web

Aquí teniu un exemple de codi:

L'exemple següent crea un registre de compte i l'associa a un registre de contacte existent per definir-lo com a contacte principal per al registre de compte nou:

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ètode obsolet per a l'escenari Mobile Offline

Nota

En lloc d'utilitzar @odata.bind l'exemple d'anotació mostrat anteriorment, l'objecte de cerca obsolet amb propietats que distingeixen entre majúscules i minúscules (logicalname i id) encara s'admet per a les personalitzacions existents. Tanmateix, es recomana utilitzar @odata.bind l'anotació tant per a l'escenari en línia com fora de línia en lloc d'utilitzar aquest objecte obsolet.

L'exemple següent utilitza el mètode obsolet per crear un registre de compte i associar-lo a un registre de contacte existent per definir-lo com a contacte principal per al registre de compte nou de clients mòbils quan es treballa en mode fora de línia:

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 taula mitjançant l'API web
Xrm.WebApi