这个问题与我通过 API 调用的 Microsoft Dynamics CRM 2015 有关。
我创建联系人实体:
POST [organization URI]/api/data/contacts
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"emailaddress1": "myemail@example.com",
}
登录面板后,它可以工作,我看到了新记录。我可以通过 API 调用它:
[organization URI]/api/data/contacts(f76e4e7c-ea61-e511-80fd-3863bb342b00)
{
"@odata.context":"[organization URI]/api/data/$metadata#contacts/$entity",
"@odata.etag":"W/\"460199\"",
...
"contactid":"f76e4e7c-ea61-e511-80fd-3863bb342b00",
"emailaddress1":"myemail@example.com",
....
}
接下来我要做的是添加与该联系人关联的注释记录。按照我打电话的指南:
POST [organization URI]/api/data/annotations
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"notetext": "TEST",
'contact@odata.bind': 'contacts(f76e4e7c-ea61-e511-80fd-3863bb342b00)'
}
但它返回 400 错误:
未声明的属性“联系人”在有效负载中仅具有属性注释,但在有效负载中未找到属性值。在 OData 中,只有声明的导航属性和声明的命名流可以表示为没有值的属性。
当我打电话时:
POST [organization URI]/api/data/annotations
Content-Type: application/json; charset=utf-8
Accept: application/json
{
"notetext": "TEST",
}
新实体已创建,但与联系人没有关系。
如何正确撰写此 POST 请求?我在这里想念什么?我怀疑,应该以某种不同的方式呈现,contact@odata.bind
我试过了contactid@odata.bind
,,-但没有效果。object@odata.bind
objectid@odata.bind
有任何想法吗?