如何在 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(ICollection1 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

v8.2 functions list

v9 functions list