createRecord (référence de l’API client)

Créer un enregistrement de table.

Syntaxe

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

Paramètres

Nom  Type Requise Description
entityLogicalName String Oui Nom logique de la table à créer. Par exemple : account.
data Object Oui Objet JSON définissant les colonnes et valeurs du nouvel enregistrement de table. Voir des exemples
successCallback Function Non Fonction à appeler lorsqu’un enregistrement est créé. Voir Valeur renvoyée
errorCallback Function Non Fonction à appeler lorsque l’opération échoue. Un objet avec les propriétés suivantes est transmis :
- errorCode : nombre. Code d’erreur sous la forme d’un nombre décimal positif. Par exemple, le code d’erreur documenté en tant que 0x80040333 sera renvoyé en tant que 2147746611.
- message : chaîne. Message d’erreur décrivant le problème.

Valeur renvoyée

En cas de réussite, retourne un objet de promesse à successCallback avec les propriétés suivantes :

Nom  Type Description
entityType String Nom logique de la table du nouvel enregistrement.
id String GUID du nouvel enregistrement.

Examples

Ces exemples utilisent les mêmes objets de requête que l’article suivant : créez une ligne de table à l’aide de l’API web. L’article montre comment définir l’objet de données pour la création d’un enregistrement de table.

Exemple Démontre Exemple d’API web
Création de base Comment créer un enregistrement de compte avec des valeurs de colonne. Création de base
Créer des enregistrements de table associés avec l’enregistrement principal Création d’un compte et d’un contact, d’une opportunité et d’enregistrements de tâches associés dans une seule opération. Créer des lignes de table associées en une seule opération
Associer des tables lors de la création d’enregistrements Comment associer un nouveau compte à un contact existant à l’aide @odata.bindde . Associer des lignes de table lors de la création

Exemple de création de base

Crée un exemple d’enregistrement de compte.

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

Note

La création d’enregistrements avec une image principale n’est pas prise en charge pour le mode hors connexion. Vous pouvez définir des images principales uniquement à l’aide de la création en mode en ligne. Vous ne pouvez pas définir d’autres colonnes d’image à l’aide de la création. En savoir plus sur les images principales

Vous pouvez créer des tables liées les unes aux autres en les définissant comme valeurs de propriété de navigation. Ce modèle s’appelle l’insertion profonde. Dans cet exemple, vous créez un exemple d’enregistrement de compte avec l’enregistrement de contact principal et un enregistrement d’opportunité associé.

Note

La création d’enregistrements de table associés dans une seule opération de création n’est pas prise en charge pour le mode hors connexion.

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

Associer des tables lors de la création d’un nouvel exemple d’enregistrements

Pour associer de nouveaux enregistrements de table aux enregistrements de table existants, définissez la valeur des propriétés de navigation à valeur unique à l’aide de l’annotation @odata.bind .

Note

Les noms des propriétés de navigation à valeur unique ne sont pas toujours identiques à ceux LogicalName de l’attribut de recherche. Vérifiez que vous utilisez la Name valeur d’attribut de l’élément NavigationProperty dans le document de service $metadata de l’API web. Pour plus d’informations, consultez Propriétés de navigation de l’API web.

Exemple de code :

L’exemple suivant crée un enregistrement de compte et l’associe à un enregistrement de contact existant pour définir ce dernier comme contact principal pour le nouvel enregistrement de compte :

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éthode obsolète pour le scénario hors ligne mobile

Note

Au lieu d’utiliser l’exemple d’annotation indiqué précédemment, l’objet de recherche déconseillé avec des propriétés sensibles à la @odata.bind casse (logicalnameetid) est toujours pris en charge pour les personnalisations existantes. Toutefois, utilisez l’annotation @odata.bind pour les scénarios en ligne et hors connexion au lieu d’utiliser cet objet déconseillé.

L’exemple suivant utilise la méthode déconseillée pour créer un enregistrement de compte et l’associer à un enregistrement de contact existant pour définir ce dernier comme contact principal pour le nouvel enregistrement de compte à partir de clients mobiles lors de l’utilisation en mode hors connexion :

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

Créer une ligne de table à l’aide de l’API web
Xrm.webApi