如何在 2016 年内部部署 CRM 中使用 Web api 获取审计历史数据
How to get audit history data using web api in 2016 on premise CRM
我需要使用 web api 获取特定记录的审计历史详细信息,而不是通过自定义代码。
我尝试使用以下代码获取审计历史记录。但它没有返回所需的信息,因为我需要旧的和有价值的列。
https://xxxxx/api/data/v8.2/audits?$filter=_objectid_value%20eq%20AFF6BF88-8A78-CDAE-8829-5B702E2F89D9
然后我尝试了"RetrieveRecordChangeHistory"
函数。它在自定义 c# 代码中工作,但在网络中不工作 api。
https://xxxx/api/data/v8.2/RetrieveRecordChangeHistory(Target=@Target)?@Target={%22contactid%22:%22AFF6BF88-8A78-CDAE-8829-5B702E2F89D9%22,%22@odata.type%22:%22Microsoft.Dynamics.CRM.contact%22}.
上面的 url 给出了以下错误。
{ "error":{
"code":"","message":"Resource not found for the segment 'RetrieveRecordChangeHistory'.","innererror":{
"message":"Resource not found for the segment 'RetrieveRecordChangeHistory'.","type":"Microsoft.OData.Core.UriParser.ODataUnrecognizedPathException","stacktrace":"
at
Microsoft.OData.Core.UriParser.Parsers.ODataPathParser.CreateFirstSegment(String
segmentText)\r\n at
Microsoft.OData.Core.UriParser.Parsers.ODataPathParser.ParsePath(ICollection1
segments)\r\n at
Microsoft.OData.Core.UriParser.Parsers.ODataPathFactory.BindPath(ICollection
1
segments, ODataUriParserConfiguration configuration)\r\n at
Microsoft.OData.Core.UriParser.ODataUriParser.Initialize()\r\n at
System.Web.OData.Routing.DefaultODataPathHandler.Parse(IEdmModel
model, String serviceRoot, String odataPath, ODataUriResolverSetttings
resolverSettings, Boolean enableUriTemplateParsing)\r\n at
System.Web.OData.Routing.DefaultODataPathHandler.Parse(IEdmModel
model, String serviceRoot, String odataPath)\r\n at
Microsoft.Crm.Extensibility.OData.CrmODataPathHandler.Parse(IEdmModel
model, String serviceRoot, String odataPath)"
} } }
CRM 2016 (v8.2) 中的 RetrieveRecordChangeHistory
功能在 Web api 中不可用,后来添加到 Web api 功能列表中,即 v9
我需要使用 web api 获取特定记录的审计历史详细信息,而不是通过自定义代码。
我尝试使用以下代码获取审计历史记录。但它没有返回所需的信息,因为我需要旧的和有价值的列。
https://xxxxx/api/data/v8.2/audits?$filter=_objectid_value%20eq%20AFF6BF88-8A78-CDAE-8829-5B702E2F89D9
然后我尝试了"RetrieveRecordChangeHistory"
函数。它在自定义 c# 代码中工作,但在网络中不工作 api。
https://xxxx/api/data/v8.2/RetrieveRecordChangeHistory(Target=@Target)?@Target={%22contactid%22:%22AFF6BF88-8A78-CDAE-8829-5B702E2F89D9%22,%22@odata.type%22:%22Microsoft.Dynamics.CRM.contact%22}.
上面的 url 给出了以下错误。
{ "error":{ "code":"","message":"Resource not found for the segment 'RetrieveRecordChangeHistory'.","innererror":{ "message":"Resource not found for the segment 'RetrieveRecordChangeHistory'.","type":"Microsoft.OData.Core.UriParser.ODataUnrecognizedPathException","stacktrace":" at Microsoft.OData.Core.UriParser.Parsers.ODataPathParser.CreateFirstSegment(String segmentText)\r\n at Microsoft.OData.Core.UriParser.Parsers.ODataPathParser.ParsePath(ICollection
1 segments)\r\n at Microsoft.OData.Core.UriParser.Parsers.ODataPathFactory.BindPath(ICollection
1 segments, ODataUriParserConfiguration configuration)\r\n at Microsoft.OData.Core.UriParser.ODataUriParser.Initialize()\r\n at System.Web.OData.Routing.DefaultODataPathHandler.Parse(IEdmModel model, String serviceRoot, String odataPath, ODataUriResolverSetttings resolverSettings, Boolean enableUriTemplateParsing)\r\n at System.Web.OData.Routing.DefaultODataPathHandler.Parse(IEdmModel model, String serviceRoot, String odataPath)\r\n at Microsoft.Crm.Extensibility.OData.CrmODataPathHandler.Parse(IEdmModel model, String serviceRoot, String odataPath)" } } }
CRM 2016 (v8.2) 中的 RetrieveRecordChangeHistory
功能在 Web api 中不可用,后来添加到 Web api 功能列表中,即 v9