createRecord (客户端 API 参考)

创建表记录。

Syntax

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

参数

Name 类型 必选 Description
entityLogicalName String 是的 要创建的表的逻辑名称。 例如: account
data 物体 是的 一个 JSON 对象,用于定义新表记录的列和值。 请参阅 示例
successCallback 功能 创建记录时要调用的函数。 请参阅 返回值
errorCallback 功能 作失败时要调用的函数。 传递具有以下属性的对象:
- errorCode:数。 错误代码为正十进制数。 例如,将按原样0x80040333记录的错误代码作为返回 。2147746611
- message:字符串。 描述问题的错误消息。

返回值

成功后,向具有以下属性的 successCallback promise 对象返回:

Name 类型 Description
entityType String 新记录的表逻辑名称。
id String 新记录的 GUID。

例子

这些示例使用与 使用 Web API 创建表行 中所示相同的请求对象来定义用于创建表记录的数据对象。

基本创建

创建示例帐户记录。

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

注释

脱机模式不支持使用主映像创建记录。 主映像只能在联机模式下使用创建进行设置。 无法通过创建设置其他图像列。 详细了解主要映像

通过将表定义为导航属性值,可以创建彼此相关的表。 此模式称为 深度插入。 在此示例中,我们将创建一个示例帐户记录以及主要联系人记录和关联的机会记录。

注释

脱机模式不支持在单个创建作中创建相关表记录。

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

关联创建新记录的表

若要将新表记录与现有表记录相关联,请使用 @odata.bind 批注设置单值导航属性的值。

注释

单值导航属性的名称并不总是与 LogicalName 查找属性的名称相同。 应确保使用 Name Web API $metadata服务文档中元素的 NavigationProperty 属性值。 更多信息:Web API 导航属性

下面是代码示例:

以下示例创建一个帐户记录,并将其关联到现有联系人记录,以将后者设置为新帐户记录的主要联系人:

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

移动脱机方案的弃用方法

注释

现有自定义仍支持弃用具有区分大小写属性的已弃用查找对象,logicalnameid而不是使用@odata.bind前面所示的批注示例。 但是,建议对联机和脱机方案使用 @odata.bind 批注,而不是使用此已弃用的对象。

以下示例使用已弃用的方法创建帐户记录,并将其关联到现有联系人记录,以便在脱机模式下工作时将后者设置为移动客户端的新帐户记录的主要联系人:

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

使用 Web API 创建表行
Xrm.WebApi