我有一个 Dynamics CRM 实例,最初通过 Postman 成功访问该实例。 这是 v9.0
我有一个 POST 请求,该请求在以下位置创建新联系人:/api/data/v9.0/contacts
{
"customertypecode": 127840004,
"xx_contractorstatus": 127840000,
"firstname": "Wallie",
"lastname": "Worker1-7",
"fullname": "Wallie Worker",
"emailaddress1": "[email protected]"
}
我还有一个自定义国籍列表:/api/data/v9.0/xx_nationalities xx_nationalities 的结构是:
{
"@odata.context": "https://xxdev.api.[HIDDEN].dynamics.com/api/data/v9.0/$metadata#xx_nationalities",
"value": [
{
"@odata.etag": "W/\"35347625\"",
"_organizationid_value": "6b47908f-b289-4601-b80c-59667d32deda",
"xx_sharecoderequired": true,
"xx_nationalityid": "297db2c4-15a3-ed11-aad1-0022484257f7",
"xx_name": "Afghan",
"xx_wrsregistrationrequired": false,
"xx_visarequired": true,
"statuscode": 1,
"importsequencenumber": 20,
"_createdby_value": "2c738c48-4115-ec11-b6e6-002248412237",
"modifiedon": "2023-02-02T16:22:38Z",
"xx_brprequired": true,
"_modifiedby_value": "2c738c48-4115-ec11-b6e6-002248412237",
"versionnumber": 35347625,
"createdon": "2023-02-02T16:22:38Z",
"statecode": 0,
"overriddencreatedon": null,
"_modifiedonbehalfby_value": null,
"xx_nationalityfullname": null,
"utcconversiontimezonecode": null,
"_createdonbehalfby_value": null,
"xx_iseu": null,
"timezoneruleversionnumber": null
}
]
}
我需要在创建联系人时为联系人附加国籍,但出现错误。当 xx_nationality 在 Contact GET 中返回时,它被命名为:
"_xx_nationality_value": "5f7db2c4-15a3-ed11-aad1-0022484257f7"
我尝试直接返回值,使用id,使用@odata.bind,使用实体包装和with。 / 值中不带斜杠,属性中不带下划线。但似乎没有任何作用。
"_xx_nationality_value": "5f7db2c4-15a3-ed11-aad1-0022484257f7"
错误:CRM不支持直接更新实体引用属性,请改用导航属性
"[email protected]": "/xx_nationalities(5f7db2c4-15a3-ed11-aad1-0022484257f7)"
"[email protected]": "/xx_nationalities(5f7db2c4-15a3-ed11-aad1-0022484257f7)"
"[email protected]": "xx_nationalities(5f7db2c4-15a3-ed11-aad1-0022484257f7)"
"[email protected]": "/xx_nationalities(5f7db2c4-15a3-ed11-aad1-0022484257f7)"
错误:Microsoft.OData.ODataException:未声明的属性“_xx_nationalityid_nationalities”,其在有效负载中仅具有属性注释,但在有效负载中未找到属性值
这似乎是可能的,而且可能非常明显,但这是我们第一次接触 CRM,我们在文档中找不到解决方案,不幸的是我们无法下载 /api/data/v9.0 /$元数据文件对于浏览器或 Postman 来说太大了。
您不能将 XrmToolBox 与 MetadataBrowser 插件一起使用来仅获取实体的元数据吗? 然后您应该能够检查正确的属性名称。